rgen 0.7.0 → 0.8.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +27 -0
  3. data/Project.yaml +21 -0
  4. data/README.rdoc +1 -1
  5. data/Rakefile +22 -25
  6. data/lib/rgen/ecore/ecore.rb +1 -1
  7. data/lib/rgen/ecore/ecore_ext.rb +9 -1
  8. data/lib/rgen/ecore/ecore_to_json.rb +188 -0
  9. data/lib/rgen/ecore/ecore_to_ruby.rb +146 -47
  10. data/lib/rgen/fragment/fragmented_model.rb +2 -0
  11. data/lib/rgen/fragment/model_fragment.rb +3 -0
  12. data/lib/rgen/instantiator/default_xml_instantiator.rb +93 -88
  13. data/lib/rgen/metamodel_builder/builder_extensions.rb +33 -9
  14. data/lib/rgen/metamodel_builder/builder_runtime.rb +12 -5
  15. data/lib/rgen/template_language/output_handler.rb +52 -19
  16. data/lib/rgen/template_language/template_container.rb +17 -7
  17. data/lib/rgen/template_language.rb +2 -1
  18. data/test/array_extensions_test.rb +7 -7
  19. data/test/ea_instantiator_test.rb +2 -2
  20. data/test/ea_serializer_test.rb +2 -2
  21. data/test/ecore_self_test.rb +2 -2
  22. data/test/ecore_to_ruby_test.rb +73 -0
  23. data/test/environment_test.rb +2 -2
  24. data/test/json_test.rb +4 -4
  25. data/test/metamodel_builder_test.rb +79 -44
  26. data/test/metamodel_from_ecore_test.rb +1 -1
  27. data/test/metamodel_order_test.rb +2 -2
  28. data/test/metamodel_roundtrip_test.rb +2 -2
  29. data/test/method_delegation_test.rb +5 -5
  30. data/test/model_builder/builder_context_test.rb +3 -3
  31. data/test/model_builder/builder_test.rb +11 -11
  32. data/test/model_builder/reference_resolver_test.rb +3 -3
  33. data/test/model_builder/serializer_test.rb +2 -2
  34. data/test/model_fragment_test.rb +2 -2
  35. data/test/output_handler_test.rb +2 -2
  36. data/test/qualified_name_provider_test.rb +2 -2
  37. data/test/qualified_name_resolver_test.rb +4 -4
  38. data/test/reference_resolver_test.rb +4 -4
  39. data/test/rgen_test.rb +2 -1
  40. data/test/template_language_test/templates/indent_nonl_at_eof_test/test.tpl +14 -0
  41. data/test/template_language_test/templates/indent_same_line_sub/test.tpl +16 -0
  42. data/test/template_language_test/templates/line_endings/mixed.tpl +6 -0
  43. data/test/template_language_test/templates/line_endings/unix.tpl +6 -0
  44. data/test/template_language_test/templates/line_endings/windows.tpl +6 -0
  45. data/test/template_language_test/templates/ws_test.tpl +21 -0
  46. data/test/template_language_test.rb +60 -9
  47. data/test/testmodel/class_model_checker.rb +17 -17
  48. data/test/testmodel/ecore_model_checker.rb +13 -13
  49. data/test/testmodel/object_model_checker.rb +6 -6
  50. data/test/transformer_test.rb +3 -3
  51. data/test/util/file_cache_map_test.rb +2 -2
  52. data/test/util/pattern_matcher_test.rb +7 -7
  53. data/test/xml_instantiator_test/simple_ecore_model_checker.rb +12 -12
  54. data/test/xml_instantiator_test.rb +8 -8
  55. metadata +93 -22
  56. data/test/metamodel_roundtrip_test/TestModel_Regenerated.rb +0 -71
  57. data/test/metamodel_roundtrip_test/houseMetamodel_Regenerated.ecore +0 -162
  58. data/test/metamodel_roundtrip_test/using_builtin_types_serialized.ecore +0 -9
  59. data/test/model_builder/ecore_internal.rb +0 -113
  60. data/test/testmodel/ea_testmodel_regenerated.xml +0 -813
  61. data/test/util/file_cache_map_test/testdir/fileA +0 -1
