Class: JsonTest

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

Defined Under Namespace

Modules: TestMM, TestMMData, TestMMSubpackage Classes: StringWriter

Instance Method Summary collapse

Instance Method Details

#test_json_instantiatorObject



58
59
60
61
62
63
64
65
66
67
68
# File 'lib/puppet/vendor/rgen/test/json_test.rb', line 58

def test_json_instantiator
  env = RGen::Environment.new
  inst = RGen::Instantiator::JsonInstantiator.new(env, TestMM)
  inst.instantiate(%q({ "_class": "TestNode", "text": "some text", "childs": [ 
{ "_class": "TestNode", "text": "child" }] }))
  root = env.find(:class => TestMM::TestNode, :text => "some text").first
  assert_not_nil root
  assert_equal 1, root.childs.size
  assert_equal TestMM::TestNode, root.childs.first.class
  assert_equal "child", root.childs.first.text
end

#test_json_instantiator_builtin_in_subpackageObject



135
136
137
138
139
140
# File 'lib/puppet/vendor/rgen/test/json_test.rb', line 135

def test_json_instantiator_builtin_in_subpackage
  env = RGen::Environment.new
  inst = RGen::Instantiator::JsonInstantiator.new(env, TestMMSubpackage)
  inst.instantiate(%q({ "_class": "Data", "notTheBuiltin": "for sure" }))
  assert_equal "for sure", env.elements.first.notTheBuiltin
end

#test_json_instantiator_conflict_builtinObject



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

def test_json_instantiator_conflict_builtin
  env = RGen::Environment.new
  inst = RGen::Instantiator::JsonInstantiator.new(env, TestMMData)
  inst.instantiate(%q({ "_class": "Data", "notTheBuiltin": "for sure" }))
  assert_equal "for sure", env.elements.first.notTheBuiltin
end

#test_json_instantiator_escape_single_backslashObject



86
87
88
89
90
91
# File 'lib/puppet/vendor/rgen/test/json_test.rb', line 86

def test_json_instantiator_escape_single_backslash
  env = RGen::Environment.new
  inst = RGen::Instantiator::JsonInstantiator.new(env, TestMM)
  inst.instantiate(%q({ "_class": "TestNode", "text": "a single \\ will be just itself" }))
  assert_equal %q(a single \\ will be just itself), env.elements.first.text
end

#test_json_instantiator_escapesObject



79
80
81
82
83
84
# File 'lib/puppet/vendor/rgen/test/json_test.rb', line 79

def test_json_instantiator_escapes
  env = RGen::Environment.new
  inst = RGen::Instantiator::JsonInstantiator.new(env, TestMM)
  inst.instantiate(%q({ "_class": "TestNode", "text": "some \" \\\\ \\\\\" text \r xx \n xx \r\n xx \t xx \b xx \f" }))
  assert_equal %Q(some " \\ \\" text \r xx \n xx \r\n xx \t xx \b xx \f), env.elements.first.text
end

#test_json_instantiator_floatObject



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

def test_json_instantiator_float
  env = RGen::Environment.new
  inst = RGen::Instantiator::JsonInstantiator.new(env, TestMM)
  inst.instantiate(%q({ "_class": "TestNode", "float": 1.23 }))
  assert_equal 1.23, env.elements.first.float
end

#test_json_instantiator_integerObject



100
101
102
103
104
105
# File 'lib/puppet/vendor/rgen/test/json_test.rb', line 100

def test_json_instantiator_integer
  env = RGen::Environment.new
  inst = RGen::Instantiator::JsonInstantiator.new(env, TestMM)
  inst.instantiate(%q({ "_class": "TestNode", "integer": 7 }))
  assert_equal 7, env.elements.first.integer
end

#test_json_instantiator_referencesObject



157
158
159
160
161
162
163
164
165
166
167
168
169
# File 'lib/puppet/vendor/rgen/test/json_test.rb', line 157

