summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorTim Smith <tsmith@chef.io>2017-03-25 17:02:36 -0700
committerTim Smith <tsmith@chef.io>2017-08-09 20:00:33 +0000
commit70eef6e0eea010420de4751d13164c3748a299c1 (patch)
tree26d818c7778c9177e1cfb36dc647f087dac2edaf /spec
parent7372d0ece166ee0d5a3e25bf84861807995e58be (diff)
downloadchef-70eef6e0eea010420de4751d13164c3748a299c1.tar.gz
Add zypper_repository resource
Signed-off-by: Tim Smith <tsmith@chef.io>
Diffstat (limited to 'spec')
-rw-r--r--spec/unit/resource/zypper_repository_spec.rb49
1 files changed, 49 insertions, 0 deletions
diff --git a/spec/unit/resource/zypper_repository_spec.rb b/spec/unit/resource/zypper_repository_spec.rb
new file mode 100644
index 0000000000..d5a3a663d3
--- /dev/null
+++ b/spec/unit/resource/zypper_repository_spec.rb
@@ -0,0 +1,49 @@
+#
+# Author:: Tim Smith (<tsmith@chef.io>)
+# Copyright:: Copyright (c) 2017 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::Resource::ZypperRepository do
+ let(:node) { Chef::Node.new }
+ let(:events) { Chef::EventDispatch::Dispatcher.new }
+ let(:run_context) { Chef::RunContext.new(node, {}, events) }
+ let(:resource) { Chef::Resource::ZypperRepository.new("repo-source", run_context) }
+
+ context "on linux", :linux_only do
+ it "should create a new Chef::Resource::ZypperRepository" do
+ expect(resource).to be_a_kind_of(Chef::Resource)
+ expect(resource).to be_a_kind_of(Chef::Resource::ZypperRepository)
+ end
+
+ it "should resolve to a Noop class when zypper is not found" do
+ expect(Chef::Provider::ZypperRepository).to receive(:which).with("zypper").and_return(false)
+ expect(resource.provider_for_action(:add)).to be_a(Chef::Provider::Noop)
+ end
+
+ it "should resolve to a ZypperRepository class when zypper is found" do
+ expect(Chef::Provider::ZypperRepository).to receive(:which).with("zypper").and_return(true)
+ expect(resource.provider_for_action(:add)).to be_a(Chef::Provider::ZypperRepository)
+ end
+ end
+
+ context "on windows", :windows_only do
+ it "should resolve to a NoOp provider" do
+ expect(resource.provider_for_action(:add)).to be_a(Chef::Provider::Noop)
+ end
+ end
+end