@@ -0,0 +1,73 @@
1
+ $:.unshift File.join(File.dirname(__FILE__),"..","lib")
2
+
3
+ require 'minitest/autorun'
4
+ require 'rgen/environment'
5
+ require 'rgen/ecore/ecore'
6
+ require 'rgen/ecore/ecore_ext'
7
+ require 'rgen/ecore/ecore_to_ruby'
8
+
9
+ class ECoreToRubyTest < MiniTest::Test
10
+
11
+ module ContainerSimple
12
+ end
13
+
14
+ module ContainerUnder
15
+ end
16
+
17
+ def test_simple
18
+ p1 = create_ecore
19
+
20
+ mod = RGen::ECore::ECoreToRuby.new.create_module(p1)
21
+
22
+ assert mod.const_defined?(:P11)
23
+ assert mod::P11.const_defined?(:C1)
24
+
25
+ # temporary path
26
+ assert mod::P11::C1.to_s.start_with?("#")
27
+
28
+ ContainerSimple.const_set("P1", mod)
29
+ assert_equal "ECoreToRubyTest::ContainerSimple::P1::P11::C1", ContainerSimple::P1::P11::C1.name
30
+ end
31
+
32
+ def test_under
33
+ p1 = create_ecore
34
+
35
+ RGen::ECore::ECoreToRuby.new.create_module(p1, ContainerUnder)
36
+
37
+ assert ContainerUnder.const_defined?(:P1)
38
+ assert ContainerUnder::P1.const_defined?(:P11)
39
+ assert ContainerUnder::P1::P11.const_defined?(:C1)
40
+
41
+ assert_equal "ECoreToRubyTest::ContainerUnder::P1::P11::C1", ContainerUnder::P1::P11::C1.name
42
+ end
43
+
44
+ def test_under_temp_path
45
+ p1 = create_ecore
46
+
47
+ container = Module.new
48
+ RGen::ECore::ECoreToRuby.new.create_module(p1, container)
49
+
50
+ assert container.const_defined?(:P1)
51
+ assert container::P1.const_defined?(:P11)
52
+ assert container::P1::P11.const_defined?(:C1)
53
+
54
+ # temporary path
55
+ assert container::P1::P11::C1.to_s.start_with?("#")
56
+
57
+ self.class.const_set("Container2", container)
58
+ assert_equal "ECoreToRubyTest::Container2::P1::P11::C1", container::P1::P11::C1.to_s
59
+ end
60
+
61
+ def create_ecore
62
+ p1 = RGen::ECore::EPackage.new(:name => "P1")
63
+ p11 = RGen::ECore::EPackage.new(:name => "P11", :eSuperPackage => p1)
64
+ p12 = RGen::ECore::EPackage.new(:name => "P12", :eSuperPackage => p1)
65
+ c1 = RGen::ECore::EClass.new(:name => "C1", :ePackage => p11)
66
+ c2 = RGen::ECore::EClass.new(:name => "C2", :ePackage => p12)
67
+ c3 = RGen::ECore::EClass.new(:name => "C3", :eSuperTypes => [c1, c2], :ePackage => p11)
68
+ p1
69
+ end
70
+
71
+ end
72
+
73
+
@@ -1,10 +1,10 @@
1
1
  $:.unshift File.join(File.dirname(__FILE__),"..","lib")
2
2
 
3
- require 'test/unit'
3
+ require 'minitest/autorun'
4
4
  require 'rgen/environment'
5
5
  require 'rgen/metamodel_builder'
6
6
 
7
- class EnvironmentTest < Test::Unit::TestCase
7
+ class EnvironmentTest < MiniTest::Test
8
8
 
9
9
  class Model
10
10
  attr_accessor :name
data/test/json_test.rb CHANGED
@@ -1,12 +1,12 @@
1
1
  $:.unshift File.join(File.dirname(__FILE__),"..","lib")
2
2
 
3
- require 'test/unit'
3
+ require 'minitest/autorun'
4
4
  require 'rgen/environment'
5
5
  require 'rgen/metamodel_builder'
6
6
  require 'rgen/serializer/json_serializer'
7
7
  require 'rgen/instantiator/json_instantiator'
8
8
 
9
- class JsonTest < Test::Unit::TestCase
9
+ class JsonTest < MiniTest::Test
10
10
 
11
11
  module TestMM
12
12
  extend RGen::MetamodelBuilder::ModuleExtension
@@ -61,7 +61,7 @@ class JsonTest < Test::Unit::TestCase
61
61
  inst.instantiate(%q({ "_class": "TestNode", "text": "some text", "childs": [
62
62
  { "_class": "TestNode", "text": "child" }] }))
63
63
  root = env.find(:class => TestMM::TestNode, :text => "some text").first
64
- assert_not_nil root
64
+ assert root != nil
65
65
  assert_equal 1, root.childs.size
66
66
  assert_equal TestMM::TestNode, root.childs.first.class
67
67
  assert_equal "child", root.childs.first.text
@@ -149,7 +149,7 @@ class JsonTest < Test::Unit::TestCase
149
149
  def test_json_instantiator_subpackage_no_shortname_opt
150
150
  env = RGen::Environment.new
151
151
  inst = RGen::Instantiator::JsonInstantiator.new(env, TestMMSubpackage, :short_class_names => false)
