blob: 04cea332c1f7a5ab69ed0e0f78bff5048e136a42 [file] [log] [blame]
//------------------------------------------------------------------------------
// 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);
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.release();
}
}
}
}