| /* |
| * Copyright (c) 2011-2013 Eike Stepper (Berlin, Germany) and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * Martin Fluegge - initial API and implementation |
| */ |
| package org.eclipse.emf.cdo.dawn.tests.bugzillas; |
| |
| import org.eclipse.emf.cdo.dawn.tests.AbstractDawnGEFTest; |
| import org.eclipse.emf.cdo.dawn.tests.ui.util.DawnEcoreTestUtil; |
| import org.eclipse.emf.cdo.eresource.CDOResource; |
| import org.eclipse.emf.cdo.session.CDOSession; |
| import org.eclipse.emf.cdo.transaction.CDOTransaction; |
| import org.eclipse.emf.cdo.view.CDOView; |
| |
| import org.eclipse.emf.common.util.EList; |
| import org.eclipse.emf.common.util.URI; |
| import org.eclipse.emf.ecore.EAnnotation; |
| import org.eclipse.emf.ecore.EAttribute; |
| import org.eclipse.emf.ecore.EClass; |
| import org.eclipse.emf.ecore.EClassifier; |
| import org.eclipse.emf.ecore.EObject; |
| import org.eclipse.emf.ecore.EOperation; |
| import org.eclipse.emf.ecore.EPackage; |
| import org.eclipse.emf.ecore.impl.EDataTypeImpl; |
| import org.eclipse.emf.ecore.impl.EEnumImpl; |
| import org.eclipse.emf.ecore.resource.ResourceSet; |
| import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; |
| |
| import org.eclipse.gmf.runtime.notation.Diagram; |
| import org.eclipse.swtbot.eclipse.gef.finder.widgets.SWTBotGefEditPart; |
| import org.eclipse.swtbot.eclipse.gef.finder.widgets.SWTBotGefEditor; |
| import org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner; |
| import org.eclipse.swtbot.swt.finder.widgets.SWTBotShell; |
| import org.eclipse.swtbot.swt.finder.widgets.SWTBotText; |
| import org.eclipse.swtbot.swt.finder.widgets.SWTBotTree; |
| |
| import org.junit.Test; |
| import org.junit.runner.RunWith; |
| |
| import java.util.List; |
| |
| /** |
| * @author Martin Fluegge |
| */ |
| @RunWith(SWTBotJunit4ClassRunner.class) |
| public class Bugzilla_333187_Test extends AbstractDawnGEFTest |
| { |
| private static final String DOMAIN_FILE_NAME = "Domain file name: "; |
| |
| @Test |
| public void testCreateNewEcoreToolsDiagram() throws Exception |
| { |
| getBot().menu("File").menu("New").menu("Other...").click(); |
| |
| SWTBotShell shell = getBot().shell("New"); |
| shell.activate(); |
| getBot().tree().expandNode("Dawn Examples").select(DawnEcoreTestUtil.CREATION_WIZARD_NAME_GMF); |
| getBot().button("Next >").click(); |
| sleep(1000); |
| getBot().button("Finish").click(); |
| SWTBotGefEditor editor = getBot().gefEditor("default"); |
| assertNotNull(editor); |
| editor.close(); |
| { |
| assertEquals(true, resourceExists("/default.ecore")); |
| assertEquals(true, resourceExists("/default.ecorediag")); |
| } |
| } |
| |
| @Test |
| public void testCreateNewEcoreDiagramWrongResourceName() throws Exception |
| { |
| getBot().menu("File").menu("New").menu("Other...").click(); |
| |
| SWTBotShell shell = getBot().shell("New"); |
| shell.activate(); |
| getBot().tree().expandNode("Dawn Examples").select(DawnEcoreTestUtil.CREATION_WIZARD_NAME_GMF); |
| getBot().button("Next >").click(); |
| sleep(6000); |
| shell = getBot().shell("New Ecore Diagram"); |
| shell.activate(); |
| |
| SWTBotText fileNameLabel = getBot().textWithLabel(DOMAIN_FILE_NAME); |
| fileNameLabel.setText(""); |
| |
| fileNameLabel.setFocus(); |
| fileNameLabel.typeText("x", 500); |
| assertEquals(false, getBot().button("Next >").isEnabled()); |
| getBot().button("Cancel").click(); |
| } |
| |
| @Test |
| public void testCreateNewEcoreDiagramChangeResourceName() throws Exception |
| { |
| getBot().menu("File").menu("New").menu("Other...").click(); |
| |
| SWTBotShell shell = getBot().shell("New"); |
| shell.activate(); |
| getBot().tree().expandNode("Dawn Examples").select(DawnEcoreTestUtil.CREATION_WIZARD_NAME_GMF); |
| getBot().button("Next >").click(); |
| sleep(6000); |
| shell = getBot().shell("New Ecore Diagram"); |
| shell.activate(); |
| |
| SWTBotText fileNameLabel = getBot().textWithLabel(DOMAIN_FILE_NAME); |
| fileNameLabel.setText(""); |
| |
| fileNameLabel.setFocus(); |
| fileNameLabel.typeText("default2.ecore", 50); |
| |
| assertEquals(true, getBot().button("Finish").isEnabled()); |
| |
| getBot().button("Finish").click(); |
| SWTBotGefEditor editor = getBot().gefEditor("default2"); |
| assertNotNull(editor); |
| editor.close(); |
| { |
| assertEquals(true, resourceExists("/default2.ecore")); |
| assertEquals(true, resourceExists("/default2.ecorediag")); |
| } |
| } |
| |
| @Test |
| public void testCreateNewEcoreDiagramSetResourceInDialog() throws Exception |
| { |
| getBot().menu("File").menu("New").menu("Other...").click(); |
| |
| SWTBotShell shell = getBot().shell("New"); |
| shell.activate(); |
| getBot().tree().expandNode("Dawn Examples").select(DawnEcoreTestUtil.CREATION_WIZARD_NAME_GMF); |
| getBot().button("Next >").click(); |
| |
| shell = getBot().shell("New Ecore Diagram"); |
| shell.activate(); |
| |
| getBot().button("Browse...").click(); |
| |
| // activate the selection window |
| // shell = getBot().shells()[3]; |
| // shell.activate(); |
| |
| SWTBotText fileNameLabel = getBot().textWithLabel("Resource name:"); |
| fileNameLabel.setText("test.ecore"); |
| getBot().button("OK").click(); |
| |
| SWTBotText fileSemanticNameLabel = getBot().textWithLabel(DOMAIN_FILE_NAME); |
| assertEquals("test.ecore", fileSemanticNameLabel.getText()); |
| |
| getBot().button("Finish").click(); |
| |
| SWTBotGefEditor editor = getBot().gefEditor("test"); |
| assertNotNull(editor); |
| editor.close(); |
| |
| { |
| assertEquals(true, resourceExists("/test.ecore")); |
| assertEquals(true, resourceExists("/test.ecorediag")); |
| } |
| } |
| |
| @Test |
| public void testCreateNewEcoreDiagramSetResourceInDialogAndSelectFolder() throws Exception |
| { |
| { |
| CDOSession session = openSession(); |
| ResourceSet resourceSet = new ResourceSetImpl(); |
| CDOTransaction transaction = session.openTransaction(resourceSet); |
| |
| final URI uri = URI.createURI("cdo:/folder/dummy"); |
| resourceSet.createResource(uri); |
| transaction.commit(); |
| } |
| |
| getBot().menu("File").menu("New").menu("Other...").click(); |
| |
| SWTBotShell shell = getBot().shell("New"); |
| shell.activate(); |
| getBot().tree().expandNode("Dawn Examples").select(DawnEcoreTestUtil.CREATION_WIZARD_NAME_GMF); |
| getBot().button("Next >").click(); |
| |
| shell = getBot().shell("New Ecore Diagram"); |
| shell.activate(); |
| |
| getBot().button("Browse...").click(); |
| |
| SWTBotTree tree = getBot().tree(0); |
| selectFolder(tree.getAllItems(), "folder", false); |
| |
| SWTBotText fileNameLabel = getBot().textWithLabel("Resource name:"); |
| fileNameLabel.setText("test.ecore"); |
| getBot().button("OK").click(); |
| |
| SWTBotText resourcePathLabel = getBot().text(0); |
| assertEquals("cdo://repo1/folder/", resourcePathLabel.getText()); |
| |
| SWTBotText fileSemanticNameLabel = getBot().textWithLabel(DOMAIN_FILE_NAME); |
| assertEquals("test.ecore", fileSemanticNameLabel.getText()); |
| |
| getBot().button("Finish").click(); |
| SWTBotGefEditor editor = getBot().gefEditor("test"); |
| assertNotNull(editor); |
| editor.close(); |
| |
| { |
| assertEquals(true, resourceExists("/folder/test.ecore")); |
| assertEquals(true, resourceExists("/folder/test.ecorediag")); |
| } |
| } |
| |
| @Test |
| public void testCreateNewEcoreToolsDiagramAndAddElements() throws Exception |
| { |
| SWTBotGefEditor editor = DawnEcoreTestUtil.openNewEcoreToolsEditor("default.ecore", getBot()); |
| assertNotNull(editor); |
| |
| createNodeWithLabel(DawnEcoreTestUtil.E_CLASS, 100, 100, "A", getBot(), editor); |
| createNodeWithLabel(DawnEcoreTestUtil.E_CLASS, 250, 100, "B", getBot(), editor); |
| createNodeWithLabel(DawnEcoreTestUtil.E_CLASS, 150, 250, "C", getBot(), editor); |
| |
| editor.saveAndClose(); |
| |
| { |
| CDOSession session = openSession(); |
| CDOView view = session.openView(); |
| |
| CDOResource diagramResource = view.getResource("/default.ecorediag"); |
| CDOResource semanticResource = view.getResource("/default.ecore"); |
| |
| assertNotNull(diagramResource); |
| assertNotNull(semanticResource); |
| Diagram diagram = (Diagram)diagramResource.getContents().get(0); |
| EPackage epackage = (EPackage)semanticResource.getContents().get(0); |
| |
| assertEquals(3, diagram.getChildren().size()); |
| assertEquals(3, epackage.getEClassifiers().size()); |
| |
| Character name = 'A'; |
| |
| for (EClassifier aClass : epackage.getEClassifiers()) |
| { |
| assertEquals(name.toString(), aClass.getName()); |
| name++; |
| } |
| } |
| } |
| |
| @Test |
| public void testCreateNewDawnDiagramAndAddElementsWithEdges() throws Exception |
| { |
| SWTBotGefEditor editor = DawnEcoreTestUtil.openNewEcoreToolsEditor("default.ecore", getBot()); |
| assertNotNull(editor); |
| |
| createNodeWithLabel(DawnEcoreTestUtil.E_CLASS, 100, 100, "A", getBot(), editor); |
| createNodeWithLabel(DawnEcoreTestUtil.E_CLASS, 250, 100, "B", getBot(), editor); |
| createNodeWithLabel(DawnEcoreTestUtil.E_CLASS, 150, 250, "C", getBot(), editor); |
| |
| createEdge(DawnEcoreTestUtil.E_REFERENCE, 100, 100, 250, 100, editor); |
| createEdge(DawnEcoreTestUtil.E_REFERENCE, 100, 100, 150, 250, editor); |
| |
| List<SWTBotGefEditPart> connectionEditParts = DawnEcoreTestUtil.getAllTargetConnections(editor); |
| |
| assertEquals(2, connectionEditParts.size()); |
| |
| editor.save(); |
| |
| { |
| CDOSession session = openSession(); |
| CDOView view = session.openView(); |
| |
| CDOResource diagramResource = view.getResource("/default.ecorediag"); |
| |
| CDOResource semanticResource = view.getResource("/default.ecore"); |
| |
| assertNotNull(diagramResource); |
| assertNotNull(semanticResource); |
| |
| Diagram diagram = (Diagram)diagramResource.getContents().get(0); |
| EPackage epackage = (EPackage)semanticResource.getContents().get(0); |
| |
| assertEquals(3, diagram.getChildren().size()); |
| assertEquals(3, epackage.getEClassifiers().size()); |
| |
| Character name = 'A'; |
| |
| for (EClassifier aClass : epackage.getEClassifiers()) |
| { |
| assertEquals(name.toString(), aClass.getName()); |
| name++; |
| } |
| view.close(); |
| } |
| } |
| |
| @Test |
| public void testEClassChangeName() throws Exception |
| { |
| SWTBotGefEditor editor = DawnEcoreTestUtil.openNewEcoreToolsEditor("default.ecore", getBot()); |
| assertNotNull(editor); |
| |
| createNodeWithLabel(DawnEcoreTestUtil.E_CLASS, 100, 100, "A", getBot(), editor); |
| |
| editor.save(); |
| { |
| CDOSession session = openSession(); |
| CDOView view = session.openView(); |
| |
| CDOResource semanticResource = view.getResource("/default.ecore"); |
| |
| EPackage epackage = (EPackage)semanticResource.getContents().get(0); |
| |
| assertEquals(1, epackage.getEClassifiers().size()); |
| |
| EClassifier eClassifier = epackage.getEClassifiers().get(0); |
| |
| assertEquals("A", eClassifier.getName()); |
| |
| session.close(); |
| } |
| |
| typeTextToFocusedWidget("B", getBot(), true); |
| editor.save(); |
| |
| { |
| CDOSession session = openSession(); |
| CDOView view = session.openView(); |
| |
| CDOResource semanticResource = view.getResource("/default.ecore"); |
| |
| EPackage epackage = (EPackage)semanticResource.getContents().get(0); |
| |
| assertEquals(1, epackage.getEClassifiers().size()); |
| |
| EClassifier eClassifier = epackage.getEClassifiers().get(0); |
| |
| assertEquals("B", eClassifier.getName()); |
| |
| session.close(); |
| } |
| } |
| |
| @Test |
| public void testEClassWithEAttributes() throws Exception |
| { |
| SWTBotGefEditor editor = DawnEcoreTestUtil.openNewEcoreToolsEditor("default.ecore", getBot()); |
| assertNotNull(editor); |
| |
| createNodeWithLabel(DawnEcoreTestUtil.E_CLASS, 100, 100, "A", getBot(), editor); |
| |
| editor.save(); |
| |
| editor.activateTool(DawnEcoreTestUtil.E_ATTRIBUTE); |
| editor.click(100, 100); |
| typeTextToFocusedWidget("name", getBot(), true); |
| editor.save(); |
| { |
| CDOSession session = openSession(); |
| CDOView view = session.openView(); |
| |
| CDOResource diagramResource = view.getResource("/default.ecorediag"); |
| CDOResource semanticResource = view.getResource("/default.ecore"); |
| |
| assertNotNull(diagramResource); |
| assertNotNull(semanticResource); |
| |
| EPackage epackage = (EPackage)semanticResource.getContents().get(0); |
| |
| EClass eClass = (EClass)epackage.getEClassifiers().get(0); |
| |
| assertEquals("A", eClass.getName()); |
| EList<EAttribute> eAttributes = eClass.getEAttributes(); |
| assertEquals(1, eAttributes.size()); |
| assertEquals("name", eAttributes.get(0).getName()); |
| } |
| } |
| |
| @Test |
| public void testEClassWithEOperation() throws Exception |
| { |
| SWTBotGefEditor editor = DawnEcoreTestUtil.openNewEcoreToolsEditor("default.ecore", getBot()); |
| assertNotNull(editor); |
| |
| createNodeWithLabel(DawnEcoreTestUtil.E_CLASS, 100, 100, "A", getBot(), editor); |
| |
| editor.save(); |
| |
| editor.activateTool(DawnEcoreTestUtil.E_OPERATION); |
| editor.click(100, 100); |
| typeTextToFocusedWidget("operation", getBot(), true); |
| editor.save(); |
| { |
| CDOSession session = openSession(); |
| CDOView view = session.openView(); |
| |
| CDOResource semanticResource = view.getResource("/default.ecore"); |
| |
| EPackage epackage = (EPackage)semanticResource.getContents().get(0); |
| |
| EClass eClass = (EClass)epackage.getEClassifiers().get(0); |
| |
| assertEquals("A", eClass.getName()); |
| EList<EOperation> eOperations = eClass.getEOperations(); |
| assertEquals(1, eOperations.size()); |
| assertEquals("operation", eOperations.get(0).getName()); |
| } |
| } |
| |
| @Test |
| public void testDiagramWithInheritance() throws Exception |
| { |
| SWTBotGefEditor editor = DawnEcoreTestUtil.openNewEcoreToolsEditor("default.ecore", getBot()); |
| assertNotNull(editor); |
| |
| createNodeWithLabel(DawnEcoreTestUtil.E_CLASS, 100, 100, "A", getBot(), editor); |
| createNodeWithLabel(DawnEcoreTestUtil.E_CLASS, 250, 100, "B", getBot(), editor); |
| createNodeWithLabel(DawnEcoreTestUtil.E_CLASS, 150, 250, "C", getBot(), editor); |
| |
| createEdge(DawnEcoreTestUtil.INHERITANCE, 100, 100, 250, 100, editor); |
| createEdge(DawnEcoreTestUtil.INHERITANCE, 100, 100, 150, 250, editor); |
| |
| List<SWTBotGefEditPart> connectionEditParts = DawnEcoreTestUtil.getAllTargetConnections(editor); |
| |
| assertEquals(2, connectionEditParts.size()); |
| editor.save(); |
| |
| { |
| CDOSession session = openSession(); |
| CDOView view = session.openView(); |
| |
| CDOResource diagramResource = view.getResource("/default.ecorediag"); |
| |
| CDOResource semanticResource = view.getResource("/default.ecore"); |
| |
| assertNotNull(diagramResource); |
| assertNotNull(semanticResource); |
| |
| Diagram diagram = (Diagram)diagramResource.getContents().get(0); |
| EPackage epackage = (EPackage)semanticResource.getContents().get(0); |
| |
| assertEquals(3, diagram.getChildren().size()); |
| assertEquals(3, epackage.getEClassifiers().size()); |
| |
| EClass eClass1 = (EClass)epackage.getEClassifiers().get(0); |
| EClass eClass2 = (EClass)epackage.getEClassifiers().get(1); |
| EClass eClass3 = (EClass)epackage.getEClassifiers().get(2); |
| |
| assertEquals(eClass2, eClass1.getEAllSuperTypes().get(0)); |
| assertEquals(eClass3, eClass1.getEAllSuperTypes().get(1)); |
| |
| view.close(); |
| } |
| } |
| |
| @Test |
| public void testEDataType() throws Exception |
| { |
| SWTBotGefEditor editor = DawnEcoreTestUtil.openNewEcoreToolsEditor("default.ecore", getBot()); |
| assertNotNull(editor); |
| |
| createNodeWithLabel(DawnEcoreTestUtil.E_DATATYPE, 100, 100, "A", getBot(), editor); |
| createNodeWithLabel(DawnEcoreTestUtil.E_DATATYPE, 250, 100, "B", getBot(), editor); |
| createNodeWithLabel(DawnEcoreTestUtil.E_DATATYPE, 150, 250, "C", getBot(), editor); |
| editor.saveAndClose(); |
| |
| { |
| CDOSession session = openSession(); |
| CDOView view = session.openView(); |
| |
| CDOResource diagramResource = view.getResource("/default.ecorediag"); |
| CDOResource semanticResource = view.getResource("/default.ecore"); |
| |
| assertNotNull(diagramResource); |
| assertNotNull(semanticResource); |
| |
| Diagram diagram = (Diagram)diagramResource.getContents().get(0); |
| EPackage epackage = (EPackage)semanticResource.getContents().get(0); |
| |
| assertEquals(3, diagram.getChildren().size()); |
| assertEquals(3, epackage.getEClassifiers().size()); |
| |
| Character name = 'A'; |
| |
| for (EClassifier eType : epackage.getEClassifiers()) |
| { |
| assertEquals(EDataTypeImpl.class, eType.getClass()); |
| assertEquals(name.toString(), eType.getName()); |
| name++; |
| } |
| } |
| } |
| |
| @Test |
| public void testEAnnotation() throws Exception |
| { |
| SWTBotGefEditor editor = DawnEcoreTestUtil.openNewEcoreToolsEditor("default.ecore", getBot()); |
| assertNotNull(editor); |
| |
| createNodeWithLabel(DawnEcoreTestUtil.E_ANNOTATION, 100, 100, "A", getBot(), editor); |
| createNodeWithLabel(DawnEcoreTestUtil.E_ANNOTATION, 250, 100, "B", getBot(), editor); |
| createNodeWithLabel(DawnEcoreTestUtil.E_ANNOTATION, 150, 250, "C", getBot(), editor); |
| editor.saveAndClose(); |
| |
| { |
| CDOSession session = openSession(); |
| CDOView view = session.openView(); |
| |
| CDOResource diagramResource = view.getResource("/default.ecorediag"); |
| CDOResource semanticResource = view.getResource("/default.ecore"); |
| |
| assertNotNull(diagramResource); |
| assertNotNull(semanticResource); |
| |
| Diagram diagram = (Diagram)diagramResource.getContents().get(0); |
| EPackage epackage = (EPackage)semanticResource.getContents().get(0); |
| |
| assertEquals(3, diagram.getChildren().size()); |
| EList<EAnnotation> eAnnotations = epackage.getEAnnotations(); |
| assertEquals(3, eAnnotations.size()); |
| |
| Character name = 'A'; |
| |
| for (EAnnotation eAnnotation : eAnnotations) |
| { |
| assertEquals(name.toString(), eAnnotation.getSource()); |
| name++; |
| } |
| } |
| } |
| |
| @Test |
| public void testEENum() throws Exception |
| { |
| SWTBotGefEditor editor = DawnEcoreTestUtil.openNewEcoreToolsEditor("default.ecore", getBot()); |
| assertNotNull(editor); |
| |
| createNodeWithLabel(DawnEcoreTestUtil.E_ENUM, 100, 100, "A", getBot(), editor); |
| createNodeWithLabel(DawnEcoreTestUtil.E_ENUM, 250, 100, "B", getBot(), editor); |
| createNodeWithLabel(DawnEcoreTestUtil.E_ENUM, 150, 250, "C", getBot(), editor); |
| editor.saveAndClose(); |
| |
| { |
| CDOSession session = openSession(); |
| CDOView view = session.openView(); |
| |
| CDOResource diagramResource = view.getResource("/default.ecorediag"); |
| CDOResource semanticResource = view.getResource("/default.ecore"); |
| |
| assertNotNull(diagramResource); |
| assertNotNull(semanticResource); |
| |
| Diagram diagram = (Diagram)diagramResource.getContents().get(0); |
| EPackage epackage = (EPackage)semanticResource.getContents().get(0); |
| |
| assertEquals(3, diagram.getChildren().size()); |
| assertEquals(3, epackage.getEClassifiers().size()); |
| |
| Character name = 'A'; |
| |
| for (EClassifier eEnum : epackage.getEClassifiers()) |
| { |
| assertEquals(EEnumImpl.class, eEnum.getClass()); |
| assertEquals(name.toString(), eEnum.getName()); |
| name++; |
| } |
| } |
| } |
| |
| @Test |
| public void testEPackage() throws Exception |
| { |
| SWTBotGefEditor editor = DawnEcoreTestUtil.openNewEcoreToolsEditor("default.ecore", getBot()); |
| assertNotNull(editor); |
| |
| createNodeWithLabel(DawnEcoreTestUtil.E_PACKAGE, 100, 100, "A", getBot(), editor); |
| createNodeWithLabel(DawnEcoreTestUtil.E_PACKAGE, 250, 100, "B", getBot(), editor); |
| createNodeWithLabel(DawnEcoreTestUtil.E_PACKAGE, 150, 250, "C", getBot(), editor); |
| editor.saveAndClose(); |
| |
| { |
| CDOSession session = openSession(); |
| CDOView view = session.openView(); |
| |
| CDOResource diagramResource = view.getResource("/default.ecorediag"); |
| CDOResource semanticResource = view.getResource("/default.ecore"); |
| |
| assertNotNull(diagramResource); |
| assertNotNull(semanticResource); |
| |
| Diagram diagram = (Diagram)diagramResource.getContents().get(0); |
| |
| assertEquals(3, diagram.getChildren().size()); |
| EList<EObject> contents = semanticResource.getContents(); |
| assertEquals(1, contents.size()); |
| |
| EPackage ePackage = (EPackage)contents.get(0); |
| Character name = 'A'; |
| |
| for (EPackage eSubPackage : ePackage.getESubpackages()) |
| { |
| assertEquals(name.toString(), eSubPackage.getName()); |
| assertEquals(ePackage, eSubPackage.getESuperPackage()); |
| name++; |
| } |
| } |
| } |
| |
| @Test |
| public void testDiagramWithClassAndEAnnotations() throws Exception |
| { |
| SWTBotGefEditor editor = DawnEcoreTestUtil.openNewEcoreToolsEditor("default.ecore", getBot()); |
| assertNotNull(editor); |
| |
| createNodeWithLabel(DawnEcoreTestUtil.E_CLASS, 100, 100, "A", getBot(), editor); |
| createNodeWithLabel(DawnEcoreTestUtil.E_ANNOTATION, 250, 100, "B", getBot(), editor); |
| createNodeWithLabel(DawnEcoreTestUtil.E_ANNOTATION, 150, 250, "C", getBot(), editor); |
| |
| createEdge(DawnEcoreTestUtil.E_ANNOTATION_LINK, 250, 100, 100, 100, editor); |
| createEdge(DawnEcoreTestUtil.E_ANNOTATION_LINK, 150, 250, 100, 100, editor); |
| |
| List<SWTBotGefEditPart> connectionEditParts = DawnEcoreTestUtil.getAllTargetConnections(editor); |
| |
| assertEquals(2, connectionEditParts.size()); |
| editor.save(); |
| |
| { |
| CDOSession session = openSession(); |
| CDOView view = session.openView(); |
| |
| CDOResource diagramResource = view.getResource("/default.ecorediag"); |
| |
| CDOResource semanticResource = view.getResource("/default.ecore"); |
| |
| assertNotNull(diagramResource); |
| assertNotNull(semanticResource); |
| |
| Diagram diagram = (Diagram)diagramResource.getContents().get(0); |
| EPackage epackage = (EPackage)semanticResource.getContents().get(0); |
| |
| assertEquals(3, diagram.getChildren().size()); |
| assertEquals(1, epackage.getEClassifiers().size()); |
| |
| // EClass eClass1 = (EClass)epackage.getEClassifiers().get(0); |
| // EList<EAnnotation> eAnnotations = eClass1.getEAnnotations(); |
| // assertEquals(2, eAnnotations.size()); |
| // |
| // Character name = 'B'; |
| // |
| // for (EAnnotation annotation : eAnnotations) |
| // { |
| // assertEquals(name.toString(), annotation.getSource()); |
| // assertEquals(eClass1, annotation.getEModelElement()); |
| // name++; |
| // } |
| |
| view.close(); |
| } |
| } |
| |
| @Test |
| public void testEAnnotationWithDetailEntry() throws Exception |
| { |
| SWTBotGefEditor editor = DawnEcoreTestUtil.openNewEcoreToolsEditor("default.ecore", getBot()); |
| assertNotNull(editor); |
| |
| createNodeWithLabel(DawnEcoreTestUtil.E_ANNOTATION, 100, 100, "A", getBot(), editor); |
| editor.activateTool(DawnEcoreTestUtil.DETAILS_ENTRY); |
| editor.click(100, 100); |
| typeTextToFocusedWidget("name", getBot(), true); |
| editor.save(); |
| { |
| CDOSession session = openSession(); |
| CDOView view = session.openView(); |
| |
| CDOResource diagramResource = view.getResource("/default.ecorediag"); |
| CDOResource semanticResource = view.getResource("/default.ecore"); |
| |
| assertNotNull(diagramResource); |
| assertNotNull(semanticResource); |
| |
| EPackage epackage = (EPackage)semanticResource.getContents().get(0); |
| |
| EAnnotation eAnnotation = epackage.getEAnnotations().get(0); |
| |
| assertEquals("A", eAnnotation.getSource()); |
| assertEquals(1, eAnnotation.getDetails().size()); |
| view.close(); |
| } |
| } |
| } |