152
- assert_raise RuntimeError do
152
+ assert_raises RuntimeError do
153
153
  inst.instantiate(%q({ "_class": "Data2", "data2": "something" }))
154
154
  end
155
155
  end
@@ -1,11 +1,11 @@
1
1
  $:.unshift File.join(File.dirname(__FILE__),"..","lib")
2
2
 
3
- require 'test/unit'
3
+ require 'minitest/autorun'
4
4
  require 'rgen/metamodel_builder'
5
5
  require 'rgen/array_extensions'
6
6
  require 'bigdecimal'
7
7
 
8
- class MetamodelBuilderTest < Test::Unit::TestCase
8
+ class MetamodelBuilderTest < MiniTest::Test
9
9
 
10
10
  module TestMetamodel
11
11
  extend RGen::MetamodelBuilder::ModuleExtension
@@ -168,6 +168,16 @@ class MetamodelBuilderTest < Test::Unit::TestCase
168
168
  end
169
169
  OppositeRefAssocA.one_to_one 'bClass', OppositeRefAssocB, 'aClass'
170
170
 
171
+ class ReservedNameClass < RGen::MetamodelBuilder::MMBase
172
+ has_attr 'class', String
173
+ has_attr 'method', String
174
+ end
175
+
176
+ class ManyReservedNameClass < RGen::MetamodelBuilder::MMBase
177
+ has_many_attr 'class', String
178
+ has_many_attr 'method', String
179
+ end
180
+
171
181
  end
172
182
 
173
183
  def mm
@@ -182,8 +192,8 @@ class MetamodelBuilderTest < Test::Unit::TestCase
182
192
  sc.name = "TestName"
183
193
  assert_equal "TestName", sc.name
184
194
  sc.name = nil
185
- assert_equal nil, sc.name
186
- err = assert_raise StandardError do
195
+ assert_nil sc.name
196
+ err = assert_raises StandardError do
187
197
  sc.name = 5
188
198
  end
189
199
  assert_match /In (\w+::)+SimpleClass : Can not use a Fixnum where a String is expected/, err.message
@@ -212,12 +222,12 @@ class MetamodelBuilderTest < Test::Unit::TestCase
212
222
  sc.allowed = false
213
223
  assert_equal false, sc.allowed
214
224
  sc.allowed = nil
215
- assert_equal nil, sc.allowed
216
- err = assert_raise StandardError do
225
+ assert_nil sc.allowed
226
+ err = assert_raises StandardError do
217
227
  sc.allowed = :someSymbol
218
228
  end
219
229
  assert_match /In (\w+::)+SimpleClass : Can not use a Symbol\(:someSymbol\) where a \[true,false\] is expected/, err.message
220
- err = assert_raise StandardError do
230
+ err = assert_raises StandardError do
221
231
  sc.allowed = "a string"
222
232
  end
223
233
  assert_match /In (\w+::)+SimpleClass : Can not use a String where a \[true,false\] is expected/, err.message
@@ -230,12 +240,12 @@ class MetamodelBuilderTest < Test::Unit::TestCase
230
240
  sc.kind = :extended
231
241
  assert_equal :extended, sc.kind
232
242
  sc.kind = nil
233
- assert_equal nil, sc.kind
234
- err = assert_raise StandardError do
243
+ assert_nil sc.kind
244
+ err = assert_raises StandardError do
235
245
  sc.kind = :false
236
246
  end
237
247
  assert_match /In (\w+::)+SimpleClass : Can not use a Symbol\(:false\) where a \[:simple,:extended\] is expected/, err.message
238
- err = assert_raise StandardError do
248
+ err = assert_raises StandardError do
239
249
  sc.kind = "a string"
240
250
  end
241
251
  assert_match /In (\w+::)+SimpleClass : Can not use a String where a \[:simple,:extended\] is expected/, err.message
@@ -268,11 +278,11 @@ class MetamodelBuilderTest < Test::Unit::TestCase
268
278
  sc = mm::SimpleClass.new
269
279
  sc.longWithDefault = 5
270
280
  assert_equal 5, sc.longWithDefault
271
- sc.longWithDefault = 1234567890
272
- assert_equal 1234567890, sc.longWithDefault
281
+ sc.longWithDefault = (2**(0.size * 8 -2) -1) + 1
282
+ assert_equal (2**(0.size * 8 -2) -1) + 1, sc.longWithDefault
273
283
  assert sc.longWithDefault.is_a?(Bignum)
274
284
  assert sc.longWithDefault.is_a?(Integer)
275
- err = assert_raise StandardError do
285
+ err = assert_raises StandardError do
276
286
  sc.longWithDefault = "a string"
277
287
  end
