summaryrefslogtreecommitdiffstats
path: root/spec/unit/face/node_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/unit/face/node_spec.rb')
-rwxr-xr-xspec/unit/face/node_spec.rb132
1 files changed, 68 insertions, 64 deletions
diff --git a/spec/unit/face/node_spec.rb b/spec/unit/face/node_spec.rb
index 4ba1d134c..7151353a0 100755
--- a/spec/unit/face/node_spec.rb
+++ b/spec/unit/face/node_spec.rb
@@ -3,9 +3,42 @@ require 'spec_helper'
require 'puppet/face'
describe Puppet::Face[:node, '0.0.1'] do
- it "REVISIT: really should have some tests"
+ describe '#cleanup' do
+ it "should clean everything" do
+ {
+ "cert" => ['hostname'],
+ "cached_facts" => ['hostname'],
+ "cached_node" => ['hostname'],
+ "reports" => ['hostname'],
+ "storeconfigs" => ['hostname', :unexport]
+ }.each { |k, v| subject.expects("clean_#{k}".to_sym).with(*v) }
+ subject.cleanup('hostname', :unexport)
+ end
+ end
+
+ describe 'when running #clean' do
+ before :each do
+ Puppet::Node::Facts.indirection.stubs(:terminus_class=)
+ Puppet::Node::Facts.indirection.stubs(:cache_class=)
+ Puppet::Node.stubs(:terminus_class=)
+ Puppet::Node.stubs(:cache_class=)
+ end
+
+ it 'should invoke #cleanup' do
+ subject.expects(:cleanup).with('hostname', nil)
+ subject.clean('hostname')
+ end
+ end
describe "clean action" do
+ before :each do
+ Puppet::Node::Facts.indirection.stubs(:terminus_class=)
+ Puppet::Node::Facts.indirection.stubs(:cache_class=)
+ Puppet::Node.stubs(:terminus_class=)
+ Puppet::Node.stubs(:cache_class=)
+ subject.stubs(:cleanup)
+ end
+
it "should have a clean action" do
subject.should be_action :clean
end
@@ -19,8 +52,13 @@ describe Puppet::Face[:node, '0.0.1'] do
end
it "should accept more than one node name" do
- expect { subject.clean(['hostname', 'hostname2'],{}) }.should_not raise_error
- expect { subject.clean(['hostname', 'hostname2', 'hostname3'],{:unexport => true}) }.should_not raise_error
+ expect do
+ subject.clean('hostname', 'hostname2', {})
+ end.should_not raise_error
+
+ expect do
+ subject.clean('hostname', 'hostname2', 'hostname3', { :unexport => true })
+ end.should_not raise_error
end
it "should accept the option --unexport" do
@@ -29,20 +67,13 @@ describe Puppet::Face[:node, '0.0.1'] do
end
context "clean action" do
- subject { Puppet::Face[:node, 'current'] }
+ subject { Puppet::Face[:node, :current] }
before :each do
Puppet::Util::Log.stubs(:newdestination)
Puppet::Util::Log.stubs(:level=)
end
describe "during setup" do
- before :each do
- Puppet::Log.stubs(:newdestination)
- Puppet::Log.stubs(:level=)
- Puppet::Node::Facts.indirection.stubs(:terminus_class=)
- Puppet::Node.stubs(:cache_class=)
- end
-
it "should set facts terminus and cache class to yaml" do
Puppet::Node::Facts.indirection.expects(:terminus_class=).with(:yaml)
Puppet::Node::Facts.indirection.expects(:cache_class=).with(:yaml)
@@ -63,43 +94,16 @@ describe Puppet::Face[:node, '0.0.1'] do
end
it "should manage the certs if the host is a CA" do
- Puppet::SSL::CertificateAuthority.stubs(:ca?).returns(true)
- Puppet::SSL::Host.expects(:ca_location=).with(:local)
- subject.clean('hostname')
+ Puppet::SSL::CertificateAuthority.stubs(:ca?).returns(true)
+ Puppet::SSL::Host.expects(:ca_location=).with(:local)
+ subject.clean('hostname')
end
it "should not manage the certs if the host is not a CA" do
- Puppet::SSL::CertificateAuthority.stubs(:ca?).returns(false)
- Puppet::SSL::Host.expects(:ca_location=).with(:none)
- subject.clean('hostname')
- end
- end
-
- describe "when running" do
-
- before :each do
- @host = 'hostname'
- Puppet.stubs(:info)
- [ "cert", "cached_facts", "cached_node", "reports" ].each do |m|
- subject.stubs("clean_#{m}".to_sym).with(@host)
- end
- subject.stubs(:clean_storeconfigs).with(@host,nil)
- end
-
- [ "cert", "cached_facts", "cached_node", "reports" ].each do |m|
- it "should clean #{m.sub('_',' ')}" do
- subject.expects("clean_#{m}".to_sym).with(@host)
-
- subject.clean(@host)
- end
- end
-
- it "should clean storeconfigs" do
- subject.expects(:clean_storeconfigs).with(@host,nil)
-
- subject.clean(@host)
+ Puppet::SSL::CertificateAuthority.stubs(:ca?).returns(false)
+ Puppet::SSL::Host.expects(:ca_location=).with(:none)
+ subject.clean('hostname')
end
-
end
describe "when cleaning certificate" do
@@ -110,16 +114,16 @@ describe Puppet::Face[:node, '0.0.1'] do
end
it "should send the :destroy order to the ca if we are a CA" do
- Puppet::SSL::Host.stubs(:ca_location).returns(:local)
- @ca.expects(:apply).with { |cert_mode,to| cert_mode == :revoke }
- @ca.expects(:apply).with { |cert_mode,to| cert_mode == :destroy }
-
+ Puppet::SSL::CertificateAuthority.stubs(:ca?).returns(true)
+ @ca.expects(:revoke).with(@host)
+ @ca.expects(:destroy).with(@host)
subject.clean_cert(@host)
end
it "should not destroy the certs if we are not a CA" do
- Puppet::SSL::Host.stubs(:ca_location).returns(:none)
- @ca.expects(:apply).never
+ Puppet::SSL::CertificateAuthority.stubs(:ca?).returns(false)
+ @ca.expects(:revoke).never
+ @ca.expects(:destroy).never
subject.clean_cert(@host)
end
end
@@ -162,20 +166,20 @@ describe Puppet::Face[:node, '0.0.1'] do
it "should connect to the database" do
Puppet::Rails.expects(:connect)
- subject.clean_storeconfigs(@host,false)
+ subject.clean_storeconfigs(@host, false)
end
it "should find the right host entry" do
Puppet::Rails::Host.expects(:find_by_name).with(@host).returns(@rails_node)
- subject.clean_storeconfigs(@host,false)
+ subject.clean_storeconfigs(@host, false)
end
describe "without unexport" do
it "should remove the host and it's content" do
@rails_node.expects(:destroy)
- subject.clean_storeconfigs(@host,false)
+ subject.clean_storeconfigs(@host, false)
end
end
@@ -197,7 +201,7 @@ describe Puppet::Face[:node, '0.0.1'] do
it "should find all resources" do
Puppet::Rails::Resource.expects(:find).with(:all, {:include => {:param_values => :param_name}, :conditions => ["exported=? AND host_id=?", true, 1234]}).returns([])
- subject.clean_storeconfigs(@host,true)
+ subject.clean_storeconfigs(@host, true)
end
describe "with an exported native type" do
@@ -207,21 +211,21 @@ describe Puppet::Face[:node, '0.0.1'] do
end
it "should test a native type for ensure as an attribute" do
- subject.clean_storeconfigs(@host,true)
+ subject.clean_storeconfigs(@host, true)
end
it "should delete the old ensure parameter" do
ensure_param = stub 'ensure_param', :id => 12345, :line => 12
@param_values.stubs(:find).returns(ensure_param)
Puppet::Rails::ParamValue.expects(:delete).with(12345);
- subject.clean_storeconfigs(@host,true)
+ subject.clean_storeconfigs(@host, true)
end
it "should add an ensure => absent parameter" do
@param_values.expects(:create).with(:value => "absent",
:line => 0,
:param_name => @ensure_name)
- subject.clean_storeconfigs(@host,true)
+ subject.clean_storeconfigs(@host, true)
end
end
@@ -229,14 +233,14 @@ describe Puppet::Face[:node, '0.0.1'] do
it "should try to lookup a definition and test it for the ensure argument" do
Puppet::Type.stubs(:type).returns(nil)
definition = stub_everything 'definition', :arguments => { 'ensure' => 'present' }
- Puppet::Resource::TypeCollection.any_instance.expects(:find_definition).with('',"File").returns(definition)
- subject.clean_storeconfigs(@host,true)
+ Puppet::Resource::TypeCollection.any_instance.expects(:find_definition).with('', "File").returns(definition)
+ subject.clean_storeconfigs(@host, true)
end
end
it "should not unexport the resource of an unkown type" do
Puppet::Type.stubs(:type).returns(nil)
- Puppet::Resource::TypeCollection.any_instance.expects(:find_definition).with('',"File").returns(nil)
+ Puppet::Resource::TypeCollection.any_instance.expects(:find_definition).with('', "File").returns(nil)
Puppet::Rails::ParamName.expects(:find_or_create_by_name).never
subject.clean_storeconfigs(@host)
end
@@ -244,17 +248,17 @@ describe Puppet::Face[:node, '0.0.1'] do
it "should not unexport the resource of a not ensurable native type" do
Puppet::Type.stubs(:type).returns(@type)
@type.expects(:validattr?).with(:ensure).returns(false)
- Puppet::Resource::TypeCollection.any_instance.expects(:find_definition).with('',"File").returns(nil)
+ Puppet::Resource::TypeCollection.any_instance.expects(:find_definition).with('', "File").returns(nil)
Puppet::Rails::ParamName.expects(:find_or_create_by_name).never
- subject.clean_storeconfigs(@host,true)
+ subject.clean_storeconfigs(@host, true)
end
it "should not unexport the resource of a not ensurable definition" do
Puppet::Type.stubs(:type).returns(nil)
definition = stub_everything 'definition', :arguments => { 'foobar' => 'someValue' }
- Puppet::Resource::TypeCollection.any_instance.expects(:find_definition).with('',"File").returns(definition)
+ Puppet::Resource::TypeCollection.any_instance.expects(:find_definition).with('', "File").returns(definition)
Puppet::Rails::ParamName.expects(:find_or_create_by_name).never
- subject.clean_storeconfigs(@host,true)
+ subject.clean_storeconfigs(@host, true)
end
end
end