package sushi.bpmn.decomposition; import java.util.Arrays; import org.junit.Before; import sushi.bpmn.element.AbstractBPMNElement; import sushi.bpmn.element.BPMNAndGateway; import sushi.bpmn.element.BPMNEndEvent; import sushi.bpmn.element.BPMNProcess; import sushi.bpmn.element.BPMNStartEvent; import sushi.bpmn.element.BPMNTask; import sushi.bpmn.element.BPMNXORGateway; /** * Abstract class to centralize some multiple times used test methods. * This class provides a example {@link BPMNProcess} with contained {@link AbstractBPMNElement}s. * @author micha */ public class AbstractDecompositionTest { protected BPMNProcess process; protected BPMNTask task11, task2111, task2112, task22, task31, task32, task212; protected BPMNAndGateway and1, and2, and211, and212; protected BPMNXORGateway xor1, xor2, xor21, xor22, xor211, xor212; protected BPMNEndEvent endEvent; protected BPMNStartEvent startEvent; @Before public void setup(){ startEvent = new BPMNStartEvent("1", "Start", null); task11 = new BPMNTask("2", "Task 1.1", null); xor1 = new BPMNXORGateway("3", "XOR 1", null); xor21 = new BPMNXORGateway("4", "XOR 2.1", null); task2111 = new BPMNTask("5", "Task 2.1.1.1", null); xor22 = new BPMNXORGateway("6", "XOR 2.2", null); xor211 = new BPMNXORGateway("7", "XOR 2.1.1", null); task212 = new BPMNTask("8", "Task 2.1.2", null); xor212 = new BPMNXORGateway("9", "XOR 2.1.2", null); task22 = new BPMNTask("10", "Task 2.2", null); and1 = new BPMNAndGateway("11", "And 1", null); task31 = new BPMNTask("12", "Task 3.1", null); task32 = new BPMNTask("13", "Task 3.2", null); and2 = new BPMNAndGateway("14", "And 2", null); xor2 = new BPMNXORGateway("15", "XOR 2", null); endEvent = new BPMNEndEvent("16", "End", null); and211 = new BPMNAndGateway("17", "And 2.1.1", null); and212 = new BPMNAndGateway("18", "And 2.1.2", null); task2112 = new BPMNTask("19", "Task 2.1.1.2", null); AbstractBPMNElement.connectElements(startEvent, task11); AbstractBPMNElement.connectElements(task11, xor1); AbstractBPMNElement.connectElements(xor1, xor21); AbstractBPMNElement.connectElements(xor1, task22); AbstractBPMNElement.connectElements(xor1, and1); AbstractBPMNElement.connectElements(xor21, and211); AbstractBPMNElement.connectElements(and211, task2111); AbstractBPMNElement.connectElements(and211, task2112); AbstractBPMNElement.connectElements(task2111, and212); AbstractBPMNElement.connectElements(task2112, and212); AbstractBPMNElement.connectElements(and212, xor22); //Repeat-Pattern --> Schleife AbstractBPMNElement.connectElements(xor22, xor211); //Schleife in der Schleife AbstractBPMNElement.connectElements(xor211, task212); AbstractBPMNElement.connectElements(task212, xor212); AbstractBPMNElement.connectElements(xor212, xor211); AbstractBPMNElement.connectElements(xor212, xor21); AbstractBPMNElement.connectElements(xor22, xor2); AbstractBPMNElement.connectElements(task22, xor2); AbstractBPMNElement.connectElements(and1, task31); AbstractBPMNElement.connectElements(and1, task32); AbstractBPMNElement.connectElements(task31, and2); AbstractBPMNElement.connectElements(task32, and2); AbstractBPMNElement.connectElements(and2, xor2); AbstractBPMNElement.connectElements(xor2, endEvent); process = new BPMNProcess("12", "Process", null); process.addBPMNElements(Arrays.asList( startEvent, task11, xor1, xor21, task2111, task2112, xor22, xor211, task212, xor212, task22, and1, task31, task32, and2, xor2, endEvent, and211, and212)); } }