summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rwxr-xr-xtest/language/scope.rb31
-rw-r--r--test/puppettest.rb36
2 files changed, 67 insertions, 0 deletions
diff --git a/test/language/scope.rb b/test/language/scope.rb
index a18b75bff..9c5302988 100755
--- a/test/language/scope.rb
+++ b/test/language/scope.rb
@@ -513,4 +513,35 @@ class TestScope < Test::Unit::TestCase
# trans = scope.evaluate(:ast => top)
#}
end
+
+ def test_defaultswithmultiplestatements
+ path = tempfile()
+
+ stats = []
+ stats << defaultobj("file", "group" => "root")
+ stats << fileobj(path, "owner" => "root")
+ stats << fileobj(path, "mode" => "755")
+
+ top = AST::ASTArray.new(
+ :file => __FILE__,
+ :line => __LINE__,
+ :children => stats
+ )
+ scope = Puppet::Parser::Scope.new()
+ assert_nothing_raised {
+ scope.evaluate(:ast => top)
+ }
+
+ trans = nil
+ assert_nothing_raised {
+ trans = scope.to_trans
+ }
+
+ obj = trans.find do |obj| obj.is_a? Puppet::TransObject end
+
+ assert(obj, "Could not retrieve file obj")
+ assert_equal("root", obj["group"], "Default did not take")
+ assert_equal("root", obj["owner"], "Owner did not take")
+ assert_equal("755", obj["mode"], "Mode did not take")
+ end
end
diff --git a/test/puppettest.rb b/test/puppettest.rb
index a16f4d80b..a8af679fb 100644
--- a/test/puppettest.rb
+++ b/test/puppettest.rb
@@ -766,6 +766,16 @@ module ParserTesting
}
end
+ def typeobj(name)
+ assert_nothing_raised("Could not create type %s" % name) {
+ return AST::Type.new(
+ :file => tempfile(),
+ :line => rand(100),
+ :value => name
+ )
+ }
+ end
+
def nodeobj(name)
assert_nothing_raised("Could not create node %s" % name) {
return AST::NodeDef.new(
@@ -832,6 +842,32 @@ module ParserTesting
)
}
end
+
+ def defaultobj(type, params)
+ pary = []
+ params.each { |p,v|
+ pary << AST::ObjectParam.new(
+ :file => __FILE__,
+ :line => __LINE__,
+ :param => nameobj(p),
+ :value => stringobj(v)
+ )
+ }
+ past = AST::ASTArray.new(
+ :file => __FILE__,
+ :line => __LINE__,
+ :children => pary
+ )
+
+ assert_nothing_raised("Could not create defaults for %s" % type) {
+ return AST::TypeDefaults.new(
+ :file => __FILE__,
+ :line => __LINE__,
+ :type => typeobj(type),
+ :params => past
+ )
+ }
+ end
end
class PuppetTestSuite