52
50
it "should support :present as a value to :ensure" do
53
Puppet::Type.type(:package).create(:name => "yay", :ensure => :present)
51
Puppet::Type.type(:package).new(:name => "yay", :ensure => :present)
56
54
it "should alias :installed to :present as a value to :ensure" do
57
pkg = Puppet::Type.type(:package).create(:name => "yay", :ensure => :installed)
55
pkg = Puppet::Type.type(:package).new(:name => "yay", :ensure => :installed)
58
56
pkg.should(:ensure).should == :present
61
59
it "should support :absent as a value to :ensure" do
62
Puppet::Type.type(:package).create(:name => "yay", :ensure => :absent)
60
Puppet::Type.type(:package).new(:name => "yay", :ensure => :absent)
65
63
it "should support :purged as a value to :ensure if the provider has the :purgeable feature" do
66
64
@provider.expects(:satisfies?).with(:purgeable).returns(true)
67
Puppet::Type.type(:package).create(:name => "yay", :ensure => :purged)
65
Puppet::Type.type(:package).new(:name => "yay", :ensure => :purged)
70
68
it "should not support :purged as a value to :ensure if the provider does not have the :purgeable feature" do
71
69
@provider.expects(:satisfies?).with(:purgeable).returns(false)
72
proc { Puppet::Type.type(:package).create(:name => "yay", :ensure => :purged) }.should raise_error(Puppet::Error)
70
proc { Puppet::Type.type(:package).new(:name => "yay", :ensure => :purged) }.should raise_error(Puppet::Error)
75
73
it "should support :latest as a value to :ensure if the provider has the :upgradeable feature" do
76
74
@provider.expects(:satisfies?).with(:upgradeable).returns(true)
77
Puppet::Type.type(:package).create(:name => "yay", :ensure => :latest)
75
Puppet::Type.type(:package).new(:name => "yay", :ensure => :latest)
80
78
it "should not support :latest as a value to :ensure if the provider does not have the :upgradeable feature" do
81
79
@provider.expects(:satisfies?).with(:upgradeable).returns(false)
82
proc { Puppet::Type.type(:package).create(:name => "yay", :ensure => :latest) }.should raise_error(Puppet::Error)
80
proc { Puppet::Type.type(:package).new(:name => "yay", :ensure => :latest) }.should raise_error(Puppet::Error)
85
83
it "should support version numbers as a value to :ensure if the provider has the :versionable feature" do
86
84
@provider.expects(:satisfies?).with(:versionable).returns(true)
87
Puppet::Type.type(:package).create(:name => "yay", :ensure => "1.0")
85
Puppet::Type.type(:package).new(:name => "yay", :ensure => "1.0")
90
88
it "should not support version numbers as a value to :ensure if the provider does not have the :versionable feature" do
91
89
@provider.expects(:satisfies?).with(:versionable).returns(false)
92
proc { Puppet::Type.type(:package).create(:name => "yay", :ensure => "1.0") }.should raise_error(Puppet::Error)
90
proc { Puppet::Type.type(:package).new(:name => "yay", :ensure => "1.0") }.should raise_error(Puppet::Error)
95
93
it "should accept any string as an argument to :source" do
96
proc { Puppet::Type.type(:package).create(:name => "yay", :source => "stuff") }.should_not raise_error(Puppet::Error)
94
proc { Puppet::Type.type(:package).new(:name => "yay", :source => "stuff") }.should_not raise_error(Puppet::Error)
99
after { Puppet::Type.type(:package).clear }
102
98
module PackageEvaluationTesting
110
106
@provider = stub 'provider', :class => Puppet::Type.type(:package).defaultprovider, :clear => nil, :satisfies? => true, :name => :mock
111
107
Puppet::Type.type(:package).defaultprovider.stubs(:new).returns(@provider)
112
108
Puppet::Type.type(:package).defaultprovider.stubs(:instances).returns([])
113
@package = Puppet::Type.type(:package).create(:name => "yay")
109
@package = Puppet::Type.type(:package).new(:name => "yay")
115
@catalog = Puppet::Node::Catalog.new
111
@catalog = Puppet::Resource::Catalog.new
116
112
@catalog.add_resource(@package)
121
Puppet::Type.type(:package).clear
125
115
describe Puppet::Type.type(:package), "when it should be purged" do
126
116
include PackageEvaluationTesting