278
288
  assert_match /In (\w+::)+SimpleClass : Can not use a String where a Integer is expected/, err.message
@@ -285,7 +295,7 @@ class MetamodelBuilderTest < Test::Unit::TestCase
285
295
  assert_respond_to o, :addLiterals
286
296
  assert_respond_to o, :removeLiterals
287
297
 
288
- err = assert_raise(StandardError) do
298
+ err = assert_raises(StandardError) do
289
299
  o.addLiterals(1)
290
300
  end
291
301
  assert_match /In (\w+::)+ManyAttrClass : Can not use a Fixnum where a String is expected/, err.message
@@ -320,7 +330,7 @@ class MetamodelBuilderTest < Test::Unit::TestCase
320
330
  o.literals = ["a", "b", "c"]
321
331
  assert_equal ["a", "b", "c"], o.literals
322
332
  # can only take enumerables
323
- err = assert_raise(StandardError) do
333
+ err = assert_raises(StandardError) do
324
334
  o.literals = 1
325
335
  end
326
336
  assert_match /In (\w+::)+ManyAttrClass : Can not use a Fixnum where a Enumerable is expected/, err.message
@@ -359,7 +369,7 @@ class MetamodelBuilderTest < Test::Unit::TestCase
359
369
  sc.classA = ca
360
370
  assert_equal ca, sc.classA
361
371
  sc.classA = nil
362
- assert_equal nil, sc.classA
372
+ assert_nil sc.classA
363
373
 
364
374
  assert_respond_to sc, :classB
365
375
  assert_respond_to sc, :classB=
@@ -367,7 +377,7 @@ class MetamodelBuilderTest < Test::Unit::TestCase
367
377
  sc.classB = cb
368
378
  assert_equal cb, sc.classB
369
379
 
370
- err = assert_raise StandardError do
380
+ err = assert_raises StandardError do
371
381
  sc.classB = ca
372
382
  end
373
383
  assert_match /In (\w+::)+HasOneTestClass : Can not use a (\w+::)+ClassA where a (\w+::)+ClassB is expected/, err.message
@@ -394,7 +404,7 @@ class MetamodelBuilderTest < Test::Unit::TestCase
394
404
  assert_equal [ca1, ca2], o.classA
395
405
  o.removeClassA(ca2)
396
406
  assert_equal [ca1], o.classA
397
- err = assert_raise StandardError do
407
+ err = assert_raises StandardError do
398
408
  o.addClassA(mm::ClassB.new)
399
409
  end
400
410
  assert_match /In (\w+::)+HasManyTestClass : Can not use a (\w+::)+ClassB where a (\w+::)+ClassA is expected/, err.message
@@ -434,7 +444,7 @@ class MetamodelBuilderTest < Test::Unit::TestCase
434
444
 
435
445
  # remove the OneClass from the ManyClass
436
446
  mc.oneClass = nil
437
- assert_equal nil, mc.oneClass
447
+ assert_nil mc.oneClass
438
448
  assert !oc.manyClasses.include?(mc)
439
449
 
440
450
  # put the ManyClass into the OneClass
@@ -445,7 +455,7 @@ class MetamodelBuilderTest < Test::Unit::TestCase
445
455
  # remove the ManyClass from the OneClass
446
456
  oc.removeManyClasses mc
447
457
  assert !oc.manyClasses.include?(mc)
448
- assert_equal nil, mc.oneClass
458
+ assert_nil mc.oneClass
449
459
 
450
460
  assert_equal [], mm::OneClass.ecore.eReferences.select{|r| r.many == false}
451
461
  assert_equal ["manyClasses"], mm::OneClass.ecore.eReferences.select{|r| r.many == true}.name
@@ -478,7 +488,7 @@ class MetamodelBuilderTest < Test::Unit::TestCase
478
488
  mc1.oneClass = oc
479
489
  assert_equal [mc1], oc.manyClasses
480
490
  assert_equal oc, mc1.oneClass
481
- assert_equal nil, mc2.oneClass
491
+ assert_nil mc2.oneClass
482
492
 
483
493
  mc2.oneClass = oc
484
494
  assert_equal [mc1, mc2], oc.manyClasses
@@ -515,7 +525,7 @@ class MetamodelBuilderTest < Test::Unit::TestCase
515
525
 
516
526
  # remove the OneClass from the ManyClass
517
527
  mc.oneClass = nil
518
- assert_equal nil, mc.oneClass
528
+ assert_nil mc.oneClass
519
529
  assert !oc.manyClasses.include?(mc)
520
530
 
521
531
  # put the ManyClass into the OneClass
@@ -526,7 +536,7 @@ class MetamodelBuilderTest < Test::Unit::TestCase
526
536
  # remove the ManyClass from the OneClass
527
537
  oc.removeManyClasses mc
