@@ -161,7 +161,7 @@ describe("Import/export", function () {
161
161
expect ( node instanceof Node ) . to . be . true ;
162
162
expect ( node . statementsAndDeclarations . length ) . to . equal ( 26 ) ;
163
163
} ) ;
164
- it ( "containments and references" , function ( ) {
164
+ it ( "containments and references - RPG " , function ( ) {
165
165
const resourceSet = ECore . ResourceSet . create ( ) ;
166
166
const resource = resourceSet . create ( { uri : 'file:data/rpg.metamodel.json' } ) ;
167
167
const mmBuffer = fs . readFileSync ( "tests/data/rpg.metamodel.json" ) ;
@@ -186,6 +186,28 @@ describe("Import/export", function () {
186
186
"subroutine" : { "child" : false , "multiple" : false , "name" : "subroutine" }
187
187
} ) ;
188
188
} ) ;
189
+ it ( "containments and references - SAS" , function ( ) {
190
+ const resourceSet = ECore . ResourceSet . create ( ) ;
191
+ const resource = resourceSet . create ( { uri : 'file:data/sas.metamodel.json' } ) ;
192
+ const mmBuffer = fs . readFileSync ( "tests/data/sas.metamodel.json" ) ;
193
+ const ePackages = loadEPackages ( JSON . parse ( mmBuffer . toString ( ) ) , resource ) ;
194
+ expect ( ePackages . length ) . to . equal ( 5 ) ;
195
+
196
+ const SourceFile = ePackages [ 0 ] . eContents ( ) . find ( x => x . get ( "name" ) == "SourceFile" ) ;
197
+ const sf = SourceFile . create ( { } ) ;
198
+
199
+ const VariableDeclaration = ePackages [ 2 ] . eContents ( ) . find ( x => x . get ( "name" ) == "VariableDeclaration" ) ;
200
+ const vd = VariableDeclaration . create ( { } ) ;
201
+ sf . get ( "statementsAndDeclarations" ) . add ( vd ) ;
202
+ const eCoreNode = new ECoreNode ( vd ) ;
203
+ const properties = eCoreNode . getProperties ( ) ;
204
+ expect ( properties ) . to . eql ( {
205
+ "name" : { "child" : false , "multiple" : undefined , "name" : "name" } ,
206
+ "expression" : { "child" : true , "multiple" : false , "name" : "expression" } ,
207
+ } ) ;
208
+ expect ( eCoreNode . getRole ( ) ) . to . equal ( "statementsAndDeclarations" ) ;
209
+ expect ( eCoreNode . parent ! . containment ( "statementsAndDeclarations" ) ) . to . eql ( { "child" : true , "multiple" : true , "name" : "statementsAndDeclarations" } ) ;
210
+ } ) ;
189
211
it ( "importing using raw Ecore.js" ,
190
212
function ( ) {
191
213
const resourceSet = ECore . ResourceSet . create ( ) ;
0 commit comments