diff --git a/edelta.parent/edelta.tests/src/edelta/tests/EdeltaInterpreterTest.xtend b/edelta.parent/edelta.tests/src/edelta/tests/EdeltaInterpreterTest.xtend index 7a59423d8..c23a47ccb 100644 --- a/edelta.parent/edelta.tests/src/edelta/tests/EdeltaInterpreterTest.xtend +++ b/edelta.parent/edelta.tests/src/edelta/tests/EdeltaInterpreterTest.xtend @@ -785,6 +785,28 @@ class EdeltaInterpreterTest extends EdeltaAbstractTest { ] } + @Test def void testEcoreRefExpForExistingEClass() { + ''' + import org.eclipse.emf.ecore.EcoreFactory + + metamodel "foo" + + modifyEcore aTest epackage foo { + ecoreref(FooClass) + } + '''.parseWithTestEcore => [ + interpretProgram + val ecoreRefs = allEcoreReferenceExpressions + ecoreRefs.head => [ + val exp = derivedStateHelper + .getEcoreReferenceExpressionState(it) + .getEnamedElementXExpressionMap + .get(reference.enamedelement) + assertNull(exp) + ] + ] + } + @Test def void testEcoreRefExpForCreatedEClassRenamedInInitializer() { ''' import org.eclipse.emf.ecore.EcoreFactory diff --git a/edelta.parent/edelta.tests/xtend-gen/edelta/tests/EdeltaInterpreterTest.java b/edelta.parent/edelta.tests/xtend-gen/edelta/tests/EdeltaInterpreterTest.java index 62cf18264..f8a15550c 100644 --- a/edelta.parent/edelta.tests/xtend-gen/edelta/tests/EdeltaInterpreterTest.java +++ b/edelta.parent/edelta.tests/xtend-gen/edelta/tests/EdeltaInterpreterTest.java @@ -1179,6 +1179,36 @@ public void testEcoreRefExpForCreatedEClassRenamed() { ObjectExtensions.operator_doubleArrow(_parseWithTestEcore, _function); } + @Test + public void testEcoreRefExpForExistingEClass() { + StringConcatenation _builder = new StringConcatenation(); + _builder.append("import org.eclipse.emf.ecore.EcoreFactory"); + _builder.newLine(); + _builder.newLine(); + _builder.append("metamodel \"foo\""); + _builder.newLine(); + _builder.newLine(); + _builder.append("modifyEcore aTest epackage foo {"); + _builder.newLine(); + _builder.append("\t"); + _builder.append("ecoreref(FooClass)"); + _builder.newLine(); + _builder.append("}"); + _builder.newLine(); + EdeltaProgram _parseWithTestEcore = this.parseWithTestEcore(_builder); + final Procedure1 _function = (EdeltaProgram it) -> { + this.interpretProgram(it); + final List ecoreRefs = this.getAllEcoreReferenceExpressions(it); + EdeltaEcoreReferenceExpression _head = IterableExtensions.head(ecoreRefs); + final Procedure1 _function_1 = (EdeltaEcoreReferenceExpression it_1) -> { + final XExpression exp = this.derivedStateHelper.getEcoreReferenceExpressionState(it_1).getEnamedElementXExpressionMap().get(it_1.getReference().getEnamedelement()); + Assert.assertNull(exp); + }; + ObjectExtensions.operator_doubleArrow(_head, _function_1); + }; + ObjectExtensions.operator_doubleArrow(_parseWithTestEcore, _function); + } + @Test public void testEcoreRefExpForCreatedEClassRenamedInInitializer() { StringConcatenation _builder = new StringConcatenation();