528
538
  assert !oc.manyClasses.include?(mc)
529
- assert_equal nil, mc.oneClass
539
+ assert_nil mc.oneClass
530
540
 
531
541
  assert_equal [], mm::OneClass2.ecore.eReferences.select{|r| r.many == false}
532
542
  assert_equal ["manyClasses"], mm::OneClass2.ecore.eReferences.select{|r| r.many == true}.name
@@ -552,8 +562,8 @@ class MetamodelBuilderTest < Test::Unit::TestCase
552
562
 
553
563
  # remove the AClass from the BClass
554
564
  bc.aClass = nil
555
- assert_equal nil, bc.aClass
556
- assert_equal nil, ac.bClass
565
+ assert_nil bc.aClass
566
+ assert_nil ac.bClass
557
567
 
558
568
  # put the BClass into the AClass
559
569
  ac.bClass = bc
@@ -562,8 +572,8 @@ class MetamodelBuilderTest < Test::Unit::TestCase
562
572
 
563
573
  # remove the BClass from the AClass
564
574
  ac.bClass = nil
565
- assert_equal nil, ac.bClass
566
- assert_equal nil, bc.aClass
575
+ assert_nil ac.bClass
576
+ assert_nil bc.aClass
567
577
 
568
578
  assert_equal ["bClass"], mm::AClassOO.ecore.eReferences.select{|r| r.many == false}.name
569
579
  assert_equal [], mm::AClassOO.ecore.eReferences.select{|r| r.many == true}
@@ -579,11 +589,11 @@ class MetamodelBuilderTest < Test::Unit::TestCase
579
589
  a.bClass = b1
580
590
  assert_equal b1, a.bClass
581
591
  assert_equal a, b1.aClass
582
- assert_equal nil, b2.aClass
592
+ assert_nil b2.aClass
583
593
 
584
594
  a.bClass = b2
585
595
  assert_equal b2, a.bClass
586
- assert_equal nil, b1.aClass
596
+ assert_nil b1.aClass
587
597
  assert_equal a, b2.aClass
588
598
  end
589
599
 
@@ -603,7 +613,7 @@ class MetamodelBuilderTest < Test::Unit::TestCase
603
613
  assert ac.bClasses.include?(bc)
604
614
 
605
615
  # put something else into the BClass
606
- err = assert_raise StandardError do
616
+ err = assert_raises StandardError do
607
617
  bc.addAClasses :notaaclass
608
618
  end
609
619
  assert_match /In (\w+::)+BClassMM : Can not use a Symbol\(:notaaclass\) where a (\w+::)+AClassMM is expected/, err.message
@@ -619,7 +629,7 @@ class MetamodelBuilderTest < Test::Unit::TestCase
619
629
  assert bc.aClasses.include?(ac)
620
630
 
621
631
  # put something else into the AClass
622
- err = assert_raise StandardError do
632
+ err = assert_raises StandardError do
623
633
  ac.addBClasses :notabclass
624
634
  end
625
635
  assert_match /In (\w+::)+AClassMM : Can not use a Symbol\(:notabclass\) where a (\w+::)+BClassMM is expected/, err.message
@@ -705,7 +715,8 @@ class MetamodelBuilderTest < Test::Unit::TestCase
705
715
 
706
716
  def checkAnnotation(anno, source, hash)
707
717
  assert anno.is_a?(RGen::ECore::EAnnotation)
708
- assert_equal source, anno.source
718
+ assert_equal source, anno.source unless source.nil?
719
+ assert_nil anno.source if source.nil?
709
720
  assert_equal hash.size, anno.details.size
710
721
  hash.each_pair do |k, v|
711
722
  detail = anno.details.find{|d| d.key == k}
@@ -887,7 +898,7 @@ class MetamodelBuilderTest < Test::Unit::TestCase
887
898
  end
888
899
 
889
900
  def test_abstract
890
- err = assert_raise StandardError do
901
+ err = assert_raises StandardError do
891
902
  mm::AbstractClass.new
892
903
  end
893
904
  assert_match /Class (\w+::)+AbstractClass is abstract/, err.message
@@ -939,35 +950,35 @@ class MetamodelBuilderTest < Test::Unit::TestCase
939
950
  end
940
951
 
941
952
  def test_bad_default_value_literal
942
- err = assert_raise StandardError do
953
+ err = assert_raises StandardError do
943
954
  BadDefaultValueLiteralContainer::Test1.call
944
955
  end
945
956
  assert_equal "Property integerWithDefault can not take value 1.1, expected an Integer", err.message
946
- err = assert_raise StandardError do
957
+ err = assert_raises StandardError do
947
958
  BadDefaultValueLiteralContainer::Test2.call
948
959
  end
