diff options
author | Adam Edwards <adamed@opscode.com> | 2014-03-28 14:08:27 -0700 |
---|---|---|
committer | Adam Edwards <adamed@opscode.com> | 2014-03-29 00:21:12 -0700 |
commit | dfe1ebf9bf59d02aa78c1fdef8787af1665a22fd (patch) | |
tree | 3df2b552435c442bf5f1e9b4d4562e969dc31998 /spec/unit/guard_interpreter | |
parent | e0b02d69aaf9f408cfd9dbe9ea47561f694815bf (diff) | |
download | chef-dfe1ebf9bf59d02aa78c1fdef8787af1665a22fd.tar.gz |
Fix namespacing issues caused by moving guard_interpreter logic out of Chef::Resource
Diffstat (limited to 'spec/unit/guard_interpreter')
-rw-r--r-- | spec/unit/guard_interpreter/resource_guard_interpreter_spec.rb | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/spec/unit/guard_interpreter/resource_guard_interpreter_spec.rb b/spec/unit/guard_interpreter/resource_guard_interpreter_spec.rb new file mode 100644 index 0000000000..a016cbfeb8 --- /dev/null +++ b/spec/unit/guard_interpreter/resource_guard_interpreter_spec.rb @@ -0,0 +1,56 @@ +# +# Author:: Adam Edwards (<adamed@getchef.com>) +# Copyright:: Copyright (c) 2014 Chef Software, Inc. +# 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 'spec_helper' + +describe Chef::GuardInterpreter::ResourceGuardInterpreter do + before(:each) do + node = Chef::Node.new + + node.default["kernel"] = Hash.new + node.default["kernel"][:machine] = :x86_64.to_s + + run_context = Chef::RunContext.new(node, nil, nil) + + @resource = Chef::Resource.new("powershell_unit_test", run_context) + @resource.stub(:run_action) + @resource.stub(:updated).and_return(true) + end + + describe "when evaluating a guard resource" do + let(:resource) { @resource } + + it "should allow guard interpreter to be set to Chef::Resource::Script" do + resource.guard_interpreter(:script) + allow_any_instance_of(Chef::GuardInterpreter::ResourceGuardInterpreter).to receive(:evaluate_action).and_return(false) + resource.only_if("echo hi") + end + + it "should allow guard interpreter to be set to Chef::Resource::PowershellScript derived indirectly from Chef::Resource::Script" do + resource.guard_interpreter(:powershell_script) + allow_any_instance_of(Chef::GuardInterpreter::ResourceGuardInterpreter).to receive(:evaluate_action).and_return(false) + resource.only_if("echo hi") + end + + it "should raise an exception if guard_interpreter is set to a resource not derived from Chef::Resource::Script" do + resource.guard_interpreter(:file) + expect { resource.only_if("echo hi") }.to raise_error ArgumentError + end + end +end + |