summaryrefslogtreecommitdiffstats
path: root/spec/unit/node
diff options
context:
space:
mode:
authorLuke Kanies <luke@madstop.com>2007-11-19 18:27:38 -0600
committerLuke Kanies <luke@madstop.com>2007-11-19 18:27:38 -0600
commit9e5fc76eb77a9b90afb384d34a8e5bf63f79af6e (patch)
tree3c07be783978ae1d03213fb073e68d2b4fa97a8a /spec/unit/node
parentcc88441a61929714fcf6a26e121d6bec2184d8eb (diff)
downloadpuppet-9e5fc76eb77a9b90afb384d34a8e5bf63f79af6e.tar.gz
puppet-9e5fc76eb77a9b90afb384d34a8e5bf63f79af6e.tar.xz
puppet-9e5fc76eb77a9b90afb384d34a8e5bf63f79af6e.zip
Fixing #911 and #912 -- there's a default environment (development)
and you have to specify the valid environments for your site.
Diffstat (limited to 'spec/unit/node')
-rwxr-xr-xspec/unit/node/environment.rb80
1 files changed, 80 insertions, 0 deletions
diff --git a/spec/unit/node/environment.rb b/spec/unit/node/environment.rb
new file mode 100755
index 000000000..cccff7b97
--- /dev/null
+++ b/spec/unit/node/environment.rb
@@ -0,0 +1,80 @@
+#!/usr/bin/env ruby
+
+require File.dirname(__FILE__) + '/../../spec_helper'
+
+require 'puppet/node/environment'
+
+describe Puppet::Node::Environment do
+ it "should provide a list of valid environments" do
+ Puppet::Node::Environment.valid.should be_instance_of(Array)
+ end
+
+ it "should determine its list of valid environments from splitting the :environments setting on commas" do
+ Puppet.settings.stubs(:value).with(:environments).returns("one,two")
+ Puppet::Node::Environment.valid.collect { |e| e.to_s }.sort.should == %w{one two}.sort
+ end
+
+ it "should not use an environment when determining the list of valid environments" do
+ Puppet.settings.expects(:value).with(:environments).returns("one,two")
+ Puppet::Node::Environment.valid
+ end
+
+ it "should provide a means of identifying invalid environments" do
+ Puppet.settings.expects(:value).with(:environments).returns("one,two")
+ Puppet::Node::Environment.valid?(:three).should be_false
+ end
+
+ it "should provide a means of identifying valid environments" do
+ Puppet.settings.expects(:value).with(:environments).returns("one,two")
+ Puppet::Node::Environment.valid?(:one).should be_true
+ end
+
+ it "should use the default environment if no name is provided while initializing an environment" do
+ Puppet.settings.expects(:value).with(:environments).returns("one,two")
+ Puppet.settings.expects(:value).with(:environment).returns("one")
+ Puppet::Node::Environment.new().name.should == :one
+ end
+
+ it "should treat environment instances as singletons" do
+ Puppet.settings.stubs(:value).with(:environments).returns("one")
+ Puppet::Node::Environment.new("one").should equal(Puppet::Node::Environment.new("one"))
+ end
+
+ it "should treat an environment specified as names or strings as equivalent" do
+ Puppet.settings.stubs(:value).with(:environments).returns("one")
+ Puppet::Node::Environment.new(:one).should equal(Puppet::Node::Environment.new("one"))
+ end
+
+ it "should fail if an invalid environment instance is asked for" do
+ Puppet.settings.stubs(:value).with(:environments).returns("one,two")
+ proc { Puppet::Node::Environment.new("three") }.should raise_error(ArgumentError)
+ end
+
+ it "should fail if a no-longer-valid environment instance is asked for" do
+ Puppet.settings.expects(:value).with(:environments).returns("one")
+ Puppet::Node::Environment.new("one")
+ Puppet.settings.expects(:value).with(:environments).returns("two")
+ proc { Puppet::Node::Environment.new("one") }.should raise_error(ArgumentError)
+ end
+end
+
+describe Puppet::Node::Environment, " when modeling a specific environment" do
+ before do
+ Puppet.settings.expects(:value).with(:environments).returns("testing")
+ end
+
+ it "should have a method for returning the environment name" do
+ Puppet::Node::Environment.new("testing").name.should == :testing
+ end
+
+ it "should provide an array-like accessor method for returning any environment-specific setting" do
+ env = Puppet::Node::Environment.new("testing")
+ env.should respond_to(:[])
+ end
+
+ it "should ask the Puppet settings instance for the setting qualified with the environment name" do
+ Puppet.settings.expects(:value).with("myvar", :testing).returns("myval")
+ env = Puppet::Node::Environment.new("testing")
+ env["myvar"].should == "myval"
+ end
+end