diff options
author | Christopher Brown <cb@opscode.com> | 2009-08-26 12:53:57 -0700 |
---|---|---|
committer | Christopher Brown <cb@opscode.com> | 2009-08-26 12:53:57 -0700 |
commit | 4804a909ab7b7d1a8f290869ed09ccf5f330f2bf (patch) | |
tree | 1f0cd0ecdf010393c9d7667f8f4e06dff6a37d81 /features | |
parent | fa4bdd1a6b39c7dc4be804d6c871d28a552afbcc (diff) | |
parent | 89b9dac377a441acd9c41b15482320ffcb03779e (diff) | |
download | mixlib-config-class_instance_variable.tar.gz |
integrate nuo's class instance variable with attribute setter changesclass_instance_variable
Diffstat (limited to 'features')
-rw-r--r-- | features/mixlib_config.feature | 14 | ||||
-rw-r--r-- | features/steps/config_steps.rb | 24 | ||||
-rw-r--r-- | features/support/config_it.rb | 4 |
3 files changed, 36 insertions, 6 deletions
diff --git a/features/mixlib_config.feature b/features/mixlib_config.feature index 6defc7a..35432b7 100644 --- a/features/mixlib_config.feature +++ b/features/mixlib_config.feature @@ -4,12 +4,20 @@ Feature: Configure an application I want to utilize a simple configuration object Scenario: Set a configuration option to a string - Given a configuration class - When I set 'foo' to 'bar' + Given a configuration class 'ConfigIt' + When I set 'foo' to 'bar' in configuration class 'ConfigIt' Then config option 'foo' is 'bar' + +Scenario: Set the same configuration option to different strings for two configuration classes + Given a configuration class 'ConfigIt' + And a configuration class 'ConfigItToo' + When I set 'foo' to 'bar' in configuration class 'ConfigIt' + And I set 'foo' to 'bar2' in configuration class 'ConfigItToo' + Then in configuration class 'ConfigItToo' config option 'foo' is 'bar2' + And in configuration class 'ConfigIt' config option 'foo' is 'bar' Scenario: Set a configuration option to an Array - Given a configuration class + Given a configuration class 'ConfigIt' When I set 'foo' to: |key| |bar| diff --git a/features/steps/config_steps.rb b/features/steps/config_steps.rb index 867702d..0785af3 100644 --- a/features/steps/config_steps.rb +++ b/features/steps/config_steps.rb @@ -16,17 +16,35 @@ # limitations under the License. # -Given /^a configuration class$/ do +Given /^a configuration class '(.+)'$/ do |classname| end -When /^I set '(.+)' to '(.+)'$/ do |key, value| - ConfigIt[key.to_sym] = value +When /^I set '(.+)' to '(.+)' in configuration class '(.+)'$/ do |key, value, classname| + + #ConfigIt[key.to_sym] = value + if classname == 'ConfigIt' + ConfigIt[key.to_sym] = value + elsif classname == 'ConfigItToo' + ConfigItToo[key.to_sym] = value + else + raise ArgumentError, "configuration class must be ConfigIt or ConfigItToo" + end end Then /^config option '(.+)' is '(.+)'$/ do |key, value| ConfigIt[key.to_sym].should == value end +Then /^in configuration class '(.+)' config option '(.+)' is '(.+)'$/ do |classname, key, value| + if classname == 'ConfigIt' + ConfigIt[key.to_sym].should == value + elsif classname == 'ConfigItToo' + ConfigItToo[key.to_sym].should == value + else + raise ArgumentError, "configuration class must be ConfigIt or ConfigItToo" + end +end + When /^I set '(.+)' to:$/ do |key, foo_table| ConfigIt[key.to_sym] = Array.new foo_table.hashes.each do |hash| diff --git a/features/support/config_it.rb b/features/support/config_it.rb index 28ea454..c872e33 100644 --- a/features/support/config_it.rb +++ b/features/support/config_it.rb @@ -21,4 +21,8 @@ require 'mixlib/config' class ConfigIt extend Mixlib::Config +end + +class ConfigItToo + extend Mixlib::Config end
\ No newline at end of file |