Class: TemplateContainerTest

Inherits:
Test::Unit::TestCase
  • Object
show all
Defined in:
lib/puppet/vendor/rgen/test/template_language_test.rb

Defined Under Namespace

Modules: CCodeMM, MyMM

Constant Summary collapse

TEMPLATES_DIR =
File.dirname(__FILE__)+"/template_language_test/templates"
OUTPUT_DIR =
File.dirname(__FILE__)+"/template_language_test"
TEST_MODEL =
MyMM::Document.new("SomeDocument")

Instance Method Summary collapse

Instance Method Details

#test_callback_indentObject



157
158
159
160
161
162
# File 'lib/puppet/vendor/rgen/test/template_language_test.rb', line 157

def test_callback_indent
  tc = RGen::TemplateLanguage::DirectoryTemplateContainer.new([MyMM, CCodeMM], OUTPUT_DIR)
  tc.load(TEMPLATES_DIR)
  assert_equal("|before callback\r\n   |in callback\r\n|after callback\r\n   |after iinc\r\n",
   tc.expand('callback_indent_test/a::caller', :for => :dummy))
end

#test_define_localObject



140
141
142
143
144
145
146
147
# File 'lib/puppet/vendor/rgen/test/template_language_test.rb', line 140

def test_define_local
  tc = RGen::TemplateLanguage::DirectoryTemplateContainer.new([MyMM, CCodeMM], OUTPUT_DIR)
  tc.load(TEMPLATES_DIR)
  assert_equal "Local1\r\n", tc.expand('define_local_test/test::Test', :for => :dummy)
  assert_raise StandardError do
    tc.expand('define_local_test/test::TestForbidden', :for => :dummy)
  end
end

#test_evaluateObject



134
135
136
137
138
# File 'lib/puppet/vendor/rgen/test/template_language_test.rb', line 134

def test_evaluate
  tc = RGen::TemplateLanguage::DirectoryTemplateContainer.new([MyMM, CCodeMM], OUTPUT_DIR)
  tc.load(TEMPLATES_DIR)
  assert_equal "xx1xxxx2xxxx3xxxx4xx\r\n", tc.expand('evaluate_test/test::Test', :for => :dummy)
end

#test_immediate_resultObject



72
73
74
75
76
77
78
# File 'lib/puppet/vendor/rgen/test/template_language_test.rb', line 72

def test_immediate_result
  tc = RGen::TemplateLanguage::DirectoryTemplateContainer.new([MyMM, CCodeMM], OUTPUT_DIR)
  tc.load(TEMPLATES_DIR)
  expected = ""
  File.open(OUTPUT_DIR+"/expected_result2.txt","rb") {|f| expected = f.read}
  assert_equal expected, tc.expand('code/array::ArrayDefinition', :for => TEST_MODEL.sampleArray).to_s
end

#test_indent_stringObject



80
81
82
83
84
85
86
87
88
89
90
91
# File 'lib/puppet/vendor/rgen/test/template_language_test.rb', line 80

def test_indent_string
  tc = RGen::TemplateLanguage::DirectoryTemplateContainer.new([MyMM, CCodeMM], OUTPUT_DIR)
  tc.load(TEMPLATES_DIR)
  tc.indentString = "  "  # 2 spaces instead of 3 (default)
  tc.expand('indent_string_test::IndentStringTest', :for => :dummy)
  File.open(OUTPUT_DIR+"/indentStringTestDefaultIndent.out","rb") do |f|
    assert_equal "  <- your default here\r\n", f.read
  end
  File.open(OUTPUT_DIR+"/indentStringTestTabIndent.out","rb") do |f|
    assert_equal "\t<- tab\r\n", f.read
  end
end

#test_no_backslash_rObject



149
150
151
152
153
154
155
# File 'lib/puppet/vendor/rgen/test/template_language_test.rb', line 149

