summaryrefslogtreecommitdiff
path: root/spec/support
diff options
context:
space:
mode:
Diffstat (limited to 'spec/support')
-rw-r--r--spec/support/resource_helpers.rb28
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)