summaryrefslogtreecommitdiffstats
path: root/test/puppettest.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/puppettest.rb')
-rw-r--r--test/puppettest.rb106
1 files changed, 106 insertions, 0 deletions
diff --git a/test/puppettest.rb b/test/puppettest.rb
index 6f6b961f8..ccaa027cd 100644
--- a/test/puppettest.rb
+++ b/test/puppettest.rb
@@ -561,6 +561,112 @@ module FileTesting
end
end
+module ParserTesting
+ include TestPuppet
+ AST = Puppet::Parser::AST
+
+ def astarray
+ AST::ASTArray.new(
+ :children => []
+ )
+ end
+
+ def classobj(name, args = {})
+ unless args.include?(:name)
+ args[:name] = nameobj(name)
+ end
+ unless args.include?(:code)
+ args[:code] = AST::ASTArray.new(
+ :children => [
+ varobj("%svar" % name, "%svalue" % name),
+ fileobj("/%s" % name)
+ ]
+ )
+ end
+ assert_nothing_raised("Could not create class %s" % name) {
+ return AST::ClassDef.new(args)
+ }
+ end
+
+ def compobj(name, args = {})
+ args[:name] = nameobj(name)
+ args[:code] = AST::ASTArray.new(
+ :children => [
+ varobj("%svar" % name, "%svalue" % name),
+ fileobj("/%s" % name)
+ ]
+ )
+ assert_nothing_raised("Could not create compdef %s" % name) {
+ return AST::CompDef.new(args)
+ }
+ end
+
+ def fileobj(path, hash = {"owner" => "root"})
+ assert_nothing_raised("Could not create file %s" % path) {
+ return AST::ObjectDef.new(
+ :name => stringobj(path),
+ :type => nameobj("file"),
+ :params => objectinst(hash)
+ )
+ }
+ end
+
+ def nameobj(name)
+ assert_nothing_raised("Could not create name %s" % name) {
+ return AST::Name.new(
+ :value => name
+ )
+ }
+ end
+
+ def nodeobj(name)
+ assert_nothing_raised("Could not create node %s" % name) {
+ return AST::NodeDef.new(
+ :names => nameobj(name),
+ :code => AST::ASTArray.new(
+ :children => [
+ varobj("%svar" % name, "%svalue" % name),
+ fileobj("/%s" % name)
+ ]
+ )
+ )
+ }
+ end
+
+ def objectinst(hash)
+ assert_nothing_raised("Could not create object instance") {
+ params = hash.collect { |param, value|
+ objectparam(param, value)
+ }
+ return AST::ObjectInst.new(
+ :children => params
+ )
+ }
+ end
+
+ def objectparam(param, value)
+ assert_nothing_raised("Could not create param %s" % param) {
+ return AST::ObjectParam.new(
+ :param => nameobj(param),
+ :value => stringobj(value)
+ )
+ }
+ end
+
+ def stringobj(value)
+ AST::String.new(:value => value)
+ end
+
+ def varobj(name, value)
+ assert_nothing_raised("Could not create %s code" % name) {
+ return AST::VarDef.new(
+ :name => nameobj(name),
+ :value => stringobj(value)
+ )
+ }
+ end
+end
+
class PuppetTestSuite
attr_accessor :subdir