Sha256: a862e3adb5e054b5b0580c3059a512a79a74377c1a405ca6bec2ff19dd702f49

Contents?: true

Size: 1.97 KB

Versions: 5

Compression:

Stored size: 1.97 KB

Contents

$:.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


Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
rgen-0.10.0 test/ecore_to_ruby_test.rb
rgen-0.9.1 ./test/ecore_to_ruby_test.rb
rgen-0.8.3 test/ecore_to_ruby_test.rb
rgen-0.8.4 test/ecore_to_ruby_test.rb
rgen-0.9.0 test/ecore_to_ruby_test.rb