/******************************************************************************* * This program is 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: * Tomas Milata - initial API and implementation ******************************************************************************/ package org.jboss.tools.batch.ui.itest.diagram; import java.util.List; import org.eclipse.sapphire.ElementList; import org.eclipse.sapphire.ui.diagram.DiagramConnectionPart; import org.jboss.tools.batch.ui.editor.internal.model.FlowElement; import org.jboss.tools.batch.ui.editor.internal.model.Step; import org.jboss.tools.batch.ui.editor.internal.services.diagram.connection.BatchDiagramConnectionService; import org.jboss.tools.batch.ui.itest.AbstractBatchSapphireEditorTest; /** * @author Tomas Milata */ public class BatchDiagramConnectionsTest extends AbstractBatchSapphireEditorTest { public void testNextAttributeConnections() { checkConnections("src/META-INF/batch-jobs/job-connections-next-step.xml", 4); checkConnections("src/META-INF/batch-jobs/job-connections-next-flow.xml", 4); checkConnections("src/META-INF/batch-jobs/job-connections-next-split.xml", 4); } public void testAddAndRemoveConnection() { editor = openEditor("src/META-INF/batch-jobs/job-connections-no-connections.xml"); BatchDiagramConnectionService cs = getConnectionService(); List<DiagramConnectionPart> connections = cs.list(); assertEquals(0, connections.size()); ElementList<FlowElement> elements = editor.getSchema().getFlowElements(); Step step1 = (Step) elements.get(0); Step step2 = (Step) elements.get(1); step1.setNext(step2.getId().content()); connections = cs.list(); assertEquals(1, connections.size()); step1.setNext(null); connections = cs.list(); assertEquals(0, connections.size()); } public void testConnectionsOnNewNodes() { editor = openEditor("src/META-INF/batch-jobs/job-connections-empty.xml"); BatchDiagramConnectionService cs = getConnectionService(); List<DiagramConnectionPart> connections = cs.list(); assertEquals(0, connections.size()); ElementList<FlowElement> elements = editor.getSchema().getFlowElements(); Step step1 = elements.insert(Step.class); Step step2 = elements.insert(Step.class); step1.setId("step1"); step2.setId("step2"); step1.setNext("step2"); connections = cs.list(); assertEquals(1, connections.size()); step1.setNext(null); connections = cs.list(); assertEquals(0, connections.size()); } private void checkConnections(String file, int count) { editor = openEditor(file); BatchDiagramConnectionService cs = getConnectionService(); List<DiagramConnectionPart> connections = cs.list(); assertNotNull(connections); assertEquals(count, connections.size()); } private BatchDiagramConnectionService getConnectionService() { BatchDiagramConnectionService connService = getDiagramPage().service(BatchDiagramConnectionService.class); assertNotNull(connService); return connService; } }