949
960
  assert_equal "Property integerWithDefault can not take value x, expected an Integer", err.message
950
- err = assert_raise StandardError do
961
+ err = assert_raises StandardError do
951
962
  BadDefaultValueLiteralContainer::Test3.call
952
963
  end
953
964
  assert_equal "Property boolWithDefault can not take value 1, expected true or false", err.message
954
- err = assert_raise StandardError do
965
+ err = assert_raises StandardError do
955
966
  BadDefaultValueLiteralContainer::Test4.call
956
967
  end
957
968
  assert_equal "Property floatWithDefault can not take value 1, expected a Float", err.message
958
- err = assert_raise StandardError do
969
+ err = assert_raises StandardError do
959
970
  BadDefaultValueLiteralContainer::Test5.call
960
971
  end
961
972
  assert_equal "Property floatWithDefault can not take value true, expected a Float", err.message
962
- err = assert_raise StandardError do
973
+ err = assert_raises StandardError do
963
974
  BadDefaultValueLiteralContainer::Test6.call
964
975
  end
965
976
  assert_equal "Property enumWithDefault can not take value xxx, expected one of :simple, :extended", err.message
966
- err = assert_raise StandardError do
977
+ err = assert_raises StandardError do
967
978
  BadDefaultValueLiteralContainer::Test7.call
968
979
  end
969
980
  assert_equal "Property enumWithDefault can not take value 7, expected one of :simple, :extended", err.message
970
- err = assert_raise StandardError do
981
+ err = assert_raises StandardError do
971
982
  BadDefaultValueLiteralContainer::Test8.call
972
983
  end
973
984
  assert_equal "Property longWithDefault can not take value 1.1, expected an Integer", err.message
@@ -1322,9 +1333,7 @@ class MetamodelBuilderTest < Test::Unit::TestCase
1322
1333
 
1323
1334
  def test_container_generic
1324
1335
  a = mm::ContainerClass.new
1325
- assert_nothing_raised do
1326
- a.oneChild = RGen::MetamodelBuilder::MMGeneric.new
1327
- end
1336
+ a.oneChild = RGen::MetamodelBuilder::MMGeneric.new
1328
1337
  end
1329
1338
 
1330
1339
  def test_opposite_assoc_on_first_write
@@ -1479,4 +1488,30 @@ class MetamodelBuilderTest < Test::Unit::TestCase
1479
1488
  assert_equal [], a1.manyChildUni
1480
1489
  end
1481
1490
 
1491
+ def test_reserved_names
1492
+ e = mm::ReservedNameClass.new
1493
+ %w(class method).each do |reserved|
1494
+ e.setGeneric(reserved, "X")
1495
+ assert_equal "X", e.getGeneric(reserved.to_sym)
1496
+ assert_equal "X", e.getGeneric(reserved)
1497
+ assert_equal ["X"], e.getGenericAsArray(reserved.to_sym)
1498
+ assert_equal ["X"], e.getGenericAsArray(reserved)
1499
+ end
1500
+ assert_equal "X", e.getClass
1501
+ assert_equal "X", e.getMethod
1502
+ end
1503
+
1504
+ def test_reserved_names_many
1505
+ e = mm::ManyReservedNameClass.new
1506
+ %w(class method).each do |reserved|
1507
+ e.addGeneric(reserved, "X")
1508
+ e.addGeneric(reserved, "Y")
1509
+ assert_equal ["X", "Y"], e.getGeneric(reserved.to_sym)
1510
+ assert_equal ["X", "Y"], e.getGeneric(reserved)
1511
+ assert_equal ["X", "Y"], e.getGenericAsArray(reserved.to_sym)
1512
+ assert_equal ["X", "Y"], e.getGenericAsArray(reserved)
1513
+ end
1514
+ assert_equal ["X", "Y"], e.getClass
1515
+ assert_equal ["X", "Y"], e.getMethod
1516
+ end
1482
1517
  end
@@ -37,7 +37,7 @@ class MetamodelFromEcoreTest < MetamodelBuilderTest
37
37
  mod = RGen::ECore::ECoreToRuby.new.create_module(package)
38
38
  obj = mod::Class1.new
39
39
  # the error is raised only when the feature is lazily constructed
40
- assert_raise StandardError do
40
+ assert_raises StandardError do
41
41
  obj.value
42
42
  end
43
43
  end
@@ -1,10 +1,10 @@
1
1
  $:.unshift File.join(File.dirname(__FILE__),"..","lib")
2
2
 
3
- require 'test/unit'
3
+ require 'minitest/autorun'
4
4
  require 'rgen/ecore/ecore'
5
5
  require 'rgen/array_extensions'
6
6
 
7
- class MetamodelOrderTest < Test::Unit::TestCase
7
+ class MetamodelOrderTest < MiniTest::Test
8
8
  include RGen::ECore
