Created
November 16, 2012 19:16
-
-
Save llowder/4090041 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'spec_helper' | |
require 'puppet_spec/compiler' | |
describe "When a node includes class of same name" do | |
include PuppetSpec::Compiler | |
def expect_the_message_to_be(message1, message2, node = Puppet::Node.new('ubuntu')) | |
catalog = compile_to_catalog(yield, node) | |
catalog.resource('Notify', 'nodenotify')[:message].should == message1 | |
catalog.resource('Notify', 'classnotify')[:message].should == message2 | |
end | |
def expect_the_class_to_not_be(message1, node = Puppet::Node.new('ubuntu')) | |
catalog1 = compile_to_catalog(yield, node) | |
catalog1.resource('Notify', 'nodenotify')[:message].should == message1 | |
catalog1.resource('Notify', 'classnotify').nil? | |
end | |
describe "when include syntax is used with an absolute node name" do | |
it "does not load the class (1)" do | |
expect_the_class_to_not_be('This is the node var') do <<-MANIFEST | |
node ubuntu { | |
$var = 'This is the node var' | |
include ubuntu | |
notify { 'nodenotify': message => $var, } | |
} | |
class ubuntu { | |
$var = 'This is the class var' | |
notify { 'classnotify': message => $var, } | |
} | |
MANIFEST | |
end | |
end | |
#Variable scope tests. | |
it "does not load the class, var in node and class; name::var is node::var (2)" do | |
expect_the_class_to_not_be('This is the node var') do <<-MANIFEST | |
node ubuntu { | |
$var = 'This is the node var' | |
include ubuntu | |
notify { 'nodenotify': message => $ubuntu::var, } | |
} | |
class ubuntu { | |
$var = 'This is the class var' | |
notify { 'classnotify': message => $var, } | |
} | |
MANIFEST | |
end | |
end | |
it "does not load the class, var in node and class; ::name::var is node::var (3)" do | |
expect_the_class_to_not_be('This is the node var') do <<-MANIFEST | |
node ubuntu { | |
$var = 'This is the node var' | |
include ubuntu | |
notify { 'nodenotify': message => $::ubuntu::var, } | |
} | |
class ubuntu { | |
$var = 'This is the class var' | |
notify { 'classnotify': message => $var, } | |
} | |
MANIFEST | |
end | |
end | |
it "does not load the class, var in class only; name::var is undefined (4)" do | |
expect_the_class_to_not_be(nil) do <<-MANIFEST | |
node ubuntu { | |
include ubuntu | |
notify { 'nodenotify': message => $ubuntu::var, } | |
} | |
class ubuntu { | |
$var = 'This is the class var' | |
notify { 'classnotify': message => $var, } | |
} | |
MANIFEST | |
end | |
end | |
it "does not load the class, var in class only; ::name::var is undefined (5)" do | |
expect_the_class_to_not_be(nil) do <<-MANIFEST | |
node ubuntu { | |
include ubuntu | |
notify { 'nodenotify': message => $::ubuntu::var, } | |
} | |
class ubuntu { | |
$var = 'This is the class var' | |
notify { 'classnotify': message => $var, } | |
} | |
MANIFEST | |
end | |
end | |
end | |
describe "when include syntax is used with a wildcard regex node name" do | |
it "does load the class (1)" do | |
expect_the_message_to_be('This is the node var', 'This is the class var') do <<-MANIFEST | |
node /ubunt./ { | |
$var = 'This is the node var' | |
include ubuntu | |
notify { 'nodenotify': message => $var, } | |
} | |
class ubuntu { | |
$var = 'This is the class var' | |
notify { 'classnotify': message => $var, } | |
} | |
MANIFEST | |
end | |
end | |
#Variable scope tests. | |
it "does load the class, var in node and class; name::var in node is class::var (2)" do | |
expect_the_message_to_be('This is the class var', 'This is the class var') do <<-MANIFEST | |
node /ubunt./ { | |
$var = 'This is the node var' | |
include ubuntu | |
notify { 'nodenotify': message => $ubuntu::var, } | |
} | |
class ubuntu { | |
$var = 'This is the class var' | |
notify { 'classnotify': message => $var, } | |
} | |
MANIFEST | |
end | |
end | |
it "does load the class, var in node and class; ::name::var in node is class::var (3)" do | |
expect_the_message_to_be('This is the class var', 'This is the class var') do <<-MANIFEST | |
node /ubunt./ { | |
$var = 'This is the node var' | |
include ubuntu | |
notify { 'nodenotify': message => $::ubuntu::var, } | |
} | |
class ubuntu { | |
$var = 'This is the class var' | |
notify { 'classnotify': message => $var, } | |
} | |
MANIFEST | |
end | |
end | |
it "does load the class, var in class only; name::var in node is class::var (4)" do | |
expect_the_message_to_be('This is the class var', 'This is the class var') do <<-MANIFEST | |
node /ubunt./ { | |
include ubuntu | |
notify { 'nodenotify': message => $ubuntu::var, } | |
} | |
class ubuntu { | |
$var = 'This is the class var' | |
notify { 'classnotify': message => $var, } | |
} | |
MANIFEST | |
end | |
end | |
it "does load the class, var in class only; ::name::var in node is class::var (5)" do | |
expect_the_message_to_be('This is the class var', 'This is the class var') do <<-MANIFEST | |
node /ubunt./ { | |
include ubuntu | |
notify { 'nodenotify': message => $::ubuntu::var, } | |
} | |
class ubuntu { | |
$var = 'This is the class var' | |
notify { 'classnotify': message => $var, } | |
} | |
MANIFEST | |
end | |
end | |
end | |
describe "when include syntax is used with a fixed string regex node name" do | |
it "does load the class (1)" do | |
expect_the_message_to_be('This is the node var', 'This is the class var') do <<-MANIFEST | |
node /ubunt./ { | |
$var = 'This is the node var' | |
class { 'ubuntu': } | |
notify { 'nodenotify': message => $var, } | |
} | |
class ubuntu { | |
$var = 'This is the class var' | |
notify { 'classnotify': message => $var, } | |
} | |
MANIFEST | |
end | |
end | |
#Variable scope tests. | |
it "does load the class, var in node and class; name::var in node is class::var (2)" do | |
expect_the_message_to_be('This is the class var', 'This is the class var') do <<-MANIFEST | |
node /ubunt./ { | |
$var = 'This is the node var' | |
class { 'ubuntu': } | |
notify { 'nodenotify': message => $ubuntu::var, } | |
} | |
class ubuntu { | |
$var = 'This is the class var' | |
notify { 'classnotify': message => $var, } | |
} | |
MANIFEST | |
end | |
end | |
it "does load the class, ::name::var in node is class::var (3)" do | |
expect_the_message_to_be('This is the class var', 'This is the class var') do <<-MANIFEST | |
node /ubunt./ { | |
$var = 'This is the node var' | |
class { 'ubuntu': } | |
notify { 'nodenotify': message => $::ubuntu::var, } | |
} | |
class ubuntu { | |
$var = 'This is the class var' | |
notify { 'classnotify': message => $var, } | |
} | |
MANIFEST | |
end | |
end | |
it "does load the class, var in class only; name::var in node is class::var (4)" do | |
expect_the_message_to_be('This is the class var', 'This is the class var') do <<-MANIFEST | |
node /ubunt./ { | |
class { 'ubuntu': } | |
notify { 'nodenotify': message => $ubuntu::var, } | |
} | |
class ubuntu { | |
$var = 'This is the class var' | |
notify { 'classnotify': message => $var, } | |
} | |
MANIFEST | |
end | |
end | |
it "does load the class, var in class only; ::name::var is class::var (5)" do | |
expect_the_message_to_be('This is the class var', 'This is the class var') do <<-MANIFEST | |
node /ubunt./ { | |
class { 'ubuntu': } | |
notify { 'nodenotify': message => $::ubuntu::var, } | |
} | |
class ubuntu { | |
$var = 'This is the class var' | |
notify { 'classnotify': message => $var, } | |
} | |
MANIFEST | |
end | |
end | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment