summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Bode <bodepd@gmail.com>2010-09-07 17:46:39 -0400
committerMatt Robinson <matt@puppetlabs.com>2010-11-23 11:16:48 -0800
commit04389f502787c6569ffcfa89eb63d76c3c63d29c (patch)
tree390937b4be702f68552cad608373f7443e2e9188
parent3d2fbf604f997e6b9fd94edb96419ffa9869e709 (diff)
downloadpuppet-04389f502787c6569ffcfa89eb63d76c3c63d29c.tar.gz
puppet-04389f502787c6569ffcfa89eb63d76c3c63d29c.tar.xz
puppet-04389f502787c6569ffcfa89eb63d76c3c63d29c.zip
(#4711) Provide unit tests for yum package provider.
-rw-r--r--spec/unit/provider/package/yum_spec.rb61
1 files changed, 61 insertions, 0 deletions
diff --git a/spec/unit/provider/package/yum_spec.rb b/spec/unit/provider/package/yum_spec.rb
new file mode 100644
index 000000000..09c81f72f
--- /dev/null
+++ b/spec/unit/provider/package/yum_spec.rb
@@ -0,0 +1,61 @@
+#!/usr/bin/env ruby
+
+require File.dirname(__FILE__) + '/../../../spec_helper'
+
+provider = Puppet::Type.type(:package).provider(:yum)
+
+describe provider do
+ before do
+ # Create a mock resource
+ @resource = stub 'resource'
+ @resource.stubs(:[]).with(:name).returns 'mypackage'
+ @provider = provider.new(@resource)
+ @provider.stubs(:resource).returns @resource
+ @provider.stubs(:yum).returns 'yum'
+ @provider.stubs(:rpm).returns 'rpm'
+ @provider.stubs(:get).with(:name).returns 'mypackage'
+ @provider.stubs(:get).with(:version).returns '1'
+ @provider.stubs(:get).with(:release).returns '1'
+ @provider.stubs(:get).with(:arch).returns 'i386'
+ end
+ # provider should repond to the following methods
+ [:install, :latest, :update, :purge].each do |method|
+ it "should have a(n) #{method}" do
+ @provider.should respond_to(method)
+ end
+ end
+
+ describe 'when installing' do
+ it 'should call yum install for :installed' do
+ @resource.stubs(:should).with(:ensure).returns :installed
+ @provider.expects(:yum).with('-d', '0', '-e', '0', '-y', :install, 'mypackage')
+ @provider.install
+ end
+ it "should use :install to update" do
+ @provider.expects(:install)
+ @provider.update
+ end
+ it "should be able to set version" do
+ @resource.stubs(:should).with(:ensure).returns "1.2"
+ @provider.expects(:yum).with('-d', '0', '-e', '0', '-y', :install, 'mypackage-1.2')
+ @provider.stubs(:query).returns :ensure => '1.2'
+ @provider.install
+ end
+ end
+
+ describe 'when uninstalling' do
+ it "should use erase to purge" do
+ @provider.expects(:yum).with("-y", :erase, 'mypackage')
+ @provider.purge
+ end
+ it 'should use rpm to uninstall' do
+ @provider.expects(:rpm).with('-e', 'mypackage-1-1.i386')
+ @provider.uninstall
+ end
+ end
+
+ it "should be versionable" do
+ provider.should be_versionable
+ end
+end
+