From 2dbd7e19de0caa683f7e0b4da5654eb15bc419da Mon Sep 17 00:00:00 2001 From: luke Date: Thu, 9 Mar 2006 18:45:51 +0000 Subject: Fixing #96. Defaults are now set when the object is passed out by the scope, rather than when the object is created. This is nice because it also moves awareness of the scope internals out of the AST object and back into the scope. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@996 980ebf18-57e1-0310-9a29-db15c13687c0 --- test/language/scope.rb | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'test/language') 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 -- cgit