rgen 0.7.0 → 0.8.3
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.
- checksums.yaml +4 -4
- data/CHANGELOG +23 -0
- data/README.rdoc +1 -1
- data/Rakefile +15 -25
- data/lib/rgen/ecore/ecore.rb +1 -1
- data/lib/rgen/ecore/ecore_ext.rb +9 -1
- data/lib/rgen/ecore/ecore_to_ruby.rb +133 -47
- data/lib/rgen/fragment/fragmented_model.rb +2 -0
- data/lib/rgen/fragment/model_fragment.rb +3 -0
- data/lib/rgen/instantiator/default_xml_instantiator.rb +93 -88
- data/lib/rgen/metamodel_builder/builder_extensions.rb +32 -8
- data/lib/rgen/metamodel_builder/builder_runtime.rb +12 -5
- data/lib/rgen/template_language/output_handler.rb +52 -19
- data/lib/rgen/template_language/template_container.rb +17 -7
- data/lib/rgen/template_language.rb +2 -1
- data/test/array_extensions_test.rb +7 -7
- data/test/ea_instantiator_test.rb +2 -2
- data/test/ea_serializer_test.rb +2 -2
- data/test/ecore_self_test.rb +2 -2
- data/test/ecore_to_ruby_test.rb +73 -0
- data/test/environment_test.rb +2 -2
- data/test/json_test.rb +4 -4
- data/test/metamodel_builder_test.rb +71 -44
- data/test/metamodel_from_ecore_test.rb +1 -1
- data/test/metamodel_order_test.rb +2 -2
- data/test/metamodel_roundtrip_test.rb +2 -2
- data/test/method_delegation_test.rb +5 -5
- data/test/model_builder/builder_context_test.rb +3 -3
- data/test/model_builder/builder_test.rb +11 -11
- data/test/model_builder/reference_resolver_test.rb +3 -3
- data/test/model_builder/serializer_test.rb +2 -2
- data/test/model_fragment_test.rb +2 -2
- data/test/output_handler_test.rb +2 -2
- data/test/qualified_name_provider_test.rb +2 -2
- data/test/qualified_name_resolver_test.rb +4 -4
- data/test/reference_resolver_test.rb +4 -4
- data/test/rgen_test.rb +2 -1
- data/test/template_language_test/templates/indent_nonl_at_eof_test/test.tpl +14 -0
- data/test/template_language_test/templates/indent_same_line_sub/test.tpl +16 -0
- data/test/template_language_test/templates/line_endings/mixed.tpl +6 -0
- data/test/template_language_test/templates/line_endings/unix.tpl +6 -0
- data/test/template_language_test/templates/line_endings/windows.tpl +6 -0
- data/test/template_language_test/templates/ws_test.tpl +21 -0
- data/test/template_language_test.rb +60 -9
- data/test/testmodel/class_model_checker.rb +17 -17
- data/test/testmodel/ecore_model_checker.rb +13 -13
- data/test/testmodel/object_model_checker.rb +6 -6
- data/test/transformer_test.rb +3 -3
- data/test/util/file_cache_map_test.rb +2 -2
- data/test/util/pattern_matcher_test.rb +7 -7
- data/test/xml_instantiator_test/simple_ecore_model_checker.rb +12 -12
- data/test/xml_instantiator_test.rb +8 -8
- metadata +61 -20
- data/test/metamodel_roundtrip_test/TestModel_Regenerated.rb +0 -71
- data/test/metamodel_roundtrip_test/houseMetamodel_Regenerated.ecore +0 -162
- data/test/metamodel_roundtrip_test/using_builtin_types_serialized.ecore +0 -9
- data/test/model_builder/ecore_internal.rb +0 -113
- data/test/testmodel/ea_testmodel_regenerated.xml +0 -813
- data/test/util/file_cache_map_test/testdir/fileA +0 -1
@@ -1,11 +1,11 @@
|
|
1
1
|
$:.unshift File.join(File.dirname(__FILE__),"..","lib")
|
2
2
|
|
3
|
-
require '
|
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
|
8
|
+
class MetamodelBuilderTest < MiniTest::Test
|
9
9
|
|
10
10
|
module TestMetamodel
|
11
11
|
extend RGen::MetamodelBuilder::ModuleExtension
|
@@ -168,6 +168,14 @@ 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
|
+
end
|
174
|
+
|
175
|
+
class ManyReservedNameClass < RGen::MetamodelBuilder::MMBase
|
176
|
+
has_many_attr 'class', String
|
177
|
+
end
|
178
|
+
|
171
179
|
end
|
172
180
|
|
173
181
|
def mm
|
@@ -182,8 +190,8 @@ class MetamodelBuilderTest < Test::Unit::TestCase
|
|
182
190
|
sc.name = "TestName"
|
183
191
|
assert_equal "TestName", sc.name
|
184
192
|
sc.name = nil
|
185
|
-
|
186
|
-
err =
|
193
|
+
assert_nil sc.name
|
194
|
+
err = assert_raises StandardError do
|
187
195
|
sc.name = 5
|
188
196
|
end
|
189
197
|
assert_match /In (\w+::)+SimpleClass : Can not use a Fixnum where a String is expected/, err.message
|
@@ -212,12 +220,12 @@ class MetamodelBuilderTest < Test::Unit::TestCase
|
|
212
220
|
sc.allowed = false
|
213
221
|
assert_equal false, sc.allowed
|
214
222
|
sc.allowed = nil
|
215
|
-
|
216
|
-
err =
|
223
|
+
assert_nil sc.allowed
|
224
|
+
err = assert_raises StandardError do
|
217
225
|
sc.allowed = :someSymbol
|
218
226
|
end
|
219
227
|
assert_match /In (\w+::)+SimpleClass : Can not use a Symbol\(:someSymbol\) where a \[true,false\] is expected/, err.message
|
220
|
-
err =
|
228
|
+
err = assert_raises StandardError do
|
221
229
|
sc.allowed = "a string"
|
222
230
|
end
|
223
231
|
assert_match /In (\w+::)+SimpleClass : Can not use a String where a \[true,false\] is expected/, err.message
|
@@ -230,12 +238,12 @@ class MetamodelBuilderTest < Test::Unit::TestCase
|
|
230
238
|
sc.kind = :extended
|
231
239
|
assert_equal :extended, sc.kind
|
232
240
|
sc.kind = nil
|
233
|
-
|
234
|
-
err =
|
241
|
+
assert_nil sc.kind
|
242
|
+
err = assert_raises StandardError do
|
235
243
|
sc.kind = :false
|
236
244
|
end
|
237
245
|
assert_match /In (\w+::)+SimpleClass : Can not use a Symbol\(:false\) where a \[:simple,:extended\] is expected/, err.message
|
238
|
-
err =
|
246
|
+
err = assert_raises StandardError do
|
239
247
|
sc.kind = "a string"
|
240
248
|
end
|
241
249
|
assert_match /In (\w+::)+SimpleClass : Can not use a String where a \[:simple,:extended\] is expected/, err.message
|
@@ -268,11 +276,11 @@ class MetamodelBuilderTest < Test::Unit::TestCase
|
|
268
276
|
sc = mm::SimpleClass.new
|
269
277
|
sc.longWithDefault = 5
|
270
278
|
assert_equal 5, sc.longWithDefault
|
271
|
-
sc.longWithDefault =
|
272
|
-
assert_equal
|
279
|
+
sc.longWithDefault = (2**(0.size * 8 -2) -1) + 1
|
280
|
+
assert_equal (2**(0.size * 8 -2) -1) + 1, sc.longWithDefault
|
273
281
|
assert sc.longWithDefault.is_a?(Bignum)
|
274
282
|
assert sc.longWithDefault.is_a?(Integer)
|
275
|
-
err =
|
283
|
+
err = assert_raises StandardError do
|
276
284
|
sc.longWithDefault = "a string"
|
277
285
|
end
|
278
286
|
assert_match /In (\w+::)+SimpleClass : Can not use a String where a Integer is expected/, err.message
|
@@ -285,7 +293,7 @@ class MetamodelBuilderTest < Test::Unit::TestCase
|
|
285
293
|
assert_respond_to o, :addLiterals
|
286
294
|
assert_respond_to o, :removeLiterals
|
287
295
|
|
288
|
-
err =
|
296
|
+
err = assert_raises(StandardError) do
|
289
297
|
o.addLiterals(1)
|
290
298
|
end
|
291
299
|
assert_match /In (\w+::)+ManyAttrClass : Can not use a Fixnum where a String is expected/, err.message
|
@@ -320,7 +328,7 @@ class MetamodelBuilderTest < Test::Unit::TestCase
|
|
320
328
|
o.literals = ["a", "b", "c"]
|
321
329
|
assert_equal ["a", "b", "c"], o.literals
|
322
330
|
# can only take enumerables
|
323
|
-
err =
|
331
|
+
err = assert_raises(StandardError) do
|
324
332
|
o.literals = 1
|
325
333
|
end
|
326
334
|
assert_match /In (\w+::)+ManyAttrClass : Can not use a Fixnum where a Enumerable is expected/, err.message
|
@@ -359,7 +367,7 @@ class MetamodelBuilderTest < Test::Unit::TestCase
|
|
359
367
|
sc.classA = ca
|
360
368
|
assert_equal ca, sc.classA
|
361
369
|
sc.classA = nil
|
362
|
-
|
370
|
+
assert_nil sc.classA
|
363
371
|
|
364
372
|
assert_respond_to sc, :classB
|
365
373
|
assert_respond_to sc, :classB=
|
@@ -367,7 +375,7 @@ class MetamodelBuilderTest < Test::Unit::TestCase
|
|
367
375
|
sc.classB = cb
|
368
376
|
assert_equal cb, sc.classB
|
369
377
|
|
370
|
-
err =
|
378
|
+
err = assert_raises StandardError do
|
371
379
|
sc.classB = ca
|
372
380
|
end
|
373
381
|
assert_match /In (\w+::)+HasOneTestClass : Can not use a (\w+::)+ClassA where a (\w+::)+ClassB is expected/, err.message
|
@@ -394,7 +402,7 @@ class MetamodelBuilderTest < Test::Unit::TestCase
|
|
394
402
|
assert_equal [ca1, ca2], o.classA
|
395
403
|
o.removeClassA(ca2)
|
396
404
|
assert_equal [ca1], o.classA
|
397
|
-
err =
|
405
|
+
err = assert_raises StandardError do
|
398
406
|
o.addClassA(mm::ClassB.new)
|
399
407
|
end
|
400
408
|
assert_match /In (\w+::)+HasManyTestClass : Can not use a (\w+::)+ClassB where a (\w+::)+ClassA is expected/, err.message
|
@@ -434,7 +442,7 @@ class MetamodelBuilderTest < Test::Unit::TestCase
|
|
434
442
|
|
435
443
|
# remove the OneClass from the ManyClass
|
436
444
|
mc.oneClass = nil
|
437
|
-
|
445
|
+
assert_nil mc.oneClass
|
438
446
|
assert !oc.manyClasses.include?(mc)
|
439
447
|
|
440
448
|
# put the ManyClass into the OneClass
|
@@ -445,7 +453,7 @@ class MetamodelBuilderTest < Test::Unit::TestCase
|
|
445
453
|
# remove the ManyClass from the OneClass
|
446
454
|
oc.removeManyClasses mc
|
447
455
|
assert !oc.manyClasses.include?(mc)
|
448
|
-
|
456
|
+
assert_nil mc.oneClass
|
449
457
|
|
450
458
|
assert_equal [], mm::OneClass.ecore.eReferences.select{|r| r.many == false}
|
451
459
|
assert_equal ["manyClasses"], mm::OneClass.ecore.eReferences.select{|r| r.many == true}.name
|
@@ -478,7 +486,7 @@ class MetamodelBuilderTest < Test::Unit::TestCase
|
|
478
486
|
mc1.oneClass = oc
|
479
487
|
assert_equal [mc1], oc.manyClasses
|
480
488
|
assert_equal oc, mc1.oneClass
|
481
|
-
|
489
|
+
assert_nil mc2.oneClass
|
482
490
|
|
483
491
|
mc2.oneClass = oc
|
484
492
|
assert_equal [mc1, mc2], oc.manyClasses
|
@@ -515,7 +523,7 @@ class MetamodelBuilderTest < Test::Unit::TestCase
|
|
515
523
|
|
516
524
|
# remove the OneClass from the ManyClass
|
517
525
|
mc.oneClass = nil
|
518
|
-
|
526
|
+
assert_nil mc.oneClass
|
519
527
|
assert !oc.manyClasses.include?(mc)
|
520
528
|
|
521
529
|
# put the ManyClass into the OneClass
|
@@ -526,7 +534,7 @@ class MetamodelBuilderTest < Test::Unit::TestCase
|
|
526
534
|
# remove the ManyClass from the OneClass
|
527
535
|
oc.removeManyClasses mc
|
528
536
|
assert !oc.manyClasses.include?(mc)
|
529
|
-
|
537
|
+
assert_nil mc.oneClass
|
530
538
|
|
531
539
|
assert_equal [], mm::OneClass2.ecore.eReferences.select{|r| r.many == false}
|
532
540
|
assert_equal ["manyClasses"], mm::OneClass2.ecore.eReferences.select{|r| r.many == true}.name
|
@@ -552,8 +560,8 @@ class MetamodelBuilderTest < Test::Unit::TestCase
|
|
552
560
|
|
553
561
|
# remove the AClass from the BClass
|
554
562
|
bc.aClass = nil
|
555
|
-
|
556
|
-
|
563
|
+
assert_nil bc.aClass
|
564
|
+
assert_nil ac.bClass
|
557
565
|
|
558
566
|
# put the BClass into the AClass
|
559
567
|
ac.bClass = bc
|
@@ -562,8 +570,8 @@ class MetamodelBuilderTest < Test::Unit::TestCase
|
|
562
570
|
|
563
571
|
# remove the BClass from the AClass
|
564
572
|
ac.bClass = nil
|
565
|
-
|
566
|
-
|
573
|
+
assert_nil ac.bClass
|
574
|
+
assert_nil bc.aClass
|
567
575
|
|
568
576
|
assert_equal ["bClass"], mm::AClassOO.ecore.eReferences.select{|r| r.many == false}.name
|
569
577
|
assert_equal [], mm::AClassOO.ecore.eReferences.select{|r| r.many == true}
|
@@ -579,11 +587,11 @@ class MetamodelBuilderTest < Test::Unit::TestCase
|
|
579
587
|
a.bClass = b1
|
580
588
|
assert_equal b1, a.bClass
|
581
589
|
assert_equal a, b1.aClass
|
582
|
-
|
590
|
+
assert_nil b2.aClass
|
583
591
|
|
584
592
|
a.bClass = b2
|
585
593
|
assert_equal b2, a.bClass
|
586
|
-
|
594
|
+
assert_nil b1.aClass
|
587
595
|
assert_equal a, b2.aClass
|
588
596
|
end
|
589
597
|
|
@@ -603,7 +611,7 @@ class MetamodelBuilderTest < Test::Unit::TestCase
|
|
603
611
|
assert ac.bClasses.include?(bc)
|
604
612
|
|
605
613
|
# put something else into the BClass
|
606
|
-
err =
|
614
|
+
err = assert_raises StandardError do
|
607
615
|
bc.addAClasses :notaaclass
|
608
616
|
end
|
609
617
|
assert_match /In (\w+::)+BClassMM : Can not use a Symbol\(:notaaclass\) where a (\w+::)+AClassMM is expected/, err.message
|
@@ -619,7 +627,7 @@ class MetamodelBuilderTest < Test::Unit::TestCase
|
|
619
627
|
assert bc.aClasses.include?(ac)
|
620
628
|
|
621
629
|
# put something else into the AClass
|
622
|
-
err =
|
630
|
+
err = assert_raises StandardError do
|
623
631
|
ac.addBClasses :notabclass
|
624
632
|
end
|
625
633
|
assert_match /In (\w+::)+AClassMM : Can not use a Symbol\(:notabclass\) where a (\w+::)+BClassMM is expected/, err.message
|
@@ -705,7 +713,8 @@ class MetamodelBuilderTest < Test::Unit::TestCase
|
|
705
713
|
|
706
714
|
def checkAnnotation(anno, source, hash)
|
707
715
|
assert anno.is_a?(RGen::ECore::EAnnotation)
|
708
|
-
assert_equal source, anno.source
|
716
|
+
assert_equal source, anno.source unless source.nil?
|
717
|
+
assert_nil anno.source if source.nil?
|
709
718
|
assert_equal hash.size, anno.details.size
|
710
719
|
hash.each_pair do |k, v|
|
711
720
|
detail = anno.details.find{|d| d.key == k}
|
@@ -887,7 +896,7 @@ class MetamodelBuilderTest < Test::Unit::TestCase
|
|
887
896
|
end
|
888
897
|
|
889
898
|
def test_abstract
|
890
|
-
err =
|
899
|
+
err = assert_raises StandardError do
|
891
900
|
mm::AbstractClass.new
|
892
901
|
end
|
893
902
|
assert_match /Class (\w+::)+AbstractClass is abstract/, err.message
|
@@ -939,35 +948,35 @@ class MetamodelBuilderTest < Test::Unit::TestCase
|
|
939
948
|
end
|
940
949
|
|
941
950
|
def test_bad_default_value_literal
|
942
|
-
err =
|
951
|
+
err = assert_raises StandardError do
|
943
952
|
BadDefaultValueLiteralContainer::Test1.call
|
944
953
|
end
|
945
954
|
assert_equal "Property integerWithDefault can not take value 1.1, expected an Integer", err.message
|
946
|
-
err =
|
955
|
+
err = assert_raises StandardError do
|
947
956
|
BadDefaultValueLiteralContainer::Test2.call
|
948
957
|
end
|
949
958
|
assert_equal "Property integerWithDefault can not take value x, expected an Integer", err.message
|
950
|
-
err =
|
959
|
+
err = assert_raises StandardError do
|
951
960
|
BadDefaultValueLiteralContainer::Test3.call
|
952
961
|
end
|
953
962
|
assert_equal "Property boolWithDefault can not take value 1, expected true or false", err.message
|
954
|
-
err =
|
963
|
+
err = assert_raises StandardError do
|
955
964
|
BadDefaultValueLiteralContainer::Test4.call
|
956
965
|
end
|
957
966
|
assert_equal "Property floatWithDefault can not take value 1, expected a Float", err.message
|
958
|
-
err =
|
967
|
+
err = assert_raises StandardError do
|
959
968
|
BadDefaultValueLiteralContainer::Test5.call
|
960
969
|
end
|
961
970
|
assert_equal "Property floatWithDefault can not take value true, expected a Float", err.message
|
962
|
-
err =
|
971
|
+
err = assert_raises StandardError do
|
963
972
|
BadDefaultValueLiteralContainer::Test6.call
|
964
973
|
end
|
965
974
|
assert_equal "Property enumWithDefault can not take value xxx, expected one of :simple, :extended", err.message
|
966
|
-
err =
|
975
|
+
err = assert_raises StandardError do
|
967
976
|
BadDefaultValueLiteralContainer::Test7.call
|
968
977
|
end
|
969
978
|
assert_equal "Property enumWithDefault can not take value 7, expected one of :simple, :extended", err.message
|
970
|
-
err =
|
979
|
+
err = assert_raises StandardError do
|
971
980
|
BadDefaultValueLiteralContainer::Test8.call
|
972
981
|
end
|
973
982
|
assert_equal "Property longWithDefault can not take value 1.1, expected an Integer", err.message
|
@@ -1322,9 +1331,7 @@ class MetamodelBuilderTest < Test::Unit::TestCase
|
|
1322
1331
|
|
1323
1332
|
def test_container_generic
|
1324
1333
|
a = mm::ContainerClass.new
|
1325
|
-
|
1326
|
-
a.oneChild = RGen::MetamodelBuilder::MMGeneric.new
|
1327
|
-
end
|
1334
|
+
a.oneChild = RGen::MetamodelBuilder::MMGeneric.new
|
1328
1335
|
end
|
1329
1336
|
|
1330
1337
|
def test_opposite_assoc_on_first_write
|
@@ -1479,4 +1486,24 @@ class MetamodelBuilderTest < Test::Unit::TestCase
|
|
1479
1486
|
assert_equal [], a1.manyChildUni
|
1480
1487
|
end
|
1481
1488
|
|
1489
|
+
def test_reserved_names
|
1490
|
+
e = mm::ReservedNameClass.new
|
1491
|
+
e.setGeneric("class", "X")
|
1492
|
+
assert_equal "X", e.getGeneric(:class)
|
1493
|
+
assert_equal "X", e.getGeneric("class")
|
1494
|
+
assert_equal ["X"], e.getGenericAsArray(:class)
|
1495
|
+
assert_equal ["X"], e.getGenericAsArray("class")
|
1496
|
+
assert_equal "X", e.getClass
|
1497
|
+
end
|
1498
|
+
|
1499
|
+
def test_reserved_names_many
|
1500
|
+
e = mm::ManyReservedNameClass.new
|
1501
|
+
e.addGeneric("class", "X")
|
1502
|
+
e.addGeneric("class", "Y")
|
1503
|
+
assert_equal ["X", "Y"], e.getGeneric(:class)
|
1504
|
+
assert_equal ["X", "Y"], e.getGeneric("class")
|
1505
|
+
assert_equal ["X", "Y"], e.getGenericAsArray(:class)
|
1506
|
+
assert_equal ["X", "Y"], e.getGenericAsArray("class")
|
1507
|
+
assert_equal ["X", "Y"], e.getClass
|
1508
|
+
end
|
1482
1509
|
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
|
-
|
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 '
|
3
|
+
require 'minitest/autorun'
|
4
4
|
require 'rgen/ecore/ecore'
|
5
5
|
require 'rgen/array_extensions'
|
6
6
|
|
7
|
-
class MetamodelOrderTest < Test
|
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 '
|
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
|
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 '
|
3
|
+
require 'minitest/autorun'
|
4
4
|
require 'rgen/util/method_delegation'
|
5
5
|
|
6
|
-
class MethodDelegationTest < Test
|
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
|
-
|
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
|
-
|
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
|
-
|
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 '
|
3
|
+
require 'minitest/autorun'
|
4
4
|
require 'rgen/ecore/ecore'
|
5
5
|
require 'rgen/model_builder/builder_context'
|
6
6
|
|
7
|
-
class BuilderContextTest < Test
|
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
|
-
|
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 '
|
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
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
221
|
+
assert biRef1 != nil
|
222
222
|
assert_equal class2, biRef1.eType
|
223
223
|
biRef1Opp = class2.eAllReferences.find {|r| r.name == "testClass1"}
|
224
|
-
|
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
|
-
|
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
|
-
|
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 '
|
3
|
+
require 'minitest/autorun'
|
4
4
|
require 'rgen/metamodel_builder'
|
5
5
|
require 'rgen/model_builder/reference_resolver'
|
6
6
|
|
7
|
-
class ReferenceResolverTest < Test
|
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
|
-
|
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 '
|
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
|
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)
|
data/test/model_fragment_test.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
$:.unshift File.join(File.dirname(__FILE__),"..","lib")
|
2
2
|
|
3
|
-
require '
|
3
|
+
require 'minitest/autorun'
|
4
4
|
require 'rgen/metamodel_builder'
|
5
5
|
require 'rgen/fragment/model_fragment'
|
6
6
|
|
7
|
-
class ModelFragmentTest < Test
|
7
|
+
class ModelFragmentTest < MiniTest::Test
|
8
8
|
|
9
9
|
module TestMetamodel
|
10
10
|
extend RGen::MetamodelBuilder::ModuleExtension
|
data/test/output_handler_test.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
$:.unshift File.join(File.dirname(__FILE__),"..","lib")
|
2
2
|
|
3
|
-
require '
|
3
|
+
require 'minitest/autorun'
|
4
4
|
require 'rgen/template_language/output_handler'
|
5
5
|
|
6
|
-
class MetamodelBuilderTest < Test
|
6
|
+
class MetamodelBuilderTest < MiniTest::Test
|
7
7
|
def test_direct_nl
|
8
8
|
h = RGen::TemplateLanguage::OutputHandler.new
|
9
9
|
h.mode = :direct
|
@@ -1,10 +1,10 @@
|
|
1
1
|
$:.unshift File.join(File.dirname(__FILE__),"..","lib")
|
2
2
|
|
3
|
-
require '
|
3
|
+
require 'minitest/autorun'
|
4
4
|
require 'rgen/metamodel_builder'
|
5
5
|
require 'rgen/serializer/qualified_name_provider'
|
6
6
|
|
7
|
-
class QualifiedNameProviderTest < Test
|
7
|
+
class QualifiedNameProviderTest < MiniTest::Test
|
8
8
|
|
9
9
|
class AbstractTestNode < RGen::MetamodelBuilder::MMBase
|
10
10
|
contains_many 'children', AbstractTestNode, "parent"
|
@@ -1,10 +1,10 @@
|
|
1
1
|
$:.unshift File.join(File.dirname(__FILE__),"..","lib")
|
2
2
|
|
3
|
-
require '
|
3
|
+
require 'minitest/autorun'
|
4
4
|
require 'rgen/metamodel_builder'
|
5
5
|
require 'rgen/instantiator/qualified_name_resolver'
|
6
6
|
|
7
|
-
class QualifiedNameResolverTest < Test
|
7
|
+
class QualifiedNameResolverTest < MiniTest::Test
|
8
8
|
|
9
9
|
class TestNode < RGen::MetamodelBuilder::MMBase
|
10
10
|
has_attr 'name', String
|
@@ -86,8 +86,8 @@ class QualifiedNameResolverTest < Test::Unit::TestCase
|
|
86
86
|
assert_equal model[1].children[0].children[0], res.resolveIdentifier("/Root2/Sub21/Sub211")
|
87
87
|
# duplicate name yields two result elements
|
88
88
|
assert_equal [model[2], model[3]], res.resolveIdentifier("/Root3")
|
89
|
-
|
90
|
-
|
89
|
+
assert_nil res.resolveIdentifier("/RootX")
|
90
|
+
assert_nil res.resolveIdentifier("/Root1/SubX")
|
91
91
|
end
|
92
92
|
|
93
93
|
def test_oneChild
|
@@ -1,10 +1,10 @@
|
|
1
1
|
$:.unshift File.join(File.dirname(__FILE__),"..","lib")
|
2
2
|
|
3
|
-
require '
|
3
|
+
require 'minitest/autorun'
|
4
4
|
require 'rgen/metamodel_builder'
|
5
5
|
require 'rgen/instantiator/reference_resolver'
|
6
6
|
|
7
|
-
class ReferenceResolverTest < Test
|
7
|
+
class ReferenceResolverTest < MiniTest::Test
|
8
8
|
|
9
9
|
class TestNode < RGen::MetamodelBuilder::MMBase
|
10
10
|
has_attr 'name', String
|
@@ -107,9 +107,9 @@ class ReferenceResolverTest < Test::Unit::TestCase
|
|
107
107
|
def check_model(nodeA, nodeB, nodeC)
|
108
108
|
assert_equal nodeB, nodeA.other
|
109
109
|
assert_equal [], nodeA.others
|
110
|
-
|
110
|
+
assert_nil nodeB.other
|
111
111
|
assert_equal [nodeA, nodeC], nodeB.others
|
112
|
-
|
112
|
+
assert_nil nodeC.other
|
113
113
|
assert_equal [], nodeC.others
|
114
114
|
end
|
115
115
|
|
data/test/rgen_test.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
$:.unshift File.dirname(__FILE__)
|
2
2
|
|
3
|
-
require '
|
3
|
+
require 'minitest/autorun'
|
4
4
|
|
5
5
|
require 'array_extensions_test'
|
6
6
|
require 'ea_instantiator_test'
|
@@ -23,4 +23,5 @@ require 'metamodel_from_ecore_test'
|
|
23
23
|
require 'util_test'
|
24
24
|
require 'model_fragment_test'
|
25
25
|
require 'qualified_name_provider_test'
|
26
|
+
require 'ecore_to_ruby_test'
|
26
27
|
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<% define 'Test', :for => Object do %>
|
2
|
+
<%iinc%>
|
3
|
+
<% expand 'Sub' %>
|
4
|
+
<%idec%>
|
5
|
+
<% end %>
|
6
|
+
|
7
|
+
<% define 'Sub', :for => Object do %>
|
8
|
+
Sub
|
9
|
+
<%# white space after the following end tag but no NL %>
|
10
|
+
<%# the bug was triggered when the @output of template loading %>
|
11
|
+
<%# was non empty and not terminated by a newline; %>
|
12
|
+
<%# without the space after end, the newline above this %>
|
13
|
+
<%# define block would be the last character %>
|
14
|
+
<% end %>
|