| //------------------------------------------------------------------------------ |
| // Copyright (c) 2005, 2006 IBM Corporation 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: |
| // IBM Corporation - initial implementation |
| //------------------------------------------------------------------------------ |
| package org.eclipse.epf.diagram.tests; |
| |
| import java.util.Collections; |
| import java.util.List; |
| |
| import org.eclipse.emf.ecore.resource.Resource; |
| import org.eclipse.emf.transaction.Transaction; |
| import org.eclipse.epf.diagram.core.services.DiagramManager; |
| import org.eclipse.epf.diagram.ui.service.DiagramUIService; |
| import org.eclipse.epf.diagram.ui.service.IDiagramUIService; |
| import org.eclipse.epf.library.tests.LibraryTestHelper; |
| import org.eclipse.epf.uma.Activity; |
| import org.eclipse.epf.uma.CapabilityPattern; |
| import org.eclipse.epf.uma.ContentPackage; |
| import org.eclipse.epf.uma.MethodConfiguration; |
| import org.eclipse.epf.uma.MethodPlugin; |
| import org.eclipse.epf.uma.ProcessComponent; |
| import org.eclipse.epf.uma.Task; |
| import org.eclipse.gmf.runtime.notation.Diagram; |
| import org.eclipse.gmf.runtime.notation.Node; |
| |
| /** |
| * JUnit tests for the org.eclipse.epf.diagram.ui.DiagramUIService classes. |
| * |
| * @author Shilpa Toraskar |
| * @since 1.2 |
| */ |
| public class DiagramUIServiceTest extends DiagramTestCase { |
| |
| private IDiagramUIService diagramUIService = null; |
| |
| /** |
| * Creates a new instance. |
| */ |
| public DiagramUIServiceTest(String name) { |
| super(name); |
| } |
| |
| /** |
| * Tests the DiagamUIService.createDiagram method. |
| */ |
| public void testCreateDiagram() throws Exception { |
| |
| // create method plugin |
| MethodPlugin plugin = LibraryTestHelper |
| .createMethodPlugin("Test Plugin"); |
| ContentPackage pkg = LibraryTestHelper.createContentPackage(plugin, |
| "p1"); |
| |
| // create configuration |
| MethodConfiguration config = LibraryTestHelper |
| .createConfiguration("Test Config"); |
| |
| // create process |
| CapabilityPattern cp1 = LibraryTestHelper.createCapabilityPattern( |
| plugin, "cp1", config); |
| |
| // update the configuration |
| config.getMethodPluginSelection().add(plugin); |
| config.getMethodPackageSelection().add(pkg); |
| config.getMethodPackageSelection().add( |
| (ProcessComponent) cp1.eContainer()); |
| |
| // create task |
| Task task1 = LibraryTestHelper.createTask(pkg, "Task1"); |
| Task task2 = LibraryTestHelper.createTask(pkg, "Task2"); |
| Task[] tasks = new Task[] { task1, task2 }; |
| |
| Activity act1 = LibraryTestHelper.createActivity(plugin, cp1, "A1", |
| tasks); |
| Activity act2 = LibraryTestHelper.createActivity(plugin, cp1, "A2", |
| tasks); |
| |
| diagramUIService = new DiagramUIService(); |
| DiagramManager mgr = DiagramManager.getInstance(cp1, this); |
| Diagram diagram = null; |
| try { |
| Transaction tx = mgr.getEditingDomain().startTransaction(false, |
| Collections.EMPTY_MAP); |
| Resource resource = mgr.getResource(); |
| |
| diagram = diagramUIService.createActivityDiagram(cp1); |
| |
| Node act1Node = diagramUIService.createNode(diagram, act1); |
| Node initialNode = diagramUIService.createNode(diagram, IDiagramUIService.INITIAL_NODE, "initial"); |
| Node act2Node = diagramUIService.createNode(diagram, act2); |
| Node decisionNode = diagramUIService.createNode(diagram, IDiagramUIService.DECISION_NODE, "decision"); |
| Node endNode = diagramUIService.createNode(diagram, IDiagramUIService.FINAL_NODE, "end"); |
| |
| diagramUIService.createEdge(diagram, initialNode, act1Node, "link1"); |
| diagramUIService.createEdge(diagram, act1Node, decisionNode, "link2"); |
| diagramUIService.createEdge(diagram, decisionNode, act2Node, "link3"); |
| diagramUIService.createEdge(diagram, act2Node, endNode, "link4"); |
| |
| List nodes = diagramUIService.getNodes(diagram, cp1, IDiagramUIService.ACTIVITY_NODE); |
| if (!nodes.isEmpty()) { |
| System.out.println("****** ACTIVITY Nodes - "); |
| for (int i=0; i < nodes.size(); i++) |
| System.out.println(nodes.get(i)); |
| } |
| |
| nodes = diagramUIService.getNodes(diagram, cp1, IDiagramUIService.INITIAL_NODE); |
| if (!nodes.isEmpty()) { |
| System.out.println("****** Initial Nodes - "); |
| for (int i=0; i < nodes.size(); i++) |
| System.out.println(nodes.get(i)); |
| } |
| |
| nodes = diagramUIService.getNodes(diagram, cp1, IDiagramUIService.DECISION_NODE); |
| if (!nodes.isEmpty()) { |
| System.out.println("****** Decision Nodes - "); |
| for (int i=0; i < nodes.size(); i++) |
| System.out.println(nodes.get(i)); |
| } |
| |
| nodes = diagramUIService.getAllNodes(diagram); |
| if (!nodes.isEmpty()) { |
| System.out.println("****** ALL Nodes - "); |
| for (int i=0; i < nodes.size(); i++) |
| System.out.println(nodes.get(i)); |
| } |
| |
| assertTrue(!nodes.isEmpty()); |
| |
| List edges = diagramUIService.getEdges(diagram); |
| if (!edges.isEmpty()) { |
| System.out.println("****** ALL Edges - "); |
| for (int i=0; i < edges.size(); i++) |
| System.out.println(edges.get(i)); |
| } |
| |
| assertTrue(!edges.isEmpty()); |
| |
| // save diagram |
| resource.getContents().add(diagram.getElement()); |
| resource.getContents().add(diagram); |
| tx.commit(); |
| resource.save(null); |
| |
| } catch (Exception e) { |
| e.printStackTrace(); |
| } finally { |
| if (mgr != null) { |
| mgr.removeConsumer(this); |
| } |
| } |
| } |
| |
| } |