blob: 18de1497093048adb4517e777b651df6e394154b [file] [log] [blame]
package org.eclipse.gmf.tests.tr;
import java.util.List;
import java.util.Map.Entry;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.emf.codegen.ecore.genmodel.GenFeature;
import org.eclipse.emf.codegen.ecore.genmodel.GenModel;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
import org.eclipse.gmf.codegen.gmfgen.AbstractToolEntry;
import org.eclipse.gmf.codegen.gmfgen.Attributes;
import org.eclipse.gmf.codegen.gmfgen.Behaviour;
import org.eclipse.gmf.codegen.gmfgen.ColorAttributes;
import org.eclipse.gmf.codegen.gmfgen.DefaultSizeAttributes;
import org.eclipse.gmf.codegen.gmfgen.ElementType;
import org.eclipse.gmf.codegen.gmfgen.ExpressionLabelParser;
import org.eclipse.gmf.codegen.gmfgen.ExternalParser;
import org.eclipse.gmf.codegen.gmfgen.FeatureLabelModelFacet;
import org.eclipse.gmf.codegen.gmfgen.FigureViewmap;
import org.eclipse.gmf.codegen.gmfgen.GMFGenPackage;
import org.eclipse.gmf.codegen.gmfgen.GenAuditContainer;
import org.eclipse.gmf.codegen.gmfgen.GenAuditRoot;
import org.eclipse.gmf.codegen.gmfgen.GenAuditRule;
import org.eclipse.gmf.codegen.gmfgen.GenAuditable;
import org.eclipse.gmf.codegen.gmfgen.GenChildNode;
import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
import org.eclipse.gmf.codegen.gmfgen.GenCompartment;
import org.eclipse.gmf.codegen.gmfgen.GenContextMenu;
import org.eclipse.gmf.codegen.gmfgen.GenContributionItem;
import org.eclipse.gmf.codegen.gmfgen.GenCustomPreferencePage;
import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
import org.eclipse.gmf.codegen.gmfgen.GenDomainAttributeTarget;
import org.eclipse.gmf.codegen.gmfgen.GenDomainElementTarget;
import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
import org.eclipse.gmf.codegen.gmfgen.GenEditorView;
import org.eclipse.gmf.codegen.gmfgen.GenLink;
import org.eclipse.gmf.codegen.gmfgen.GenLinkLabel;
import org.eclipse.gmf.codegen.gmfgen.GenNode;
import org.eclipse.gmf.codegen.gmfgen.GenNodeLabel;
import org.eclipse.gmf.codegen.gmfgen.GenNotationElementTarget;
import org.eclipse.gmf.codegen.gmfgen.GenParserImplementation;
import org.eclipse.gmf.codegen.gmfgen.GenParsers;
import org.eclipse.gmf.codegen.gmfgen.GenPlugin;
import org.eclipse.gmf.codegen.gmfgen.GenPreferencePage;
import org.eclipse.gmf.codegen.gmfgen.GenStandardPreferencePage;
import org.eclipse.gmf.codegen.gmfgen.GenTopLevelNode;
import org.eclipse.gmf.codegen.gmfgen.InnerClassViewmap;
import org.eclipse.gmf.codegen.gmfgen.LabelModelFacet;
import org.eclipse.gmf.codegen.gmfgen.LabelOffsetAttributes;
import org.eclipse.gmf.codegen.gmfgen.LinkModelFacet;
import org.eclipse.gmf.codegen.gmfgen.ModeledViewmap;
import org.eclipse.gmf.codegen.gmfgen.OpenDiagramBehaviour;
import org.eclipse.gmf.codegen.gmfgen.Palette;
import org.eclipse.gmf.codegen.gmfgen.ParentAssignedViewmap;
import org.eclipse.gmf.codegen.gmfgen.ResizeConstraints;
import org.eclipse.gmf.codegen.gmfgen.SharedBehaviour;
import org.eclipse.gmf.codegen.gmfgen.SnippetViewmap;
import org.eclipse.gmf.codegen.gmfgen.StandardEntry;
import org.eclipse.gmf.codegen.gmfgen.StyleAttributes;
import org.eclipse.gmf.codegen.gmfgen.ToolEntry;
import org.eclipse.gmf.codegen.gmfgen.ToolGroup;
import org.eclipse.gmf.codegen.gmfgen.ToolGroupItem;
import org.eclipse.gmf.codegen.gmfgen.TypeLinkModelFacet;
import org.eclipse.gmf.codegen.gmfgen.TypeModelFacet;
import org.eclipse.gmf.codegen.gmfgen.ValueExpression;
import org.eclipse.gmf.codegen.gmfgen.Viewmap;
import org.eclipse.gmf.mappings.Mapping;
import org.eclipse.gmf.tests.ConfiguredTestCase;
import org.eclipse.gmf.tests.tr.TransformationTestSupport.Transformation;
/**
* Compare results form Java & QVTO transformations.
*
* @author ghillairet
*
*/
public class CompareTransformationEngineTest extends ConfiguredTestCase {
protected static String testFolder = "platform:/plugin/org.eclipse.gmf.tests/models/tests/"; //$NON-NLS-1$
public CompareTransformationEngineTest(String name) {
super(name);
}
protected GenModel genModel;
protected Mapping mapping;
protected GenEditorGenerator expectedGenerator;
protected GenEditorGenerator actualGenerator;
private IProject myProject;
private URI traceURI;
// map -> test.gmfmap
// ecore -> test.ecore
// genmodel -> test.genmodel
@Override
public void setUp() throws Exception {
super.setUp();
myProject = createProject();
traceURI = URI.createURI(myProject.getFile("test.trace").getFullPath().toString());
ResourceSet resourceSet = new ResourceSetImpl();
Resource mapRes = resourceSet.createResource(URI.createURI(testFolder+"test.gmfmap"));
mapRes.load(null);
Resource genRes = resourceSet.createResource(URI.createURI(testFolder+"test.genmodel"));
genRes.load(null);
mapping = (Mapping) mapRes.getContents().get(0);
genModel = (GenModel) genRes.getContents().get(0);
Transformation java = TransformationTestSupport.getJavaTransformation(genModel, mapping, false);
Transformation qvt = TransformationTestSupport.getQvtTransformation(genModel, mapping, false);
expectedGenerator = java.execute(traceURI.trimFileExtension().appendFileExtension("java.gmfgen"));
actualGenerator = qvt.execute(traceURI.trimFileExtension().appendFileExtension("qvt.gmfgen"));
}
@Override
public void tearDown() throws Exception {
deleteProject();
myProject = null;
super.tearDown();
}
public void testDummy() {
// TODO: Remove when ParsersTest fixed.
}
public void testGenEditorGenerator() {
assertNotNull(expectedGenerator);
assertNotNull(actualGenerator);
assertNotSame(expectedGenerator, actualGenerator);
assertNotNull(expectedGenerator.eResource());
assertNotNull(actualGenerator.eResource());
assertNotSame(expectedGenerator.eResource(), actualGenerator.eResource());
assertSame(expectedGenerator.eResource().getResourceSet(), actualGenerator.eResource().getResourceSet());
assertEquals(expectedGenerator.getCopyrightText(), actualGenerator.getCopyrightText());
assertEquals(expectedGenerator.getDiagramFileExtension(), actualGenerator.getDiagramFileExtension());
assertEquals(expectedGenerator.getDomainFileExtension(), actualGenerator.getDomainFileExtension());
assertEquals(expectedGenerator.getModelID(), actualGenerator.getModelID());
assertEquals(expectedGenerator.getPackageNamePrefix(), actualGenerator.getPackageNamePrefix());
assertEquals(expectedGenerator.getPluginDirectory(), actualGenerator.getPluginDirectory());
assertEquals(expectedGenerator.getTemplateDirectory(), actualGenerator.getTemplateDirectory());
}
public void testGenEditorView() {
GenEditorView expected = expectedGenerator.getEditor();
GenEditorView actual = actualGenerator.getEditor();
assertEquals(expected.getActionBarContributorClassName(), actual.getActionBarContributorClassName());
assertEquals(expected.getClassName(), actual.getClassName());
assertEquals(expected.getContextID(), actual.getContextID());
assertEquals(expected.isEclipseEditor(), actual.isEclipseEditor());
assertEquals(expected.getIconPath(), actual.getIconPath());
assertEquals(expected.getIconPathX(), actual.getIconPathX());
assertEquals(expected.getID(), actual.getID());
assertEquals(expected.getPackageName(), actual.getPackageName());
assertEquals(expected.getActionBarContributorQualifiedClassName(), actual.getActionBarContributorQualifiedClassName());
assertEquals(expected.getQualifiedClassName(), actual.getQualifiedClassName());
}
public void testGenPlugin() {
GenPlugin expected = expectedGenerator.getPlugin();
GenPlugin actual = actualGenerator.getPlugin();
assertNotNull(expected);
assertNotNull(actual);
assertEquals(expected.getActivatorClassName(), actual.getActivatorClassName());
assertEquals(expected.getID(), actual.getID());
assertEquals(expected.getName(), actual.getName());
assertEquals(expected.isPrintingEnabled(), actual.isPrintingEnabled());
assertEquals(expected.getProvider(), actual.getProvider());
assertEquals(expected.getVersion(), actual.getVersion());
assertEquals(expected.getRequiredPlugins().size(), actual.getRequiredPlugins().size());
List<String> actualPlugins = actual.getRequiredPlugins();
for (int i=0; i<expected.getRequiredPlugins().size(); i++) {
String exp = expected.getRequiredPlugins().get(i);
assertTrue(actualPlugins.contains(exp));
}
}
public void testContextMenus() {
EList<GenContextMenu> expected = expectedGenerator.getContextMenus();
EList<GenContextMenu> actual = actualGenerator.getContextMenus();
assertEquals(expected.size(), actual.size());
for (int i=0; i<expected.size(); i++) {
GenContextMenu exp = expected.get(i);
GenContextMenu act = actual.get(i);
assertEquals(exp.getID(), act.getID());
assertEquals(exp.getItems().size(), act.getItems().size());
}
}
protected void testGenContributionItem(GenContributionItem expected, GenContributionItem actual) {
// TODO
}
public void testNumberOfElementsInGenDiagram() {
GenDiagram expected = expectedGenerator.getDiagram();
GenDiagram actual = actualGenerator.getDiagram();
assertEquals(expected.getTopLevelNodes().size(), actual.getTopLevelNodes().size());
assertEquals(expected.getChildNodes().size(), actual.getChildNodes().size());
assertEquals(expected.getCompartments().size(), actual.getCompartments().size());
assertEquals(expected.getLinks().size(), actual.getLinks().size());
}
public void testGenDiagram() {
GenDiagram expected = expectedGenerator.getDiagram();
GenDiagram actual = actualGenerator.getDiagram();
assertNotNull(expected);
assertNotNull(actual);
assertEquals(expected.getDiagramRunTimeClass().getName(), actual.getDiagramRunTimeClass().getName());
for (EAttribute attribute: GMFGenPackage.eINSTANCE.getGenDiagram().getEAllAttributes()) {
if (expected.eIsSet(attribute)) {
assertTrue(attribute+" should be set", actual.eIsSet(attribute));
if (!attribute.isMany()) {
assertEquals(expected.eGet(attribute), actual.eGet(attribute));
}
} else {
assertFalse(attribute+" should not be set", actual.eIsSet(attribute));
}
}
}
public void testGenTopLevelNodeVisualID() {
// GenTopLevelNode
EList<GenTopLevelNode> expected = expectedGenerator.getDiagram().getTopLevelNodes();
EList<GenTopLevelNode> actual = actualGenerator.getDiagram().getTopLevelNodes();
assertEquals("Number of GenTopLevelNode should be the same", expected.size(), actual.size());
for (int i=0; i<expected.size(); i++) {
GenTopLevelNode exp = expected.get(i);
GenTopLevelNode act = actual.get(i);
assertEquals("Node visualID should be the same", exp.getVisualID(), act.getVisualID());
EList<GenNodeLabel> expLabels = exp.getLabels();
EList<GenNodeLabel> actLabels = act.getLabels();
assertEquals("Number of GenNodeLabel should be the same", expLabels.size(), actLabels.size());
for (int j=0; j<expLabels.size(); j++) {
GenNodeLabel expLabel = expLabels.get(j);
GenNodeLabel actLabel = actLabels.get(j);
assertEquals("Node visualID should be the same", expLabel.getVisualID(), actLabel.getVisualID());
}
}
}
public void testGenChildNodeVisualID() {
// GenChildNode
EList<GenChildNode> expChildNodes = expectedGenerator.getDiagram().getChildNodes();
EList<GenChildNode> actChildNodes = actualGenerator.getDiagram().getChildNodes();
assertEquals("Number of GenChildNode should be the same", expChildNodes.size(), actChildNodes.size());
for (int i=0; i<expChildNodes.size(); i++) {
GenChildNode exp = expChildNodes.get(i);
GenChildNode act = actChildNodes.get(i);
assertEquals("Node visualID should be the same", exp.getVisualID(), act.getVisualID());
EList<GenNodeLabel> expLabels = exp.getLabels();
EList<GenNodeLabel> actLabels = act.getLabels();
assertEquals("Number of GenNodeLabel should be the same", expLabels.size(), actLabels.size());
for (int j=0; j<expLabels.size(); j++) {
GenNodeLabel expLabel = expLabels.get(j);
GenNodeLabel actLabel = actLabels.get(j);
assertEquals("Node visualID should be the same", expLabel.getVisualID(), actLabel.getVisualID());
}
}
}
public void testGenLinkVisualID() {
// GenLink
EList<GenLink> expLinks = expectedGenerator.getDiagram().getLinks();
EList<GenLink> actLinks = actualGenerator.getDiagram().getLinks();
assertEquals("Number of GenLink should be the same", expLinks.size(), actLinks.size());
for (int i=0; i<expLinks.size(); i++) {
GenLink exp = expLinks.get(i);
GenLink act = actLinks.get(i);
assertEquals("Node visualID should be the same", exp.getVisualID(), act.getVisualID());
EList<GenLinkLabel> expLabels = exp.getLabels();
EList<GenLinkLabel> actLabels = act.getLabels();
assertEquals("Number of GenNodeLabel should be the same", expLabels.size(), actLabels.size());
for (int j=0; j<expLabels.size(); j++) {
GenLinkLabel expLabel = expLabels.get(j);
GenLinkLabel actLabel = actLabels.get(j);
assertEquals("Node visualID should be the same", expLabel.getVisualID(), actLabel.getVisualID());
}
}
}
public void testGenCompartmentVisualID() {
// GenCompartment
EList<GenCompartment> expCompartments = expectedGenerator.getDiagram().getCompartments();
EList<GenCompartment> actCompartments = actualGenerator.getDiagram().getCompartments();
// Known issue: GenCompartment are not set in same order.
assertEquals("Number of GenLink should be the same", expCompartments.size(), actCompartments.size());
for (int i=0; i<expCompartments.size(); i++) {
GenCompartment exp = expCompartments.get(i);
GenCompartment act = findCompartment(exp, actCompartments);
assertNotNull("Identical GenCompartment should be found", act);
assertEquals("Node visualID should be the same", exp.getVisualID(), act.getVisualID());
}
}
public void testGenTopLevelNodeAttributes() {
// GenTopLevelNode
EList<GenTopLevelNode> expected = expectedGenerator.getDiagram().getTopLevelNodes();
EList<GenTopLevelNode> actual = actualGenerator.getDiagram().getTopLevelNodes();
assertEquals("Number of GenLink should be the same", expected.size(), actual.size());
for (int i=0; i<expected.size(); i++) {
GenTopLevelNode exp = expected.get(i);
GenTopLevelNode act = actual.get(i);
assertEquals(exp.getCanonicalEditPolicyClassName(), act.getCanonicalEditPolicyClassName());
assertEquals(exp.getCanonicalEditPolicyQualifiedClassName(), act.getCanonicalEditPolicyQualifiedClassName());
assertEquals(exp.getClassNamePrefix(), act.getClassNamePrefix());
assertEquals(exp.getClassNameSuffux(), act.getClassNameSuffux());
assertEquals(exp.getCreateCommandClassName(), act.getCreateCommandClassName());
assertEquals(exp.getCreateCommandQualifiedClassName(), act.getCreateCommandQualifiedClassName());
assertEquals(exp.getEditPartClassName(), act.getEditPartClassName());
assertEquals(exp.getEditPartQualifiedClassName(), act.getEditPartQualifiedClassName());
assertEquals(exp.getGraphicalNodeEditPolicyClassName(), act.getGraphicalNodeEditPolicyClassName());
assertEquals(exp.getGraphicalNodeEditPolicyQualifiedClassName(), act.getGraphicalNodeEditPolicyQualifiedClassName());
assertEquals(exp.getItemSemanticEditPolicyClassName(), act.getItemSemanticEditPolicyClassName());
assertEquals(exp.getItemSemanticEditPolicyQualifiedClassName(), act.getItemSemanticEditPolicyQualifiedClassName());
assertEquals(exp.getNotationViewFactoryClassName(), act.getNotationViewFactoryClassName());
assertEquals(exp.getNotationViewFactoryQualifiedClassName(), act.getNotationViewFactoryQualifiedClassName());
assertEquals(exp.getPrimaryDragEditPolicyQualifiedClassName(), act.getPrimaryDragEditPolicyQualifiedClassName());
assertEquals(exp.getUniqueIdentifier(), act.getUniqueIdentifier());
assertEquals(exp.getVisualID(), act.getVisualID());
}
}
public void testGenChildNodeAttributes() {
// GenChildNode
EList<GenChildNode> expected = expectedGenerator.getDiagram().getChildNodes();
EList<GenChildNode> actual = actualGenerator.getDiagram().getChildNodes();
assertEquals("Number of GenChildNode should be the same", expected.size(), actual.size());
for (int i=0; i<expected.size(); i++) {
GenChildNode exp = expected.get(i);
GenChildNode act = actual.get(i);
assertEquals(exp.eClass(), act.eClass());
for (EAttribute attribute: exp.eClass().getEAllAttributes()) {
if (exp.eIsSet(attribute)) {
assertTrue(attribute+" should be set", act.eIsSet(attribute));
if (!attribute.isMany()) {
assertEquals(exp.eGet(attribute), act.eGet(attribute));
}
} else {
assertFalse(attribute+" should not be set", act.eIsSet(attribute));
}
}
}
}
public void testGenLinksAttributes() {
// GenLink
EList<GenLink> expected = expectedGenerator.getDiagram().getLinks();
EList<GenLink> actual = actualGenerator.getDiagram().getLinks();
assertEquals("Number of GenLink should be the same", expected.size(), actual.size());
for (int i=0; i<expected.size(); i++) {
GenLink expLink = expected.get(i);
GenLink actLink = actual.get(i);
assertEquals(expLink.getClassNamePrefix(), actLink.getClassNamePrefix());
assertEquals(expLink.getClassNameSuffux(), actLink.getClassNameSuffux());
assertEquals(expLink.getCreateCommandClassName(), actLink.getCreateCommandClassName());
assertEquals(expLink.getCreateCommandQualifiedClassName(), actLink.getCreateCommandQualifiedClassName());
assertEquals(expLink.getEditPartClassName(), actLink.getEditPartClassName());
assertEquals(expLink.getEditPartQualifiedClassName(), actLink.getEditPartQualifiedClassName());
assertEquals(expLink.getItemSemanticEditPolicyClassName(), actLink.getItemSemanticEditPolicyClassName());
assertEquals(expLink.getItemSemanticEditPolicyQualifiedClassName(), actLink.getItemSemanticEditPolicyQualifiedClassName());
assertEquals(expLink.getNotationViewFactoryClassName(), actLink.getNotationViewFactoryClassName());
assertEquals(expLink.getNotationViewFactoryQualifiedClassName(), actLink.getNotationViewFactoryQualifiedClassName());
assertEquals(expLink.getReorientCommandClassName(), actLink.getReorientCommandClassName());
assertEquals(expLink.getReorientCommandQualifiedClassName(), actLink.getReorientCommandQualifiedClassName());
assertEquals(expLink.getVisualID(), actLink.getVisualID());
assertEquals(expLink.getUniqueIdentifier(), actLink.getUniqueIdentifier());
}
}
public void testGenCompartmentAttributes() {
// GenCompartment
EList<GenCompartment> expCompartments = expectedGenerator.getDiagram().getCompartments();
EList<GenCompartment> actCompartments = actualGenerator.getDiagram().getCompartments();
// Known issue: GenCompartment are not set in same order.
assertEquals("Number of GenLink should be the same", expCompartments.size(), actCompartments.size());
for (int i=0; i<expCompartments.size(); i++) {
GenCompartment exp = expCompartments.get(i);
GenCompartment act = findCompartment(exp, actCompartments);
assertNotNull("Compartment with ID "+exp.getVisualID()+" not found", act);
assertEquals("Node visualID should be the same", exp.getVisualID(), act.getVisualID());
assertEquals(exp.getCanonicalEditPolicyClassName(), act.getCanonicalEditPolicyClassName());
assertEquals(exp.getCanonicalEditPolicyQualifiedClassName(), act.getCanonicalEditPolicyQualifiedClassName());
assertEquals(exp.getClassNamePrefix(), act.getClassNamePrefix());
assertEquals(exp.getClassNameSuffux(), act.getClassNameSuffux());
assertEquals(exp.getEditPartClassName(), act.getEditPartClassName());
assertEquals(exp.getEditPartQualifiedClassName(), act.getEditPartQualifiedClassName());
assertEquals(exp.getItemSemanticEditPolicyClassName(), act.getItemSemanticEditPolicyClassName());
assertEquals(exp.getItemSemanticEditPolicyQualifiedClassName(), act.getItemSemanticEditPolicyQualifiedClassName());
assertEquals(exp.getNotationViewFactoryClassName(), act.getNotationViewFactoryClassName());
assertEquals(exp.getNotationViewFactoryQualifiedClassName(), act.getNotationViewFactoryQualifiedClassName());
assertEquals(exp.getTitle(), act.getTitle());
assertEquals(exp.getUniqueIdentifier(), act.getUniqueIdentifier());
assertEquals(exp.isCanCollapse(), act.isCanCollapse());
assertEquals(exp.isHideIfEmpty(), act.isHideIfEmpty());
assertEquals(exp.isListLayout(), act.isListLayout());
assertEquals(exp.isNeedsTitle(), act.isNeedsTitle());
assertEquals(exp.isSansDomain(), act.isSansDomain());
}
}
public void testGenTopLevelNodeReferences() {
// GenTopLevelNode
EList<GenTopLevelNode> expected = expectedGenerator.getDiagram().getTopLevelNodes();
EList<GenTopLevelNode> actual = actualGenerator.getDiagram().getTopLevelNodes();
assertEquals("Number of GenLink should be the same", expected.size(), actual.size());
for (int i=0; i<expected.size(); i++) {
GenTopLevelNode exp = expected.get(i);
GenTopLevelNode act = actual.get(i);
testElementType(exp.getElementType(), act.getElementType());
testViewmap(exp.getViewmap(), act.getViewmap());
testBehaviours(exp.getBehaviour(),act.getBehaviour());
testTypeModelFacet(exp.getModelFacet(), act.getModelFacet());
testGenNodeLabels(exp.getLabels(), act.getLabels());
assertEquals(exp.getDiagramRunTimeClass().getName(), act.getDiagramRunTimeClass().getName());
assertEquals(exp.getStyles().size(), act.getStyles().size());
assertEquals(exp.getBehaviour().size(), act.getBehaviour().size());
assertEquals(exp.getContainedNodes().size(), act.getContainedNodes().size());
assertEquals(exp.getCompartments().size(), act.getCompartments().size());
assertEquals(exp.getGenIncomingLinks().size(), act.getGenIncomingLinks().size());
assertEquals(exp.getGenOutgoingLinks().size(), act.getGenOutgoingLinks().size());
assertEquals(exp.getReorientedIncomingLinks().size(), act.getReorientedIncomingLinks().size());
}
}
public void testGenChildNodeReferences() {
// GenChildNode
EList<GenChildNode> expected = expectedGenerator.getDiagram().getChildNodes();
EList<GenChildNode> actual = actualGenerator.getDiagram().getChildNodes();
assertEquals("Number of GenChildNode should be the same", expected.size(), actual.size());
for (int i=0; i<expected.size(); i++) {
GenChildNode exp = expected.get(i);
GenChildNode act = actual.get(i);
testElementType(exp.getElementType(), act.getElementType());
testViewmap(exp.getViewmap(), act.getViewmap());
testBehaviours(exp.getBehaviour(),act.getBehaviour());
testTypeModelFacet(exp.getModelFacet(), act.getModelFacet());
testGenNodeLabels(exp.getLabels(), act.getLabels());
assertEquals(exp.getDiagramRunTimeClass().getName(), act.getDiagramRunTimeClass().getName());
assertEquals(exp.getStyles().size(), act.getStyles().size());
assertEquals(exp.getBehaviour().size(), act.getBehaviour().size());
assertEquals(exp.getContainedNodes().size(), act.getContainedNodes().size());
assertEquals(exp.getCompartments().size(), act.getCompartments().size());
assertEquals(exp.getGenIncomingLinks().size(), act.getGenIncomingLinks().size());
assertEquals(exp.getGenOutgoingLinks().size(), act.getGenOutgoingLinks().size());
assertEquals(exp.getReorientedIncomingLinks().size(), act.getReorientedIncomingLinks().size());
}
}
public void testGenLinksReferences() {
// GenTopLevelNode
EList<GenLink> expected = expectedGenerator.getDiagram().getLinks();
EList<GenLink> actual = actualGenerator.getDiagram().getLinks();
assertEquals("Number of GenLink should be the same", expected.size(), actual.size());
for (int i=0; i<expected.size(); i++) {
GenLink expLink = expected.get(i);
GenLink actLink = actual.get(i);
testElementType(expLink.getElementType(), actLink.getElementType());
testViewmap(expLink.getViewmap(), actLink.getViewmap());
testBehaviours(expLink.getBehaviour(),actLink.getBehaviour());
testLinkModelFacet(expLink.getModelFacet(), actLink.getModelFacet());
assertEquals(expLink.getDiagramRunTimeClass().getName(), actLink.getDiagramRunTimeClass().getName());
assertEquals(expLink.getStyles().size(), actLink.getStyles().size());
assertEquals(expLink.getBehaviour().size(), actLink.getBehaviour().size());
assertEquals(expLink.getGenIncomingLinks().size(), actLink.getGenIncomingLinks().size());
assertEquals(expLink.getGenOutgoingLinks().size(), actLink.getGenOutgoingLinks().size());
assertEquals(expLink.getLabels().size(), actLink.getLabels().size());
}
}
public void testGenCompartmentReferences() {
// GenCompartment
EList<GenCompartment> expCompartments = expectedGenerator.getDiagram().getCompartments();
EList<GenCompartment> actCompartments = actualGenerator.getDiagram().getCompartments();
// Known issue: GenCompartment are not set in same order.
assertEquals("Number of GenLink should be the same", expCompartments.size(), actCompartments.size());
for (int i=0; i<expCompartments.size(); i++) {
GenCompartment exp = expCompartments.get(i);
GenCompartment act = findCompartment(exp, actCompartments);
assertNotNull("Identical GenCompartment should be found", act);
assertNotNull(act.getDiagram());
testElementType(exp.getElementType(), act.getElementType());
testViewmap(exp.getViewmap(), act.getViewmap());
testBehaviours(exp.getBehaviour(),act.getBehaviour());
assertEquals(exp.getNode().getVisualID(), act.getNode().getVisualID());
assertEquals(exp.getDiagramRunTimeClass().getName(), act.getDiagramRunTimeClass().getName());
assertEquals(exp.getStyles().size(), act.getStyles().size());
assertEquals(exp.getChildNodes().size(), act.getChildNodes().size());
for (int j=0; j<exp.getChildNodes().size(); j++) {
GenNode expNode = exp.getChildNodes().get(j);
GenNode actNode = act.getChildNodes().get(j);
assertEquals(expNode.getVisualID(), actNode.getVisualID());
}
assertEquals(exp.getContainedNodes().size(), act.getContainedNodes().size());
for (int j=0; j<exp.getContainedNodes().size(); j++) {
GenNode expNode = exp.getContainedNodes().get(j);
GenNode actNode = act.getContainedNodes().get(j);
assertEquals(expNode.getVisualID(), actNode.getVisualID());
}
}
}
protected void testGenNodeLabels(EList<GenNodeLabel> expected, EList<GenNodeLabel> actual) {
assertEquals(expected.size(), actual.size());
for (int i=0; i<expected.size(); i++) {
GenNodeLabel exp = expected.get(i);
GenNodeLabel act = actual.get(i);
assertEquals(exp.eClass(), act.eClass());
testGenNodeLabel(exp, act);
}
}
protected void testGenNodeLabel(GenNodeLabel expected, GenNodeLabel actual) {
assertEquals(expected.getVisualID(), actual.getVisualID());
assertEquals(expected.getUniqueIdentifier(), actual.getUniqueIdentifier());
assertEquals(expected.getEditPartClassName(), actual.getEditPartClassName());
assertEquals(expected.getNotationViewFactoryClassName(), actual.getNotationViewFactoryClassName());
assertEquals(expected.isElementIcon(), actual.isElementIcon());
assertEquals(expected.isReadOnly(), actual.isReadOnly());
assertEquals(expected.isSansDomain(), actual.isSansDomain());
assertEquals(expected.getNode().getVisualID(), actual.getNode().getVisualID());
assertEquals(expected.getNode().getUniqueIdentifier(), actual.getNode().getUniqueIdentifier());
testElementType(expected.getElementType(), actual.getElementType());
testViewmap(expected.getViewmap(), actual.getViewmap());
testBehaviours(expected.getBehaviour(), actual.getBehaviour());
testLabelModelFacet(expected.getModelFacet(), actual.getModelFacet());
}
private void testLabelModelFacet(LabelModelFacet expected, LabelModelFacet actual) {
assertEquals(expected.eClass(), actual.eClass());
assertNotNull(expected.getParser());
assertNotNull(actual.getParser()); // TODO: assertEquals(Parser, Parser)
if (expected.eClass().equals(GMFGenPackage.eINSTANCE.getFeatureLabelModelFacet())) {
testFeatureLabelModelFacet((FeatureLabelModelFacet) expected, (FeatureLabelModelFacet) actual);
}
}
private void testFeatureLabelModelFacet(FeatureLabelModelFacet expected, FeatureLabelModelFacet actual) {
assertEquals(expected.getViewPattern(), actual.getViewPattern());
assertEquals(expected.getEditorPattern(), actual.getEditorPattern());
assertEquals(expected.getEditPattern(), actual.getEditPattern());
assertEquals(expected.getViewMethod().getLiteral(), actual.getViewMethod().getLiteral());
assertEquals(expected.getEditMethod().getLiteral(), actual.getEditMethod().getLiteral());
assertEquals(expected.getMetaFeatures().size(), actual.getMetaFeatures().size());
for (int i=0; i<expected.getMetaFeatures().size(); i++) {
GenFeature exp = expected.getMetaFeatures().get(i);
GenFeature act = actual.getMetaFeatures().get(i);
assertEquals(exp.eClass(), act.eClass());
assertEquals(exp.getName(), act.getName());
}
assertEquals(expected.getEditableMetaFeatures().size(), actual.getEditableMetaFeatures().size());
for (int i=0; i<expected.getEditableMetaFeatures().size(); i++) {
GenFeature exp = expected.getMetaFeatures().get(i);
GenFeature act = actual.getMetaFeatures().get(i);
assertEquals(exp.eClass(), act.eClass());
assertEquals(exp.getName(), act.getName());
}
}
private void testTypeModelFacet(TypeModelFacet expected, TypeModelFacet actual) {
assertEquals(expected.eClass(), actual.eClass());
if (expected.eIsSet(GMFGenPackage.eINSTANCE.getTypeModelFacet_ContainmentMetaFeature())) {
assertTrue(actual.eIsSet(GMFGenPackage.eINSTANCE.getTypeModelFacet_ContainmentMetaFeature()));
assertEquals(expected.getContainmentMetaFeature().getName(), actual.getContainmentMetaFeature().getName());
} else {
assertFalse(actual.eIsSet(GMFGenPackage.eINSTANCE.getTypeModelFacet_ContainmentMetaFeature()));
}
if (expected.eIsSet(GMFGenPackage.eINSTANCE.getTypeModelFacet_ChildMetaFeature())) {
assertTrue(actual.eIsSet(GMFGenPackage.eINSTANCE.getTypeModelFacet_ChildMetaFeature()));
assertEquals(expected.getChildMetaFeature().getName(), actual.getChildMetaFeature().getName());
} else {
assertFalse(actual.eIsSet(GMFGenPackage.eINSTANCE.getTypeModelFacet_ChildMetaFeature()));
}
}
private void testLinkModelFacet(LinkModelFacet expected, LinkModelFacet actual) {
if (expected == null) {
assertNull(actual);
} else {
assertNotNull(actual);
assertEquals(expected.eClass(), actual.eClass());
}
if (expected.eClass().equals(GMFGenPackage.eINSTANCE.getTypeLinkModelFacet())) {
testTypeLinkModelFacet((TypeLinkModelFacet)expected, (TypeLinkModelFacet)actual);
}
}
private void testTypeLinkModelFacet(TypeLinkModelFacet expected, TypeLinkModelFacet actual) {
assertEquals(expected.getMetaClass().getName(), actual.getMetaClass().getName());
testTypeModelFacet(expected, actual);
}
public void testGenParser() {
GenParsers expected = expectedGenerator.getLabelParsers();
GenParsers actual = actualGenerator.getLabelParsers();
if (expected != null) {
assertNotNull(actual);
System.out.println(expected.getImplementations());
System.out.println(actual.getImplementations());
assertEquals(expected.getClassName(), actual.getClassName());
assertEquals(expected.getImplPackageName(), actual.getImplPackageName());
assertEquals(expected.getPackageName(), actual.getPackageName());
assertEquals(expected.getProviderPriority().getLiteral(), actual.getProviderPriority().getLiteral());
assertEquals(expected.isExtensibleViaService(), actual.isExtensibleViaService());
assertEquals(expected.getImplementations().size(), actual.getImplementations().size());
for (int i=0; i<expected.getImplementations().size(); i++) {
GenParserImplementation exp = expected.getImplementations().get(i);
GenParserImplementation act = actual.getImplementations().get(i);
testGenParserImplementation(exp, act);
}
} else {
assertNull(actual);
}
}
private void testGenParserImplementation(GenParserImplementation expected, GenParserImplementation actual) {
assertEquals(expected.eClass(), actual.eClass());
assertEquals(expected.getUses().size(), actual.getUses().size());
if (expected.eClass().equals(GMFGenPackage.eINSTANCE.getExternalParser())) {
testExternalParser((ExternalParser)expected, (ExternalParser)actual);
} else if (expected.eClass().equals(GMFGenPackage.eINSTANCE.getExpressionLabelParser())) {
testExpressionLabelParser((ExpressionLabelParser)expected, (ExpressionLabelParser)actual);
}
}
private void testExpressionLabelParser(ExpressionLabelParser expected, ExpressionLabelParser actual) {
assertEquals(expected.getClassName(), actual.getClassName());
assertEquals(expected.getExpressionContext().getName(), actual.getExpressionContext().getName());
if (expected.getEditExpression() != null) {
assertNotNull(actual.getEditExpression());
ValueExpression exp = expected.getEditExpression();
ValueExpression act = actual.getEditExpression();
assertEquals(exp.eClass(), act.eClass());
assertEquals(exp.getBody(), act.getBody());
assertEquals(exp.getLangName(), act.getLangName());
if (exp.getProvider() != null) {
assertNotNull(act.getProvider());
} else {
assertNull(act.getProvider());
}
if (exp.eClass().equals(GMFGenPackage.eINSTANCE.getGenConstraint())) {
}
}
}
private void testExternalParser(ExternalParser expected, ExternalParser actual) {
assertEquals(expected.getHint(), actual.getHint());
}
public void testPalette() {
Palette expected = expectedGenerator.getDiagram().getPalette();
Palette actual = actualGenerator.getDiagram().getPalette();
assertNotNull("Expected Palette should not be null", expected);
assertNotNull("Actual Palette should not be null", actual);
assertEquals(expected.getFactoryClassName(), actual.getFactoryClassName());
assertEquals(expected.isFlyout(), actual.isFlyout());
assertEquals(expected.getPackageName(), actual.getPackageName());
assertEquals(expected.getGroups().size(), actual.getGroups().size());
for (int i=0; i<expected.getGroups().size(); i++) {
ToolGroup exp = expected.getGroups().get(i);
ToolGroup act = actual.getGroups().get(i);
testToolGroup(exp, act);
}
}
private void testToolGroup(ToolGroup expected, ToolGroup actual) {
assertEquals(expected.getId(), actual.getId());
assertEquals(expected.getDescription(), actual.getDescription());
assertEquals(expected.getTitle(), actual.getTitle());
assertEquals(expected.getLargeIconPath(), actual.getLargeIconPath());
assertEquals(expected.getSmallIconPath(), actual.getSmallIconPath());
assertEquals(expected.getCreateMethodName(), actual.getCreateMethodName());
assertEquals(expected.isCollapse(), actual.isCollapse());
assertEquals(expected.isStack(), actual.isStack());
assertEquals(expected.isToolsOnly(), actual.isToolsOnly());
assertEquals(expected.getEntries().size(), actual.getEntries().size());
for (int i = 0; i < expected.getEntries().size(); i++) {
ToolGroupItem exp = expected.getEntries().get(i);
ToolGroupItem act = actual.getEntries().get(i);
if (exp instanceof AbstractToolEntry) {
testAbstractToolEntry((AbstractToolEntry)exp, (AbstractToolEntry)act);
}
}
}
private void testAbstractToolEntry(AbstractToolEntry expected, AbstractToolEntry actual) {
assertEquals(expected.eClass(), actual.eClass());
assertEquals(expected.getCreateMethodName(), actual.getCreateMethodName());
assertEquals(expected.getId(), actual.getId());
assertEquals(expected.getDescription(), actual.getDescription());
assertEquals(expected.getTitle(), actual.getTitle());
assertEquals(expected.getLargeIconPath(), actual.getLargeIconPath());
assertEquals(expected.getSmallIconPath(), actual.getSmallIconPath());
assertEquals(expected.isDefault(), actual.isDefault());
assertEquals(expected.getQualifiedToolName(), actual.getQualifiedToolName());
assertEquals(expected.getProperties().size(), actual.getProperties().size());
for (int i=0; i<expected.getProperties().size(); i++) {
Entry<String, String> exp = expected.getProperties().get(i);
Entry<String, String> act = actual.getProperties().get(i);
assertEquals(exp.getKey(), act.getKey());
assertEquals(exp.getKey(), act.getValue());
}
if (expected.eClass().equals(GMFGenPackage.eINSTANCE.getStandardEntry())) {
testStandardEntry((StandardEntry) expected, (StandardEntry) actual);
} else if (expected.eClass().equals(GMFGenPackage.eINSTANCE.getToolEntry())) {
testToolEntry((ToolEntry) expected, (ToolEntry) actual);
}
}
private void testStandardEntry(StandardEntry expected, StandardEntry actual) {
assertEquals(expected.getKind().getLiteral(), actual.getKind().getLiteral());
}
private void testToolEntry(ToolEntry expected, ToolEntry actual) {
assertEquals(expected.getElements().size(), actual.getElements().size());
for (int i=0; i<expected.getElements().size(); i++) {
GenCommonBase exp = expected.getElements().get(i);
GenCommonBase act = expected.getElements().get(i);
assertEquals(exp.eClass(), act.eClass());
assertEquals(exp.getVisualID(), act.getVisualID());
assertEquals(exp.getUniqueIdentifier(), act.getUniqueIdentifier());
}
assertEquals(expected.getGenLinks().size(), actual.getGenLinks().size());
for (int i=0; i<expected.getGenLinks().size(); i++) {
GenLink exp = expected.getGenLinks().get(i);
GenLink act = expected.getGenLinks().get(i);
assertEquals(exp.eClass(), act.eClass());
assertEquals(exp.getVisualID(), act.getVisualID());
assertEquals(exp.getUniqueIdentifier(), act.getUniqueIdentifier());
}
assertEquals(expected.getGenNodes().size(), actual.getGenNodes().size());
for (int i=0; i<expected.getGenNodes().size(); i++) {
GenNode exp = expected.getGenNodes().get(i);
GenNode act = expected.getGenNodes().get(i);
assertEquals(exp.eClass(), act.eClass());
assertEquals(exp.getVisualID(), act.getVisualID());
assertEquals(exp.getUniqueIdentifier(), act.getUniqueIdentifier());
}
}
public void testGenAuditRoot() {
GenAuditRoot expected = expectedGenerator.getAudits();
GenAuditRoot actual = actualGenerator.getAudits();
testGenAuditContainers(expected.getCategories(), actual.getCategories());
}
public void testGenPreferencePages() {
EList<GenPreferencePage> expected = expectedGenerator.getDiagram().getPreferencePages();
EList<GenPreferencePage> actual = actualGenerator.getDiagram().getPreferencePages();
assertEquals(expected.size(), actual.size());
for (int i=0; i<expected.size(); i++) {
GenPreferencePage exp = expected.get(i);
GenPreferencePage act = actual.get(i);
assertEquals(exp.eClass(), act.eClass());
assertEquals(exp.getID(), act.getID());
assertEquals(exp.getName(), act.getName());
assertEquals(exp.getClassName(), act.getClassName());
assertEquals(exp.getParentCategory(), act.getParentCategory());
assertEquals(exp.getQualifiedClassName(), act.getQualifiedClassName());
if (exp.eClass().equals(GMFGenPackage.eINSTANCE.getGenCustomPreferencePage())) {
assertEquals((GenCustomPreferencePage)exp, (GenCustomPreferencePage)act);
} else if (exp.eClass().equals(GMFGenPackage.eINSTANCE.getGenStandardPreferencePage())) {
assertEquals((GenStandardPreferencePage)exp, (GenStandardPreferencePage)act);
}
}
}
private void assertEquals(GenCustomPreferencePage expected, GenCustomPreferencePage actual) {
assertEquals(expected.isGenerateBoilerplate(), actual.isGenerateBoilerplate());
assertEquals(expected.getQualifiedClassName(), actual.getQualifiedClassName());
}
private void assertEquals(GenStandardPreferencePage expected, GenStandardPreferencePage actual) {
assertEquals(expected.getClassName(), actual.getClassName());
assertEquals(expected.getKind().getLiteral(), actual.getKind().getLiteral());
}
protected void testGenAuditContainers(EList<GenAuditContainer> expected, EList<GenAuditContainer> actual) {
assertEquals(expected.size(), actual.size());
for (int i=0; i<expected.size(); i++) {
GenAuditContainer exp = expected.get(i);
GenAuditContainer act = actual.get(i);
assertEquals(exp.getId(), act.getId());
assertEquals(exp.getDescription(), act.getDescription());
assertEquals(exp.getName(), act.getName());
assertEquals(exp.getPath().size(), act.getPath().size());
}
}
protected void testGenAuditRules(EList<GenAuditRule> expected, EList<GenAuditRule> actual) {
assertEquals(expected.size(), actual.size());
for (int i=0; i<expected.size(); i++) {
GenAuditRule exp = expected.get(i);
GenAuditRule act = actual.get(i);
assertEquals(exp.getId(), act.getId());
assertEquals(exp.getDescription(), act.getDescription());
assertEquals(exp.getMessage(), act.getMessage());
assertEquals(exp.getName(), act.getName());
assertEquals(exp.isRequiresConstraintAdapter(), act.isRequiresConstraintAdapter());
assertEquals(exp.getSeverity().getLiteral(), act.getSeverity().getLiteral());
assertEquals(exp.isUseInLiveMode(), act.isUseInLiveMode());
GenAuditable expAuditable = exp.getTarget();
GenAuditable actAuditable = act.getTarget();
assertEquals(expAuditable.eClass(), actAuditable.eClass());
assertEquals(expAuditable.getTargetClassModelQualifiedName(), actAuditable.getTargetClassModelQualifiedName());
assertEquals(expAuditable.getTargetClass(), actAuditable.getTargetClass());
assertEquals(expAuditable.getContext(), actAuditable.getContext());
if (expAuditable.eClass().equals(GMFGenPackage.eINSTANCE.getGenDomainAttributeTarget())) {
assertEquals((GenDomainAttributeTarget) expAuditable, (GenDomainAttributeTarget) actAuditable);
} else if (expAuditable.eClass().equals(GMFGenPackage.eINSTANCE.getGenDomainElementTarget())) {
assertEquals((GenDomainElementTarget) expAuditable, (GenDomainElementTarget) actAuditable);
} else if (expAuditable.eClass().equals(GMFGenPackage.eINSTANCE.getGenNotationElementTarget())) {
assertEquals((GenNotationElementTarget) expAuditable, (GenNotationElementTarget) actAuditable);
}
}
}
private void assertEquals(GenDomainAttributeTarget expected, GenDomainAttributeTarget actual) {
assertEquals(expected.isNullAsError(), actual.isNullAsError());
assertEquals(expected.getAttribute(), actual.getAttribute());
}
private void assertEquals(GenDomainElementTarget expected, GenDomainElementTarget actual) {
assertEquals(expected.getElement(), actual.getElement());
}
private void assertEquals(GenNotationElementTarget expected, GenNotationElementTarget actual) {
assertEquals(expected.getElement(), actual.getElement());
}
protected void testBehaviours(EList<Behaviour> expected, EList<Behaviour> actual) {
assertEquals(expected.size(), actual.size());
for (int i=0; i<expected.size(); i++) {
Behaviour exp = expected.get(i);
Behaviour act = actual.get(i);
assertEquals(exp.eClass(), act.eClass());
assertEquals(exp.getEditPolicyQualifiedClassName(), act.getEditPolicyQualifiedClassName());
assertEquals(exp.getSubject().getUniqueIdentifier(), act.getSubject().getUniqueIdentifier());
if (exp.eClass().equals(GMFGenPackage.eINSTANCE.getOpenDiagramBehaviour())) {
assertEquals((OpenDiagramBehaviour)exp, (OpenDiagramBehaviour)act);
} else if (exp.eClass().equals(GMFGenPackage.eINSTANCE.getSharedBehaviour())) {
assertEquals((SharedBehaviour)exp, (SharedBehaviour)act);
}
}
}
protected void assertEquals(OpenDiagramBehaviour expected, OpenDiagramBehaviour actual) {
assertEquals(expected.getDiagramKind(), actual.getDiagramKind());
assertEquals(expected.getEditorID(), actual.getEditorID());
assertEquals(expected.getEditPolicyClassName(), actual.getEditPolicyClassName());
}
protected void assertEquals(SharedBehaviour expected, SharedBehaviour actual) {
assertEquals(expected.getDelegate().getSubject().getUniqueIdentifier(), actual.getDelegate().getSubject().getUniqueIdentifier());
}
protected void testElementType(ElementType expected, ElementType actual) {
if (expected == null) {
assertNull(actual);
} else {
assertNotNull(actual);
assertEquals(expected.eClass(), actual.eClass());
assertEquals(expected.getDisplayName(), actual.getDisplayName());
assertEquals(expected.getUniqueIdentifier(), actual.getUniqueIdentifier());
assertEquals(expected.getDiagramElement().getUniqueIdentifier(), actual.getDiagramElement().getUniqueIdentifier());
}
}
protected void testViewmap(Viewmap expected, Viewmap actual) {
assertNotNull(expected);
assertNotNull(actual);
assertEquals(expected.eClass(), actual.eClass());
assertEquals(expected.getLayoutType(), actual.getLayoutType());
assertEquals(expected.getRequiredPluginIDs().size(), actual.getRequiredPluginIDs().size());
for (int i=0; i<expected.getRequiredPluginIDs().size(); i++) {
String exp = expected.getRequiredPluginIDs().get(i);
String act = expected.getRequiredPluginIDs().get(i);
assertEquals(exp, act);
}
List<String> actualPluginsIDs = actual.getRequiredPluginIDs();
for (int i=0; i<expected.getRequiredPluginIDs().size(); i++) {
String exp = expected.getRequiredPluginIDs().get(i);
assertTrue(actualPluginsIDs.contains(exp));
}
EList<Attributes> expAttributes = expected.getAttributes();
EList<Attributes> actAttributes = actual.getAttributes();
assertEquals(expAttributes.size(), actAttributes.size());
for (int j=0; j<expAttributes.size(); j++) {
Attributes expAttr = expAttributes.get(j);
Attributes actAttr = actAttributes.get(j);
testAttributes(expAttr, actAttr);
}
if (expected.eClass().equals(GMFGenPackage.eINSTANCE.getFigureViewmap())) {
assertEquals((FigureViewmap)expected, (FigureViewmap)actual);
} else if (expected.eClass().equals(GMFGenPackage.eINSTANCE.getSnippetViewmap())) {
assertEquals((SnippetViewmap)expected, (SnippetViewmap)actual);
} else if (expected.eClass().equals(GMFGenPackage.eINSTANCE.getInnerClassViewmap())) {
assertEquals((InnerClassViewmap)expected, (InnerClassViewmap)actual);
} else if (expected.eClass().equals(GMFGenPackage.eINSTANCE.getParentAssignedViewmap())) {
assertEquals((ParentAssignedViewmap)expected, (ParentAssignedViewmap)actual);
} else if (expected.eClass().equals(GMFGenPackage.eINSTANCE.getModeledViewmap())) {
assertEquals((ModeledViewmap)expected, (ModeledViewmap)actual);
}
}
protected void assertEquals(ModeledViewmap expected, ModeledViewmap actual) {
assertEquals(expected.getFigureModel(), actual.getFigureModel());
}
protected void assertEquals(ParentAssignedViewmap expected, ParentAssignedViewmap actual) {
assertEquals(expected.getFigureQualifiedClassName(), actual.getFigureQualifiedClassName());
assertEquals(expected.getGetterName(), actual.getGetterName());
assertEquals(expected.getSetterName(), actual.getSetterName());
}
protected void assertEquals(InnerClassViewmap expected, InnerClassViewmap actual) {
assertEquals(expected.getClassBody(), actual.getClassBody());
assertEquals(expected.getClassName(), actual.getClassName());
}
protected void assertEquals(SnippetViewmap expected, SnippetViewmap actual) {
assertEquals(expected.getBody(), actual.getBody());
}
protected void assertEquals(FigureViewmap expected, FigureViewmap actual) {
assertEquals(expected.getFigureQualifiedClassName(), actual.getFigureQualifiedClassName());
}
protected void testAttributes(Attributes expected, Attributes actual) {
assertNotNull(expected);
assertNotNull(actual);
assertEquals(expected.eClass(), actual.eClass());
if (expected.eClass().equals(GMFGenPackage.eINSTANCE.getColorAttributes())) {
assertEquals((ColorAttributes) expected, (ColorAttributes) actual);
} else if (expected.eClass().equals(GMFGenPackage.eINSTANCE.getStyleAttributes())) {
assertEquals((StyleAttributes) expected, (StyleAttributes) actual);
} else if (expected.eClass().equals(GMFGenPackage.eINSTANCE.getResizeConstraints())) {
assertEquals((ResizeConstraints) expected, (ResizeConstraints) actual);
} else if (expected.eClass().equals(GMFGenPackage.eINSTANCE.getDefaultSizeAttributes())) {
assertEquals((DefaultSizeAttributes) expected, (DefaultSizeAttributes) actual);
} else if (expected.eClass().equals(GMFGenPackage.eINSTANCE.getLabelOffsetAttributes())) {
assertEquals((LabelOffsetAttributes) expected, (LabelOffsetAttributes) actual);
} else {
throw new IllegalArgumentException("EClass not found");
}
}
protected void assertEquals(ColorAttributes expected, ColorAttributes actual) {
assertEquals(expected.getBackgroundColor(), actual.getBackgroundColor());
assertEquals(expected.getForegroundColor(), actual.getForegroundColor());
}
protected void assertEquals(StyleAttributes expected, StyleAttributes actual) {
assertEquals(expected.isFixedBackground(), actual.isFixedBackground());
assertEquals(expected.isFixedFont(), actual.isFixedFont());
assertEquals(expected.isFixedForeground(), actual.isFixedForeground());
}
protected void assertEquals(ResizeConstraints expected, ResizeConstraints actual) {
assertEquals(expected.getNonResizeHandles(), actual.getNonResizeHandles());
assertEquals(expected.getResizeHandles(), actual.getResizeHandles());
assertEquals(expected.getResizeHandleNames().size(), actual.getResizeHandleNames().size());
for (int i=0; i<expected.getResizeHandleNames().size(); i++) {
String exp = expected.getResizeHandleNames().get(i);
String act = actual.getResizeHandleNames().get(i);
assertEquals(exp, act);
}
assertEquals(expected.getNonResizeHandleNames().size(), actual.getNonResizeHandleNames().size());
for (int i=0; i<expected.getNonResizeHandleNames().size(); i++) {
String exp = expected.getNonResizeHandleNames().get(i);
String act = actual.getNonResizeHandleNames().get(i);
assertEquals(exp, act);
}
}
protected void assertEquals(DefaultSizeAttributes expected, DefaultSizeAttributes actual) {
assertEquals(expected.getHeight(), actual.getHeight());
assertEquals(expected.getWidth(), actual.getWidth());
}
protected void assertEquals(LabelOffsetAttributes expected, LabelOffsetAttributes actual) {
assertEquals(expected.getX(), actual.getX());
assertEquals(expected.getY(), actual.getY());
}
private GenCompartment findCompartment(GenCompartment expected, EList<GenCompartment> compartments) {
for (GenCompartment actual: compartments) {
if (actual.getUniqueIdentifier().equals(expected.getUniqueIdentifier())) {
return actual;
}
}
return null;
}
protected IProject createProject() {
String projectName = "TransformToGenModelOperationTest_" + String.valueOf(System.currentTimeMillis()); //$NON-NLS-1$
IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
assertFalse("Project with this name already present in the workspace: " + projectName, project.exists());
try {
project.create(new NullProgressMonitor());
project.open(new NullProgressMonitor());
} catch (CoreException e) {
fail(e.getMessage());
}
assertTrue("Project was not created: " + projectName, project.exists());
return project;
}
protected void deleteProject() throws CoreException {
if (getProject() != null) {
if (getProject().isOpen()) {
getProject().close(new NullProgressMonitor());
}
if (getProject().exists()) {
getProject().delete(true, new NullProgressMonitor());
}
}
}
protected IProject getProject() {
return myProject;
}
}