mirror of
https://github.com/sigmasternchen/xtext-core
synced 2025-03-16 16:58:56 +00:00
applied patch from bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=247406
This commit is contained in:
parent
a6128c3666
commit
5918db7759
2 changed files with 29 additions and 2 deletions
|
@ -71,11 +71,12 @@ public class TypeHierarchyHelperTests extends TestCase {
|
|||
eClass.getEClass().getEStructuralFeatures().add(feature);
|
||||
}
|
||||
|
||||
private void addReference(EClassInfo eClass, EClassInfo ref, String name) {
|
||||
private EReference addReference(EClassInfo eClass, EClassInfo ref, String name) {
|
||||
EReference feature = EcoreFactory.eINSTANCE.createEReference();
|
||||
feature.setName(name);
|
||||
feature.setEType(ref.getEClassifier());
|
||||
eClass.getEClass().getEStructuralFeatures().add(feature);
|
||||
return feature;
|
||||
}
|
||||
|
||||
public void testSimpeCase01() throws Exception {
|
||||
|
@ -220,6 +221,32 @@ public class TypeHierarchyHelperTests extends TestCase {
|
|||
assertEquals(0, c.getEClass().getEStructuralFeatures().size());
|
||||
}
|
||||
|
||||
public void testConfigurationOfLiftedReference() throws Exception {
|
||||
EClassInfo a = addClass("a");
|
||||
EClassInfo b = addClass("b");
|
||||
EClassInfo c = addClass("c");
|
||||
|
||||
b.addSupertype(a);
|
||||
c.addSupertype(a);
|
||||
EReference refB = addReference(b, a, "ref");
|
||||
refB.setContainment(true);
|
||||
EReference refC = addReference(c, a, "ref");
|
||||
refC.setContainment(true);
|
||||
|
||||
assertEquals(0, a.getEClass().getEStructuralFeatures().size());
|
||||
assertEquals(1, b.getEClass().getEStructuralFeatures().size());
|
||||
assertEquals(1, c.getEClass().getEStructuralFeatures().size());
|
||||
|
||||
liftUpFeatures();
|
||||
|
||||
assertEquals(1, a.getEClass().getEStructuralFeatures().size());
|
||||
assertEquals(0, b.getEClass().getEStructuralFeatures().size());
|
||||
assertEquals(0, c.getEClass().getEStructuralFeatures().size());
|
||||
|
||||
EReference refA = (EReference) a.getEClass().getEStructuralFeatures().get(0);
|
||||
assertTrue(refA.isContainment());
|
||||
}
|
||||
|
||||
public void testDublicateDerivedFeature() throws Exception {
|
||||
EClassInfo a = addClass("a");
|
||||
EClassInfo b = addClass("b");
|
||||
|
|
|
@ -337,7 +337,7 @@ public class Xtext2EcoreTransformerTests extends AbstractGeneratorTest {
|
|||
assertEquals(1, ruleA.getEAttributes().size());
|
||||
assertAttributeConfiguration(ruleA, 0, "featureAS", "EString");
|
||||
assertEquals(1, ruleA.getEReferences().size());
|
||||
assertReferenceConfiguration(ruleA, 0, "a", "RuleA", false, 0, 1);
|
||||
assertReferenceConfiguration(ruleA, 0, "a", "RuleA", true, 0, 1);
|
||||
|
||||
assertEquals(0, add.getEAttributes().size());
|
||||
assertEquals(0, add.getEReferences().size());
|
||||
|
|
Loading…
Reference in a new issue