[341549] Fix containment modeling for entityGroups
diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/plugin.xml b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/plugin.xml
index 3b82522..f6bf1b2 100644
--- a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/plugin.xml
+++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/plugin.xml
@@ -17,7 +17,10 @@
uri="http://org.eclipse.jsf/mergetest1"/>
<standardMetaDataFile
location="/testfiles/metadata/FileIncludeExternalModel.xml"
- uri="http://org.eclipse.jsf/mergetest2"/>
+ uri="http://org.eclipse.jsf/mergetest2"/>
+ <standardMetaDataFile
+ location="/testfiles/metadata/FileIncludeExternalModel2.xml"
+ uri="http://org.eclipse.jsf/mergetest3"/>
<standardMetaDataFile
location="/testfiles/metadata/doesntexist.xml"
uri=" http://org.eclipse.jsf/missingFile "/>
diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/common/metadata/tests/ModelImplTests.java b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/common/metadata/tests/ModelImplTests.java
index 4273b74..66025da 100644
--- a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/common/metadata/tests/ModelImplTests.java
+++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/common/metadata/tests/ModelImplTests.java
@@ -62,6 +62,9 @@
//EntityGroups
assertNotNull(model.getEntityGroups());
assertEquals(2, model.getEntityGroups().size());
+
+ //test containment
+ assertEquals(model, model.getEntityGroups().get(0).getModel());
}
public void testFindIncludeGroup() {
diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/common/metadata/tests/updated/MergeTests.java b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/common/metadata/tests/updated/MergeTests.java
index 61c8e26..1fbb427 100644
--- a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/common/metadata/tests/updated/MergeTests.java
+++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/src/org/eclipse/jst/jsf/common/metadata/tests/updated/MergeTests.java
@@ -177,6 +177,33 @@
assertNotNull(entity);
assertEquals(0, entity.getChildEntities().size());
assertEquals(2, entity.getTraits().size());
+
+ //do it again with another model to ensure that entity group from external model is still intact
+ uri = "http://org.eclipse.jsf/mergetest3";
+ startTime(uri);
+ model = query.findTagLibraryModel(uri);
+ endTime();
+ assertNotNull(model);
+
+ dumpMDTree(model, 0);
+
+ //check model traits
+ assertEquals(1, model.getTraits().size());
+ trait = query.findTrait(model, "A1");
+ assertNotNull(trait);
+ assertEquals("A1FromEG1", TraitValueHelper.getValueAsString(trait));
+
+ //check model entities
+ assertEquals(1, model.getChildEntities().size());
+ entity = query.findTagEntity(model, "a");
+ assertNotNull(entity);
+ assertEquals(0, entity.getChildEntities().size());
+ assertEquals(2, entity.getTraits().size());
+
+ model = query.getQueryHelper().getModel("http://org.eclipse.jsf/mergetest1");
+ assertNotNull(model);
+ assertEquals(2, model.getEntityGroups().size());
+
}
public void testLoadJSFCore(){
diff --git a/jsf/tests/org.eclipse.jst.jsf.metadata.tests/testfiles/metadata/FileIncludeExternalModel2.xml b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/testfiles/metadata/FileIncludeExternalModel2.xml
new file mode 100644
index 0000000..f5442db
--- /dev/null
+++ b/jsf/tests/org.eclipse.jst.jsf.metadata.tests/testfiles/metadata/FileIncludeExternalModel2.xml
@@ -0,0 +1,9 @@
+<metadatamodel
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:mdt="http://org.eclipse.jst.jsf.common.metadata/metadataTraitTypes.ecore"
+ id="http://org.eclipse.jsf/mergetest3">
+
+ <include-entity-group id="eg1" uri="http://org.eclipse.jsf/mergetest1"/>
+
+</metadatamodel>