diff options
Diffstat (limited to 'spec/integration/parser/class_spec.rb')
-rw-r--r-- | spec/integration/parser/class_spec.rb | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/spec/integration/parser/class_spec.rb b/spec/integration/parser/class_spec.rb new file mode 100644 index 000000000..9f63eb083 --- /dev/null +++ b/spec/integration/parser/class_spec.rb @@ -0,0 +1,37 @@ +require 'spec_helper' +require 'puppet_spec/language' + +describe "Class expressions" do + extend PuppetSpec::Language + + before :each do + Puppet[:parser] = 'future' + end + + produces( + "class hi { }" => '!defined(Class[Hi])', + + "class hi { } include hi" => 'defined(Class[Hi])', + "include(hi) class hi { }" => 'defined(Class[Hi])', + + "class hi { } class { hi: }" => 'defined(Class[Hi])', + "class { hi: } class hi { }" => 'defined(Class[Hi])', + + "class bye { } class hi inherits bye { } include hi" => 'defined(Class[Hi]) and defined(Class[Bye])') + + produces(<<-EXAMPLE => 'defined(Notify[foo]) and defined(Notify[bar]) and !defined(Notify[foo::bar])') + class bar { notify { 'bar': } } + class foo::bar { notify { 'foo::bar': } } + class foo inherits bar { notify { 'foo': } } + + include foo + EXAMPLE + + produces(<<-EXAMPLE => 'defined(Notify[foo]) and defined(Notify[bar]) and !defined(Notify[foo::bar])') + class bar { notify { 'bar': } } + class foo::bar { notify { 'foo::bar': } } + class foo inherits ::bar { notify { 'foo': } } + + include foo + EXAMPLE +end |