diff options
Diffstat (limited to 'spec/support/resource_helpers.rb')
-rw-r--r-- | spec/support/resource_helpers.rb | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/spec/support/resource_helpers.rb b/spec/support/resource_helpers.rb index 8327ec0..00bf259 100644 --- a/spec/support/resource_helpers.rb +++ b/spec/support/resource_helpers.rb @@ -17,6 +17,34 @@ class ProviderExampleGroup < Spec::Example::ExampleGroup resource.value(name) end + class << self + + def field(field, &block) + ResourceField.new(self, field, &block) + end + + # call-seq: + # + # given(:ensure) + # given(:ensure => :present) + def context_with(*args, &block) + options = args.last.is_a?(Hash) ? args.pop : {} + if args.empty? + text = options.map { |k, v| "#{k} => #{v.inspect}" }.join(' and with ') + context("and with #{text}", {:resource => options}, &block) + else + text = args.join(', ') + placeholders = args.inject({}) { |memo, key| memo.merge(key => 'an-unimportant-value') } + context("and with a #{text}", {:resource => placeholders}, &block) + end + end + + def context_without(field, &block) + context("and without a #{field}", &block) + end + + end + end Spec::Example::ExampleGroupFactory.register(:provider, ProviderExampleGroup) |