summaryrefslogtreecommitdiff
path: root/spec/integration/parser/class_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/integration/parser/class_spec.rb')
-rw-r--r--spec/integration/parser/class_spec.rb37
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