diff options
| author | Nigel Kersten <nigelk@google.com> | 2008-11-25 08:32:46 -0800 |
|---|---|---|
| committer | James Turnbull <james@lovedthanlost.net> | 2008-11-26 13:02:53 +1100 |
| commit | d978668c03f42ce314245c23b06179f6a62f3d67 (patch) | |
| tree | ba18a5fd7854e2fbe7d3220d072cba06ede991c3 /spec/unit | |
| parent | 86ce934270992d192a1163d211761a505d5b2812 (diff) | |
| download | puppet-d978668c03f42ce314245c23b06179f6a62f3d67.tar.gz puppet-d978668c03f42ce314245c23b06179f6a62f3d67.tar.xz puppet-d978668c03f42ce314245c23b06179f6a62f3d67.zip | |
Lots of DirectoryService work. New Computer Type. Users now use password hashes. Groups now support setting members as attributes of the group for OS X.
Diffstat (limited to 'spec/unit')
| -rwxr-xr-x | spec/unit/type/computer.rb | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/spec/unit/type/computer.rb b/spec/unit/type/computer.rb new file mode 100755 index 000000000..ec3c797b9 --- /dev/null +++ b/spec/unit/type/computer.rb @@ -0,0 +1,86 @@ +#!/usr/bin/env ruby + +require File.dirname(__FILE__) + '/../../spec_helper' + +require 'puppet/type/computer' + +computer = Puppet::Type.type(:computer) + +describe Puppet.type(:computer), " when checking computer objects" do + before :each do + provider_class = Puppet::Type::Computer.provider(Puppet::Type::Computer.providers[0]) + Puppet::Type::Computer.expects(:defaultprovider).returns provider_class + @resource = Puppet::Type::Computer.create( + :name => "puppetcomputertest", + :en_address => "aa:bb:cc:dd:ee:ff", + :ip_address => "1.2.3.4") + @properties = {} + @ensure = Puppet::Type::Computer.attrclass(:ensure).new(:resource => @resource) + end + + after :each do + computer.clear + provider_class = nil + Puppet::Type::Computer.provider(nil) + end + + it "should be able to create a instance" do + provider_class = Puppet::Type::Computer.provider(Puppet::Type::Computer.providers[0]) + Puppet::Type::Computer.expects(:defaultprovider).returns provider_class + computer.create(:name => "bar").should_not be_nil + end + + properties = [:en_address, :ip_address] + params = [:name] + + properties.each do |property| + it "should have a %s property" % property do + computer.attrclass(property).ancestors.should be_include(Puppet::Property) + end + + it "should have documentation for its %s property" % property do + computer.attrclass(property).doc.should be_instance_of(String) + end + + it "should accept :absent as a value" do + prop = computer.attrclass(property).new(:resource => @resource) + prop.should = :absent + prop.should.must == :absent + end + end + + params.each do |param| + it "should have a %s parameter" % param do + computer.attrclass(param).ancestors.should be_include(Puppet::Parameter) + end + + it "should have documentation for its %s parameter" % param do + computer.attrclass(param).doc.should be_instance_of(String) + end + end + + describe "default values" do + before do + provider_class = computer.provider(computer.providers[0]) + computer.expects(:defaultprovider).returns provider_class + end + + it "should be nil for en_address" do + computer.create(:name => :en_address)[:en_address].should == nil + end + + it "should be nil for ip_address" do + computer.create(:name => :ip_address)[:ip_address].should == nil + end + end + + describe "when managing the ensure property" do + it "should support a :present value" do + lambda { @ensure.should = :present }.should_not raise_error + end + + it "should support an :absent value" do + lambda { @ensure.should = :absent }.should_not raise_error + end + end +end
\ No newline at end of file |