def test_json_instantiator_references
  env = RGen::Environment.new
  inst = RGen::Instantiator::JsonInstantiator.new(env, TestMM, :nameAttribute => "text")
  inst.instantiate(%q([
  { "_class": "TestNode", "text": "A", "childs": [ 
    { "_class": "TestNode", "text": "B" } ]},
  { "_class": "TestNode", "text": "C", "other": "/A/B"}]
  ))
  nodeA = env.find(:class => TestMM::TestNode, :text => "A").first
  nodeC = env.find(:class => TestMM::TestNode, :text => "C").first
  assert_equal 1, nodeA.childs.size
  assert_equal nodeA.childs[0], nodeC.other 
end

#test_json_instantiator_subpackageObject



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

def test_json_instantiator_subpackage
  env = RGen::Environment.new
  inst = RGen::Instantiator::JsonInstantiator.new(env, TestMMSubpackage)
  inst.instantiate(%q({ "_class": "Data2", "data2": "something" }))
  assert_equal "something", env.elements.first.data2
end

#test_json_instantiator_subpackage_no_shortname_optObject



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

def test_json_instantiator_subpackage_no_shortname_opt
  env = RGen::Environment.new
  inst = RGen::Instantiator::JsonInstantiator.new(env, TestMMSubpackage, :short_class_names => false)
  assert_raise RuntimeError do
    inst.instantiate(%q({ "_class": "Data2", "data2": "something" }))
  end
end

#test_json_serializerObject



47
48
49
50
51
52
53
54
55
56
# File 'lib/puppet/vendor/rgen/test/json_test.rb', line 47

def test_json_serializer
  testModel = TestMM::TestNode.new(:text => "some text", :childs => [
    TestMM::TestNode.new(:text => "child")])

  output = StringWriter.new
  ser = RGen::Serializer::JsonSerializer.new(output)

  assert_equal %q({ "_class": "TestNode", "text": "some text", "childs": [ 
{ "_class": "TestNode", "text": "child" }] }), ser.serialize(testModel)
end

#test_json_serializer_escapesObject



70
71
72
73
74
75
76
77
# File 'lib/puppet/vendor/rgen/test/json_test.rb', line 70

def test_json_serializer_escapes
  testModel = TestMM::TestNode.new(:text => %Q(some " \\ \\" text \r xx \n xx \r\n xx \t xx \b xx \f))
  output = StringWriter.new
  ser = RGen::Serializer::JsonSerializer.new(output)

  assert_equal %q({ "_class": "TestNode", "text": "some \" \\\\ \\\\\" text \r xx \n xx \r\n xx \t xx \b xx \f" }),
    ser.serialize(testModel) 
end

#test_json_serializer_floatObject



107
108
109
110
111
112
# File 'lib/puppet/vendor/rgen/test/json_test.rb', line 107

def test_json_serializer_float
  testModel = TestMM::TestNode.new(:float => 1.23)
  output = StringWriter.new
  ser = RGen::Serializer::JsonSerializer.new(output)
  assert_equal %q({ "_class": "TestNode", "float": 1.23 }), ser.serialize(testModel) 
end

#test_json_serializer_integerObject



93
94
95
96
97
98
# File 'lib/puppet/vendor/rgen/test/json_test.rb', line 93

def test_json_serializer_integer
  testModel = TestMM::TestNode.new(:integer => 7)
  output = StringWriter.new
  ser = RGen::Serializer::JsonSerializer.new(output)
  assert_equal %q({ "_class": "TestNode", "integer": 7 }), ser.serialize(testModel) 
end

#test_json_serializer_subpacakgeObject



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

def test_json_serializer_subpacakge
  testModel = TestMMSubpackage::SubPackage::Data2.new(:data2 => "xxx")
  output = StringWriter.new
  ser = RGen::Serializer::JsonSerializer.new(output)
  assert_equal %q({ "_class": "Data2", "data2": "xxx" }), ser.serialize(testModel) 
end