1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
$:.unshift File.join(File.dirname(__FILE__),"..","lib")
require 'minitest/autorun'
require 'rgen/environment'
require 'rgen/ecore/ecore'
require 'rgen/ecore/ecore_ext'
require 'rgen/ecore/ecore_to_ruby'
class ECoreToRubyTest < Minitest::Test
module ContainerSimple
end
module ContainerUnder
end
def test_simple
p1 = create_ecore
mod = RGen::ECore::ECoreToRuby.new.create_module(p1)
assert mod.const_defined?(:P11)
assert mod::P11.const_defined?(:C1)
# temporary path
assert mod::P11::C1.to_s.start_with?("#")
ContainerSimple.const_set("P1", mod)
assert_equal "ECoreToRubyTest::ContainerSimple::P1::P11::C1", ContainerSimple::P1::P11::C1.name
end
def test_under
p1 = create_ecore
RGen::ECore::ECoreToRuby.new.create_module(p1, ContainerUnder)
assert ContainerUnder.const_defined?(:P1)
assert ContainerUnder::P1.const_defined?(:P11)
assert ContainerUnder::P1::P11.const_defined?(:C1)
assert_equal "ECoreToRubyTest::ContainerUnder::P1::P11::C1", ContainerUnder::P1::P11::C1.name
end
def test_under_temp_path
p1 = create_ecore
container = Module.new
RGen::ECore::ECoreToRuby.new.create_module(p1, container)
assert container.const_defined?(:P1)
assert container::P1.const_defined?(:P11)
assert container::P1::P11.const_defined?(:C1)
# temporary path
assert container::P1::P11::C1.to_s.start_with?("#")
self.class.const_set("Container2", container)
assert_equal "ECoreToRubyTest::Container2::P1::P11::C1", container::P1::P11::C1.to_s
end
def create_ecore
p1 = RGen::ECore::EPackage.new(:name => "P1")
p11 = RGen::ECore::EPackage.new(:name => "P11", :eSuperPackage => p1)
p12 = RGen::ECore::EPackage.new(:name => "P12", :eSuperPackage => p1)
c1 = RGen::ECore::EClass.new(:name => "C1", :ePackage => p11)
c2 = RGen::ECore::EClass.new(:name => "C2", :ePackage => p12)
c3 = RGen::ECore::EClass.new(:name => "C3", :eSuperTypes => [c1, c2], :ePackage => p11)
p1
end
end
|