class XMLInstantiatorTest

Constants

XML_DIR

Public Instance Methods

remove_whitespace_elements(elements) click to toggle source
# File lib/puppet/vendor/rgen/test/xml_instantiator_test.rb, line 146
def remove_whitespace_elements(elements)
  elements.reject{|e| e.strip == ""} 
end
test_custom() click to toggle source
# File lib/puppet/vendor/rgen/test/xml_instantiator_test.rb, line 93
def test_custom
  env = RGen::Environment.new
  inst = MyInstantiator.new(env, DefaultMM, true)
  inst.instantiate_file(File.join(XML_DIR,"manual_testmodel.xml"))
  
  house = env.find(:class => DefaultMM::MNS::House).first
  assert_not_nil house
  assert_equal 2, house.room.size
  
  rooms = env.find(:class => DefaultMM::MNS::Room)
  assert_equal 2, rooms.size
  assert_equal 0, (house.room - rooms).size
  rooms.each {|r| assert r.parent == house}
  tomsRoom = rooms.select{|r| r.name == "TomsRoom"}.first
  assert_not_nil tomsRoom
  
  persons = env.find(:class => DefaultMM::Person)
  assert_equal 4, persons.size
  tom = persons.select{|p| p.name == "Tom"}.first
  assert_not_nil tom
  
  assert tom.personalRoom == tomsRoom
  
  mpns = env.find(:class => DefaultMM::MultiPartName)
  assert mpns.first.respond_to?("insideMultiPart")
end
test_default() click to toggle source
# File lib/puppet/vendor/rgen/test/xml_instantiator_test.rb, line 120
def test_default
  env = RGen::Environment.new
  inst = RGen::Instantiator::DefaultXMLInstantiator.new(env, EmptyMM, true)
  inst.instantiate_file(File.join(XML_DIR,"manual_testmodel.xml"))
  
  house = env.find(:class => EmptyMM::MNS_House).first
  assert_not_nil house
  assert_equal 2, house.mNS_Room.size
  assert_equal "before kitchen", remove_whitespace_elements(house.chardata)[0].strip
  assert_equal "after kitchen", remove_whitespace_elements(house.chardata)[1].strip
  assert_equal "after toms room", remove_whitespace_elements(house.chardata)[2].strip
  
  rooms = env.find(:class => EmptyMM::MNS_Room)
  assert_equal 2, rooms.size
  assert_equal 0, (house.mNS_Room - rooms).size
  rooms.each {|r| assert r.parent == house}
  tomsRoom = rooms.select{|r| r.name == "TomsRoom"}.first
  assert_not_nil tomsRoom
  assert_equal "within toms room", remove_whitespace_elements(tomsRoom.chardata)[0]
  
  persons = env.find(:class => EmptyMM::Person)
  assert_equal 4, persons.size
  tom = persons.select{|p| p.name == "Tom"}.first
  assert_not_nil tom
end
test_pruning() click to toggle source
# File lib/puppet/vendor/rgen/test/xml_instantiator_test.rb, line 74
def test_pruning
  env = RGen::Environment.new
  
  # prune level 2 is set in the class body

  inst = PruneTestInstantiator.new(env)
  inst.instantiate_file(File.join(XML_DIR,"manual_testmodel.xml"))
  assert_equal 2, inst.max_depth
  
  PruneTestInstantiator.set_prune_level(0)
  inst = PruneTestInstantiator.new(env)
  inst.instantiate_file(File.join(XML_DIR,"manual_testmodel.xml"))
  assert_equal 5, inst.max_depth
  
  PruneTestInstantiator.set_prune_level(1)
  inst = PruneTestInstantiator.new(env)
  inst.instantiate_file(File.join(XML_DIR,"manual_testmodel.xml"))
  assert_equal 1, inst.max_depth
end
test_simle_xmi_ecore_instantiator() click to toggle source
# File lib/puppet/vendor/rgen/test/xml_instantiator_test.rb, line 152
def test_simle_xmi_ecore_instantiator
  envECore = RGen::Environment.new
  File.open(XML_DIR+"/ea_testmodel.xml") { |f|
    SimpleXMIECoreInstantiator.new.instantiateECoreModel(envECore, f.read)
  }
  checkECoreModel(envECore)
end