9
9
 
10
10
  module TestMM1
@@ -1,13 +1,13 @@
1
1
  $:.unshift File.join(File.dirname(__FILE__),"..","lib")
2
2
 
3
- require 'test/unit'
3
+ require 'minitest/autorun'
4
4
  require 'rgen/array_extensions'
5
5
  require 'rgen/util/model_comparator'
6
6
  require 'mmgen/metamodel_generator'
7
7
  require 'rgen/instantiator/ecore_xml_instantiator'
8
8
  require 'rgen/serializer/xmi20_serializer'
9
9
 
10
- class MetamodelRoundtripTest < Test::Unit::TestCase
10
+ class MetamodelRoundtripTest < MiniTest::Test
11
11
 
12
12
  TEST_DIR = File.dirname(__FILE__)+"/metamodel_roundtrip_test"
13
13
 
@@ -1,9 +1,9 @@
1
1
  $:.unshift File.dirname(__FILE__) + "/../lib"
2
2
 
3
- require 'test/unit'
3
+ require 'minitest/autorun'
4
4
  require 'rgen/util/method_delegation'
5
5
 
6
- class MethodDelegationTest < Test::Unit::TestCase
6
+ class MethodDelegationTest < MiniTest::Test
7
7
  include RGen
8
8
 
9
9
  class TestDelegate
@@ -88,7 +88,7 @@ class MethodDelegationTest < Test::Unit::TestCase
88
88
  assert_equal "AnotherConst::A::B::C", AnotherConst::A::B::C.to_s
89
89
 
90
90
  Util::MethodDelegation.unregisterDelegate(ConstPathElement, surroundingModule, "const_missing")
91
- assert_raise NameError do
91
+ assert_raises NameError do
92
92
  SomeArbitraryConst
93
93
  end
94
94
  end
@@ -123,7 +123,7 @@ class MethodDelegationTest < Test::Unit::TestCase
123
123
 
124
124
  delegate1.mode = :nothing
125
125
  # delegate1 just exits and thus returns nil
126
- assert_equal nil, delegator.send(method)
126
+ assert_nil delegator.send(method)
127
127
  assert_equal 2, delegate1.callcount
128
128
  # delegate2 is not called
129
129
  assert_equal 0, delegate2.callcount
@@ -167,7 +167,7 @@ class MethodDelegationTest < Test::Unit::TestCase
167
167
 
168
168
  def checkCallOriginal(delegator, method, originalResult, newMethod)
169
169
  if newMethod
170
- assert_raise NoMethodError do
170
+ assert_raises NoMethodError do
171
171
  result = delegator.send(method)
172
172
  end
173
173
  else
@@ -1,10 +1,10 @@
1
1
  $:.unshift File.dirname(__FILE__)+"/../lib"
2
2
 
3
- require 'test/unit'
3
+ require 'minitest/autorun'
4
4
  require 'rgen/ecore/ecore'
5
5
  require 'rgen/model_builder/builder_context'
6
6
 
7
- class BuilderContextTest < Test::Unit::TestCase
7
+ class BuilderContextTest < MiniTest::Test
8
8
 
9
9
  module BuilderExtension1
10
10
  module PackageA
@@ -50,7 +50,7 @@ class BuilderContextTest < Test::Unit::TestCase
50
50
  assert_equal 5, packBExt.inPackBExt
51
51
  assert_equal 7, packBExt.inBuilderContext
52
52
 
53
- assert_raise RuntimeError do
53
+ assert_raises RuntimeError do
54
54
  # aboveRoot is not contained within root
55
55
  assert_nil factory.moduleForPackage(aboveRoot)
56
56
  end
@@ -1,13 +1,13 @@
1
1
  $:.unshift File.dirname(__FILE__) + "/../lib"
2
2
 
3
- require 'test/unit'
3
+ require 'minitest/autorun'
4
4
  require 'rgen/ecore/ecore'
5
5
  require 'rgen/ecore/ecore_builder_methods'
6
6
  require 'rgen/environment'
7
7
  require 'rgen/model_builder'
8
8
  require 'model_builder/statemachine_metamodel'
9
9
 
10
- class ModelBuilderTest < Test::Unit::TestCase
10
+ class ModelBuilderTest < MiniTest::Test
11
11
 
12
12
  def test_statemachine
13
13
  result = RGen::ModelBuilder.build(StatemachineMetamodel) do
@@ -193,47 +193,47 @@ class ModelBuilderTest < Test::Unit::TestCase
193
193
 
194
194
  # TestClass1
195
195
  class1 = p1.eClassifiers.find{|c| c.name == "TestClass1"}
