summaryrefslogtreecommitdiffstats
path: root/spec/integration/parser
diff options
context:
space:
mode:
authorNick Lewis <nick@puppetlabs.com>2011-05-17 15:32:42 -0700
committerNick Lewis <nick@puppetlabs.com>2011-05-17 15:32:42 -0700
commit390f9fe6112304aed07acc6ffdeb0114f246fac3 (patch)
treee120cf24c9948c318896a2a2477bc6151a8ce1d0 /spec/integration/parser
parentd1cc24f6e7eb8ea5b29f0611eaa8246f9d7d4d25 (diff)
parent3ac7aede7233e0554077f7abbf6e561960a05e4d (diff)
downloadpuppet-390f9fe6112304aed07acc6ffdeb0114f246fac3.tar.gz
puppet-390f9fe6112304aed07acc6ffdeb0114f246fac3.tar.xz
puppet-390f9fe6112304aed07acc6ffdeb0114f246fac3.zip
Merge branch 'ticket/2.7.next/7523' into 2.7.next
Diffstat (limited to 'spec/integration/parser')
-rwxr-xr-xspec/integration/parser/parser_spec.rb31
1 files changed, 31 insertions, 0 deletions
diff --git a/spec/integration/parser/parser_spec.rb b/spec/integration/parser/parser_spec.rb
index 65c9ee302..b55aa04ce 100755
--- a/spec/integration/parser/parser_spec.rb
+++ b/spec/integration/parser/parser_spec.rb
@@ -117,5 +117,36 @@ describe Puppet::Parser::Parser do
$out = $hash['a']['b']['c']
}.should parse_with { |v| v.value.is_a?(Puppet::Parser::AST::ASTHash) }
end
+
+ it "should fail if asked to parse '$foo::::bar'" do
+ expect { @parser.parse("$foo::::bar") }.should raise_error(Puppet::ParseError, /Syntax error at ':'/)
+ end
+
+ describe "function calls" do
+ it "should be able to pass an array to a function" do
+ "my_function([1,2,3])".should parse_with { |fun|
+ fun.is_a?(Puppet::Parser::AST::Function) &&
+ fun.arguments.first.evaluate(stub 'scope') == ['1','2','3']
+ }
+ end
+
+ it "should be able to pass a hash to a function" do
+ "my_function({foo => bar})".should parse_with { |fun|
+ fun.is_a?(Puppet::Parser::AST::Function) &&
+ fun.arguments.first.evaluate(stub 'scope') == {'foo' => 'bar'}
+ }
+ end
+ end
+
+ describe "collections" do
+ it "should find resources according to an expression" do
+ %q{
+ File <| mode == 0700 + 0050 + 0050 |>
+ }.should parse_with { |coll|
+ coll.is_a?(Puppet::Parser::AST::Collection) &&
+ coll.query.evaluate(stub 'scope').first == "param_values.value = '528' and param_names.name = 'mode'"
+ }
+ end
+ end
end
end