diff options
author | Bruce Williams <bruce@codefluency.com> | 2010-03-17 23:54:02 -0700 |
---|---|---|
committer | Bruce Williams <bruce@codefluency.com> | 2010-03-17 23:54:02 -0700 |
commit | 736c094145ff6f86d2bfdc8cecf32da8180d95fe (patch) | |
tree | 212fc4fef423537ad54c38a51e7c8e4a1522c2c1 /spec/support/resource_helpers.rb | |
parent | 532cfbb18195ba759574e91dc6bd360978045e75 (diff) |
Further condense provider example group API, update Bazaar provider spec to use it.
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) |