rgen 0.7.0 → 0.8.3
Sign up to get free protection for your applications and to get access to all the features.
- 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 %>
|