diff options
Diffstat (limited to 'test')
| -rwxr-xr-x | test/language/scope.rb | 31 | ||||
| -rw-r--r-- | test/puppettest.rb | 36 |
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 |