196
- assert_not_nil class1
196
+ assert class1 != nil
197
197
  assert class1.is_a?(RGen::ECore::EClass)
198
198
 
199
199
  # TestClass1.attr1
200
200
  attr1 = class1.eAllAttributes.find{|a| a.name == "attr1"}
201
- assert_not_nil attr1
201
+ assert attr1 != nil
202
202
  assert_equal RGen::ECore::EString, attr1.eType
203
203
 
204
204
  # TestClass1.attr2
205
205
  attr2 = class1.eAllAttributes.find{|a| a.name == "attr2"}
206
- assert_not_nil attr2
206
+ assert attr2 != nil
207
207
  assert_equal RGen::ECore::EInt, attr2.eType
208
208
 
209
209
  # TestClass2
210
210
  class2 = p1.eClassifiers.find{|c| c.name == "TestClass2"}
211
- assert_not_nil class2
211
+ assert class2 != nil
212
212
  assert class2.is_a?(RGen::ECore::EClass)
213
213
 
214
214
  # TestClass2.ref1
215
215
  ref1 = class2.eAllReferences.find{|a| a.name == "ref1"}
216
- assert_not_nil ref1
216
+ assert ref1 != nil
217
217
  assert_equal class1, ref1.eType
218
218
 
219
219
  # TestClass1.biRef1
220
220
  biRef1 = class1.eAllReferences.find{|r| r.name == "biRef1"}
221
- assert_not_nil biRef1
221
+ assert biRef1 != nil
222
222
  assert_equal class2, biRef1.eType
223
223
  biRef1Opp = class2.eAllReferences.find {|r| r.name == "testClass1"}
224
- assert_not_nil biRef1Opp
224
+ assert biRef1Opp != nil
225
225
  assert_equal class1, biRef1Opp.eType
226
226
  assert_equal biRef1Opp, biRef1.eOpposite
227
227
  assert_equal biRef1, biRef1Opp.eOpposite
228
228
 
229
229
  # TestClass1.testClass2
230
230
  tc2Ref = class1.eAllReferences.find{|r| r.name == "testClass2"}
231
- assert_not_nil tc2Ref
231
+ assert tc2Ref != nil
232
232
  assert_equal class2, tc2Ref.eType
233
233
  assert tc2Ref.containment
234
234
  assert_equal -1, tc2Ref.upperBound
235
235
  tc2RefOpp = class2.eAllReferences.find{|r| r.name == "tc1Parent"}
236
- assert_not_nil tc2RefOpp
236
+ assert tc2RefOpp != nil
237
237
  assert_equal class1, tc2RefOpp.eType
238
238
  assert !tc2RefOpp.containment
239
239
  assert_equal 1, tc2RefOpp.upperBound
@@ -1,10 +1,10 @@
1
1
  $:.unshift File.dirname(__FILE__)+"/../lib"
2
2
 
3
- require 'test/unit'
3
+ require 'minitest/autorun'
4
4
  require 'rgen/metamodel_builder'
5
5
  require 'rgen/model_builder/reference_resolver'
6
6
 
7
- class ReferenceResolverTest < Test::Unit::TestCase
7
+ class ReferenceResolverTest < MiniTest::Test
8
8
 
9
9
  class ClassA < RGen::MetamodelBuilder::MMBase
10
10
  has_attr "name"
@@ -122,7 +122,7 @@ class ReferenceResolverTest < Test::Unit::TestCase
122
122
  :reference => ClassC.ecore.eReferences.find{|r| r.name == "refCs"},
123
123
  :namespace => b1,
124
124
  :string => "b1.c5"))
125
- assert_raise RGen::ModelBuilder::ReferenceResolver::ResolverException do
125
+ assert_raises RGen::ModelBuilder::ReferenceResolver::ResolverException do
126
126
  resolver.resolve(toplevelNamespace)
127
127
  end
128
128
  end
@@ -1,6 +1,6 @@
1
1
  $:.unshift File.dirname(__FILE__) + "/../lib"
2
2
 
3
- require 'test/unit'
3
+ require 'minitest/autorun'
4
4
  require 'rgen/ecore/ecore'
5
5
 
6
6
  # The following would also influence other tests...
@@ -28,7 +28,7 @@ require 'rgen/instantiator/ecore_xml_instantiator'
28
28
  require 'rgen/model_builder'
29
29
  require 'model_builder/statemachine_metamodel'
30
30
 
31
- class ModelSerializerTest < Test::Unit::TestCase
31
+ class ModelSerializerTest < MiniTest::Test
32
32
  def test_ecore_internal
33
33
  File.open(File.dirname(__FILE__)+"/ecore_internal.rb","w") do |f|
34
34
  serializer = RGen::ModelBuilder::ModelSerializer.new(f, RGen::ECore.ecore)