Sha256: 6c28100f786eafc17f03fc0e522760db47958a14907175968cb8be4ccec364b5
Contents?: true
Size: 1.67 KB
Versions: 3
Compression:
Stored size: 1.67 KB
Contents
$:.unshift File.join(File.dirname(__FILE__),"..","lib") require 'test/unit' require 'rgen/metamodel_builder' require 'rgen/instantiator/reference_resolver' class ReferenceResolverTest < Test::Unit::TestCase class TestNode < RGen::MetamodelBuilder::MMBase has_attr 'name', String has_one 'other', TestNode has_many 'others', TestNode end class TestResolver include RGen::Instantiator::ReferenceResolver def initialize(nodeA, nodeB, nodeC) @nodeA, @nodeB, @nodeC = nodeA, nodeB, nodeC end def resolveIdentifier(ident) {:a => @nodeA, :b => @nodeB, :c => @nodeC}[ident] end end def test_simple nodeA = TestNode.new(:name => "NodeA") nodeB = TestNode.new(:name => "NodeB") nodeC = TestNode.new(:name => "NodeC") bProxy = RGen::MetamodelBuilder::MMProxy.new(:b) nodeA.other = bProxy aProxy = RGen::MetamodelBuilder::MMProxy.new(:a) cProxy = RGen::MetamodelBuilder::MMProxy.new(:c) nodeB.others = [aProxy, cProxy] unresolvedReferences = [ RGen::Instantiator::ReferenceResolver::UnresolvedReference.new(nodeA, "other", bProxy), RGen::Instantiator::ReferenceResolver::UnresolvedReference.new(nodeB, "others", aProxy), RGen::Instantiator::ReferenceResolver::UnresolvedReference.new(nodeB, "others", cProxy) ] resolver = TestResolver.new(nodeA, nodeB, nodeC) resolver.resolveReferences(unresolvedReferences) assert_equal nodeB, nodeA.other assert_equal [], nodeA.others assert_equal nil, nodeB.other assert_equal [nodeA, nodeC], nodeB.others assert_equal nil, nodeC.other assert_equal [], nodeC.others end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
rgen-0.5.3 | test/reference_resolver_test.rb |
rgen-0.5.4 | test/reference_resolver_test.rb |
rgen-0.5.2 | test/reference_resolver_test.rb |