11package org .openbpmn .metamodel .examples ;
22
3+ import static org .junit .jupiter .api .Assertions .assertEquals ;
34import static org .junit .jupiter .api .Assertions .assertNotNull ;
45import static org .junit .jupiter .api .Assertions .fail ;
56
1011import org .openbpmn .bpmn .BPMNModel ;
1112import org .openbpmn .bpmn .BPMNTypes ;
1213import org .openbpmn .bpmn .elements .BPMNActivity ;
14+ import org .openbpmn .bpmn .elements .BPMNParticipant ;
1315import org .openbpmn .bpmn .elements .BPMNProcess ;
1416import org .openbpmn .bpmn .exceptions .BPMNModelException ;
1517import org .openbpmn .bpmn .util .BPMNModelFactory ;
@@ -90,7 +92,7 @@ public void testBuildAndDelete() {
9092 processContext .addEvent ("end_1" , "End" , BPMNTypes .END_EVENT );
9193 BPMNActivity task = processContext .addTask ("task_1" , "Task" , BPMNTypes .TASK );
9294 task .getBounds ().updateLocation (10.0 , 10.0 );
93- task .getBounds ().updateDimension ( 140.0 , 60.0 );
95+ task .getBounds ().updateDimension (140.0 , 60.0 );
9496
9597 processContext .addSequenceFlow ("SequenceFlow_1" , "start_1" , "task_1" );
9698 processContext .addSequenceFlow ("SequenceFlow_2" , "task_1" , "end_1" );
@@ -102,4 +104,49 @@ public void testBuildAndDelete() {
102104
103105 }
104106
107+ /**
108+ * This test build new model one participant and a task. The test delete
109+ * participant - we expect the task is also deleted, but we still have a default
110+ * process and a collaboration diagram.
111+ */
112+ @ Test
113+ public void testDeleteParticipant () {
114+
115+ String exporter = "demo" ;
116+ String version = "1.0.0" ;
117+ String targetNameSpace = "http://org.openbpmn" ;
118+ try {
119+ BPMNModel model = BPMNModelFactory .createInstance (exporter , version , targetNameSpace );
120+ BPMNProcess defaultProcess = model .openDefaultProcess ();
121+ assertNotNull (defaultProcess );
122+
123+ // create Participant
124+ BPMNParticipant sales = model .addParticipant ("Sales" );
125+
126+ // add Task
127+ BPMNProcess privateProcess = sales .openProcess ();
128+ // add a start and end event
129+ privateProcess .addEvent ("start_1" , "Start" , BPMNTypes .START_EVENT );
130+ privateProcess .addEvent ("end_1" , "End" , BPMNTypes .END_EVENT );
131+ privateProcess .addTask ("task_1" , "Task" , BPMNTypes .TASK );
132+ privateProcess .addSequenceFlow ("SequenceFlow_1" , "start_1" , "task_1" );
133+ privateProcess .addSequenceFlow ("SequenceFlow_2" , "task_1" , "end_1" );
134+
135+ // we expect 3 Flow elements and 2 Processes
136+ assertEquals (3 , privateProcess .getBPMNFlowElements ().size ());
137+ assertEquals (2 , model .getProcesses ().size ());
138+ assertEquals (2 , model .getParticipants ().size ());
139+
140+ // now delete the Participant
141+ model .deleteBPMNParticipant (sales );
142+ assertEquals (1 , model .getParticipants ().size ());
143+ assertEquals (1 , model .getProcesses ().size ());
144+
145+ } catch (BPMNModelException e ) {
146+ e .printStackTrace ();
147+ fail ();
148+ }
149+
150+ }
151+
105152}
0 commit comments