diff options
Diffstat (limited to 'chef/stories')
-rw-r--r-- | chef/stories/chef-client | 26 | ||||
-rw-r--r-- | chef/stories/chef-client.rb | 46 | ||||
-rw-r--r-- | chef/stories/story_helper.rb | 32 |
3 files changed, 104 insertions, 0 deletions
diff --git a/chef/stories/chef-client b/chef/stories/chef-client new file mode 100644 index 0000000000..93b8656268 --- /dev/null +++ b/chef/stories/chef-client @@ -0,0 +1,26 @@ +Story: Applying a meal with chef-client + + As a systems administrator + I want to configure a system + So that I can drink more beer + + Scenario: The client should be rejected if the node is not verified + Given the node 'latte' + When it runs the chef-client + Then it should register with the Chef Server + + Scenario: The node registers for an OpenID + + Given the node 'latte' + When it runs the chef-client + Then it should register with the Chef Server + And CouchDB should have a 'openid_registration_latte' document + + Scenario: An administrator validates the OpenID Registration + + Given the user 'openid.hjksolutions.com/adam' + And the openid registration for 'latte' + When the user validates the registration + Then the registration validation should be true + + diff --git a/chef/stories/chef-client.rb b/chef/stories/chef-client.rb new file mode 100644 index 0000000000..3e07b8a847 --- /dev/null +++ b/chef/stories/chef-client.rb @@ -0,0 +1,46 @@ +# +# Author:: Adam Jacob (<adam@hjksolutions.com>) +# Copyright:: Copyright (c) 2008 HJK Solutions, LLC +# License:: Apache License, Version 2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +require File.expand_path(File.join(File.dirname(__FILE__), "story_helper")) + +steps_for(:chef_client) do + # Given the node 'latte' + Given("the node '$node'") do |node| + @client = Chef::Client.new + @client.build_node(node) + end + + # Given it has not registered before + Given("it has not registered before") do + Chef::FileStore.load("registration", @client.safe_name) + end + + # When it runs the chef-client + + # Then it should register with the Chef Server + + # Then CouchDB should have a 'openid_registration_latte' document + + # Then the registration validation should be 'false' + +end + +with_steps_for(:chef_client) do + create_couchdb_database + run File.join(File.dirname(__FILE__), "chef-client") +end
\ No newline at end of file diff --git a/chef/stories/story_helper.rb b/chef/stories/story_helper.rb new file mode 100644 index 0000000000..cb0d1eb375 --- /dev/null +++ b/chef/stories/story_helper.rb @@ -0,0 +1,32 @@ +# +# Author:: Adam Jacob (<adam@hjksolutions.com>) +# Copyright:: Copyright (c) 2008 HJK Solutions, LLC +# License:: Apache License, Version 2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +require 'rubygems' +require 'spec/story' + +require File.join(File.dirname(__FILE__), "..", "lib", "chef") +Dir[File.join(File.dirname(__FILE__), 'lib', '**', '*.rb')].sort.each { |lib| require lib } + +Chef::Config.log_level(:fatal) +Chef::Config[:couchdb_database] = "chef_test" + +def create_couchdb_database + c = Chef::CouchDB.new + c.create_db +end + |