def test_no_backslash_r
  tc = RGen::TemplateLanguage::DirectoryTemplateContainer.new([MyMM, CCodeMM], OUTPUT_DIR)
  tc.load(TEMPLATES_DIR)
  expected = ""
  File.open(OUTPUT_DIR+"/expected_result3.txt") {|f| expected = f.read}
  assert_equal expected, tc.expand('no_backslash_r_test::Test', :for => :dummy).to_s
end

#test_no_indentObject



109
110
111
112
113
# File 'lib/puppet/vendor/rgen/test/template_language_test.rb', line 109

def test_no_indent
  tc = RGen::TemplateLanguage::DirectoryTemplateContainer.new([MyMM, CCodeMM], OUTPUT_DIR)
  tc.load(TEMPLATES_DIR)
  assert_equal "   xxx<---\r\n   xxx<---\r\n   xxx<---\r\n   xxx<---\r\n", tc.expand('no_indent_test/test::Test', :for => :dummy)
end

#test_no_indent2Object



115
116
117
118
119
# File 'lib/puppet/vendor/rgen/test/template_language_test.rb', line 115

def test_no_indent2
  tc = RGen::TemplateLanguage::DirectoryTemplateContainer.new([MyMM, CCodeMM], OUTPUT_DIR)
  tc.load(TEMPLATES_DIR)
  assert_equal "      return xxxx;\r\n", tc.expand("no_indent_test/test2::Test", :for => :dummy)
end

#test_no_indent3Object



121
122
123
124
125
# File 'lib/puppet/vendor/rgen/test/template_language_test.rb', line 121

def test_no_indent3
  tc = RGen::TemplateLanguage::DirectoryTemplateContainer.new([MyMM, CCodeMM], OUTPUT_DIR)
  tc.load(TEMPLATES_DIR)
  assert_equal "   l1<---\r\n   l2\r\n\r\n", tc.expand("no_indent_test/test3::Test", :for => :dummy)
end

#test_null_contextObject



93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
# File 'lib/puppet/vendor/rgen/test/template_language_test.rb', line 93

def test_null_context
  tc = RGen::TemplateLanguage::DirectoryTemplateContainer.new([MyMM, CCodeMM], OUTPUT_DIR)
  tc.load(TEMPLATES_DIR)
  assert_raise StandardError do 
    # the template must raise an exception because it calls expand :for => nil
    tc.expand('null_context_test::NullContextTestBad', :for => :dummy)
  end
  assert_raise StandardError do 
    # the template must raise an exception because it calls expand :foreach => nil
    tc.expand('null_context_test::NullContextTestBad2', :for => :dummy)
  end
  assert_nothing_raised do
    tc.expand('null_context_test::NullContextTestOk', :for => :dummy)
  end
end

#test_template_resolutionObject



127
128
129
130
131
132
# File 'lib/puppet/vendor/rgen/test/template_language_test.rb', line 127

def test_template_resolution
  tc = RGen::TemplateLanguage::DirectoryTemplateContainer.new([MyMM, CCodeMM], OUTPUT_DIR)
  tc.load(TEMPLATES_DIR)
  assert_equal "Sub1\r\nSub1 in sub1\r\n", tc.expand('template_resolution_test/test::Test', :for => :dummy)
  assert_equal "Sub1\r\nSub1\r\nSub1 in sub1\r\n", tc.expand('template_resolution_test/sub1::Test', :for => :dummy)
end

#test_with_modelObject



61
62
63
64
65
66
67
68
69
70
# File 'lib/puppet/vendor/rgen/test/template_language_test.rb', line 61

def test_with_model
  tc = RGen::TemplateLanguage::DirectoryTemplateContainer.new([MyMM, CCodeMM], OUTPUT_DIR)
  tc.load(TEMPLATES_DIR)
  File.delete(OUTPUT_DIR+"/testout.txt") if File.exists? OUTPUT_DIR+"/testout.txt"
  tc.expand('root::Root', :for => TEST_MODEL, :indent => 1)
  result = expected = ""
  File.open(OUTPUT_DIR+"/testout.txt") {|f| result = f.read}
   File.open(OUTPUT_DIR+"/expected_result1.txt") {|f| expected = f.read}
  assert_equal expected, result
end