From c203e5289b7841195a4049d3e0062af5f71da6c1 Mon Sep 17 00:00:00 2001
From: Henning Schmeink <hs344225@fh-muenster.de>
Date: Tue, 9 Nov 2021 00:53:25 +0100
Subject: [PATCH] initial commit

---
 .../MatchingTestcollectionOld.bpmn-testgen    |    2 +-
 .../sample/onlineschuhdemo/ManualTasks.java   |   21 +-
 .../MatchingTestcollectionOld.java            | 1768 +++++++-------
 .../onlineschuhdemo/Testcollection-old.java   |   39 +
 .../onlineschuhdemo/Testcollection.java       | 2053 +++++++++--------
 .../main/resources/backup/1636397161566.zip   |  Bin 0 -> 8238 bytes
 .../main/resources/backup/1636400003412.zip   |  Bin 0 -> 8249 bytes
 .../src/main/resources/backup/retoure.bpmn    |  982 ++++----
 .../Testcollection-old.bpmn-testgen           |  168 ++
 .../Testcollection.bpmn-testgen               |  333 +--
 OnlineSchuhDemo/testgen.json                  |    2 +-
 TestOnlineSchuh/.project                      |   43 +
 TestOnlineSchuh/bin/.project                  |   43 +
 .../prioritization/PrioritizationMetrics.java |  107 +
 .../prioritization/PrioritizationService.java |   43 +
 .../rest/service/change/ChangeController.java |   35 +-
 .../src/app/app-routing.module.ts             |    2 +
 .../testgenerator-web/src/app/app.module.ts   |    4 +-
 .../update-project.component.html             |    4 +-
 .../update-project.component.ts               |   11 +
 .../prioritization-overview.component.css     |    0
 .../prioritization-overview.component.html    |    2 +
 .../prioritization-overview.component.spec.ts |   25 +
 .../prioritization-overview.component.ts      |   15 +
 24 files changed, 3225 insertions(+), 2477 deletions(-)
 create mode 100644 OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/Testcollection-old.java
 create mode 100644 OnlineSchuhDemo/src/main/resources/backup/1636397161566.zip
 create mode 100644 OnlineSchuhDemo/src/main/resources/backup/1636400003412.zip
 create mode 100644 OnlineSchuhDemo/src/test/java/de/sample/onlineschuhdemo/Testcollection-old.bpmn-testgen
 create mode 100644 TestOnlineSchuh/.project
 create mode 100644 TestOnlineSchuh/bin/.project
 create mode 100644 Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/prioritization/PrioritizationMetrics.java
 create mode 100644 Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/prioritization/PrioritizationService.java
 create mode 100644 testgenerator-web/testgenerator-web/src/app/prioritization-overview/prioritization-overview.component.css
 create mode 100644 testgenerator-web/testgenerator-web/src/app/prioritization-overview/prioritization-overview.component.html
 create mode 100644 testgenerator-web/testgenerator-web/src/app/prioritization-overview/prioritization-overview.component.spec.ts
 create mode 100644 testgenerator-web/testgenerator-web/src/app/prioritization-overview/prioritization-overview.component.ts

diff --git a/OnlineSchuhDemo/dsl_matching/MatchingTestcollectionOld.bpmn-testgen b/OnlineSchuhDemo/dsl_matching/MatchingTestcollectionOld.bpmn-testgen
index 573d090..e914ed3 100644
--- a/OnlineSchuhDemo/dsl_matching/MatchingTestcollectionOld.bpmn-testgen
+++ b/OnlineSchuhDemo/dsl_matching/MatchingTestcollectionOld.bpmn-testgen
@@ -96,7 +96,7 @@ ExternalTopic customer ;
 ExternalTopic financial ;
 
 Flow Flow_0 for process
-with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , New_Task_1 , Flow_New_1 , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
+with elements : [ Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , New_Task_1 , Flow_New_1 , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
 without elements : [ Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , New_Task_2 , New_Flow_2 , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Flow_spenden , Ware_spenden , Flow_0f171gg ] ;
 Flow Flow_1 for process
 with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , New_Task_1 , Flow_New_1 , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
diff --git a/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/ManualTasks.java b/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/ManualTasks.java
index 5cc6b03..c508bd1 100644
--- a/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/ManualTasks.java
+++ b/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/ManualTasks.java
@@ -1,12 +1,9 @@
-package de.sample.onlineschuhdemo;
-
-public class ManualTasks {
-
-	public static final String WARE_EINSORTIEREN = "Ware_einsortieren";
-	public static final String NEW_TASK_1 = "New_Task_1";
-	public static final String NEW_TASK_2 = "New_Task_2";
-	public static final String NEW_FLOW_2 = "New_Flow_2";
-	public static final String WARE_AUSPACKEN_NORMAL = "Ware_auspacken_normal";
-	public static final String WARE_AUSPACKEN_LUXUS = "Ware_auspacken_luxus";
-
-}
+package de.sample.onlineschuhdemo;
+
+public class ManualTasks {
+
+	public static final String WARE_EINSORTIEREN = "Ware_einsortieren";
+	public static final String WARE_AUSPACKEN_NORMAL = "Ware_auspacken_normal";
+	public static final String WARE_AUSPACKEN_LUXUS = "Ware_auspacken_luxus";
+
+}
diff --git a/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/MatchingTestcollectionOld.java b/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/MatchingTestcollectionOld.java
index c4f1a97..07d66c6 100644
--- a/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/MatchingTestcollectionOld.java
+++ b/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/MatchingTestcollectionOld.java
@@ -1,884 +1,884 @@
-package de.sample.onlineschuhdemo;
-
-import static org.camunda.bpm.engine.test.assertions.ProcessEngineTests.*;
-import static org.camunda.bpm.engine.test.assertions.bpmn.BpmnAwareTests.complete;
-import static org.camunda.bpm.engine.test.assertions.bpmn.BpmnAwareTests.runtimeService;
-import static org.camunda.bpm.engine.test.assertions.bpmn.BpmnAwareTests.task;
-import static org.camunda.bpm.engine.test.assertions.bpmn.BpmnAwareTests.withVariables;
-import static org.assertj.core.api.Assertions.entry;
-import static de.sample.onlineschuhdemo.TestUtils.*;
-
-import org.apache.ibatis.logging.LogFactory;
-import org.camunda.bpm.engine.runtime.ProcessInstance;
-import org.camunda.bpm.engine.test.Deployment;
-import org.camunda.bpm.engine.test.ProcessEngineRule;
-import org.camunda.bpm.engine.externaltask.LockedExternalTask;
-import org.camunda.bpm.engine.test.mock.Mocks;
-import de.sample.onlineschuhdemo.externalaccess.LagerService;
-import de.sample.onlineschuhdemo.externalaccess.WarennummerErmittelnDelegate;
-import org.camunda.bpm.extension.process_test_coverage.junit.rules.TestCoverageProcessEngineRuleBuilder;
-import org.junit.Before;
-import org.junit.ClassRule;
-import org.junit.Rule;
-import org.junit.Test;
-import java.util.List;
-import java.util.Map;
-
-public class MatchingTestcollectionOld {
-
-	@ClassRule
-	@Rule
-	public static ProcessEngineRule rule = TestCoverageProcessEngineRuleBuilder.create().build();
-
-	private static final String VAR_KUNDENNUMMER = "kundennummer";
-	private static final String VAR_MARKE = "marke";
-	private static final String VAR_IBAN = "iban";
-	private static final String VAR_VORNAME = "vorname";
-	private static final String VAR_NACHNAME = "nachname";
-	private static final String VAR_PAKETTYP = "pakettyp";
-	private static final String VAR_EMAILGESENDET = "emailGesendet";
-	private static final String VAR_FIRSTNAME = "firstname";
-	private static final String VAR_LASTNAME = "lastname";
-	private static final String VAR_IBANREFUND = "ibanRefund";
-	private static final String VAR_CONFIRMATIONEMAILSENT = "confirmationEmailSent";
-	private static final String VAR_SERVICEIDENTIFIER = "serviceIdentifier";
-	private static final String VAR_PREIS = "preis";
-	private static final String VAR_ERSTATTUNG = "erstattung";
-	private static final String VAR_PAKET = "paket";
-	private static final String VAR_BESCHAEDIGT = "beschaedigt";
-
-	static {
-		LogFactory.useSlf4jLogging();
-	}
-
-	@Before
-	public void setup() {
-		init(rule.getProcessEngine());
-
-		LagerService lagerService = new LagerService();
-
-		WarennummerErmittelnDelegate warennummerErmittelnDelegate = new WarennummerErmittelnDelegate();
-		warennummerErmittelnDelegate.setLagerService(lagerService);
-
-		Mocks.register("warennummer", warennummerErmittelnDelegate);
-	}
-
-	@Test
-	@Deployment(resources = {"retoure.bpmn", "\\schuh_vernichtung_spende.dmn"})
-	public void normalverpackungAuspacken() {
-
-		ProcessInstance processInstance = runtimeService() //
-			.startProcessInstanceByKey("Retoure", withVariables(VAR_BESCHAEDIGT, false, VAR_ERSTATTUNG, false, VAR_KUNDENNUMMER, "C-123A456")); //
-
-		assertThat(processInstance) //
-			.isStarted() //
-			.hasPassed(Events.RETOURE_START) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
-			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
-			.hasPassed(ManualTasks.NEW_TASK_1) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
-			.hasNotPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG) //
-			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
-			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasNotPassed(UserTasks.PAKET_PACKEN) //
-			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
-			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasNotPassed(UserTasks.PAKET_PACKEN) //
-			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasNotPassed(UserTasks.PAKET_SENDEN) //
-			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Events.RETOURE_ENDE) //
-			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
-			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
-			.hasNotPassed(ManualTasks.NEW_TASK_2) //
-			.hasNotPassed(ManualTasks.NEW_FLOW_2) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
-			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
-			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
-			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
-			.hasNotPassed(UserTasks.WARE_SPENDEN) //
-			.isNotEnded(); //
-
-		Map<String, Object> variableSnapshot0 = runtimeService() //
-			.getVariables(processInstance.getId()); //
-		List<LockedExternalTask> lockedTasks0 = lockTasks("customer");
-		complete(getLockedTask(lockedTasks0, ServiceTasks.KUNDENDATEN_ERMITTELN), ExternalServiceMockProvider.customerProvider(variableSnapshot0));
-
-		assertThat(processInstance) //
-			.hasPassed(Events.RETOURE_START) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
-			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
-			.hasPassed(ManualTasks.NEW_TASK_1) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
-			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
-			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
-			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasNotPassed(UserTasks.PAKET_PACKEN) //
-			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
-			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasNotPassed(UserTasks.PAKET_PACKEN) //
-			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasNotPassed(UserTasks.PAKET_SENDEN) //
-			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Events.RETOURE_ENDE) //
-			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
-			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
-			.hasNotPassed(ManualTasks.NEW_TASK_2) //
-			.hasNotPassed(ManualTasks.NEW_FLOW_2) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
-			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
-			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
-			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
-			.hasNotPassed(UserTasks.WARE_SPENDEN) //
-			.isNotEnded(); //
-
-		complete(task(UserTasks.MANUELLE_PRUEFUNG));
-
-		assertThat(processInstance) //
-			.hasPassed(Events.RETOURE_START) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
-			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
-			.hasPassed(ManualTasks.NEW_TASK_1) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
-			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
-			.hasPassed(UserTasks.MANUELLE_PRUEFUNG) //
-			.hasPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasNotPassed(UserTasks.PAKET_PACKEN) //
-			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
-			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
-			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasNotPassed(UserTasks.PAKET_PACKEN) //
-			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasNotPassed(UserTasks.PAKET_SENDEN) //
-			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Events.RETOURE_ENDE) //
-			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
-			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
-			.hasNotPassed(ManualTasks.NEW_TASK_2) //
-			.hasNotPassed(ManualTasks.NEW_FLOW_2) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
-			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
-			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
-			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
-			.hasNotPassed(UserTasks.WARE_SPENDEN) //
-			.isNotEnded(); //
-
-		complete(task(UserTasks.PAKET_PACKEN), withVariables(VAR_PAKETTYP, "Normalverpackung"));
-
-		assertThat(processInstance) //
-			.hasPassed(Events.RETOURE_START) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
-			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
-			.hasPassed(ManualTasks.NEW_TASK_1) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
-			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
-			.hasPassed(UserTasks.MANUELLE_PRUEFUNG) //
-			.hasPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasPassed(UserTasks.PAKET_PACKEN) //
-			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
-			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
-			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasPassed(UserTasks.PAKET_PACKEN) //
-			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasNotPassed(UserTasks.PAKET_SENDEN) //
-			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Events.RETOURE_ENDE) //
-			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
-			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
-			.hasNotPassed(ManualTasks.NEW_TASK_2) //
-			.hasNotPassed(ManualTasks.NEW_FLOW_2) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
-			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
-			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
-			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
-			.hasNotPassed(UserTasks.WARE_SPENDEN) //
-			.isNotEnded(); //
-
-		complete(task(UserTasks.PAKET_PRUEFEN), withVariables(VAR_PAKET, false));
-
-		assertThat(processInstance) //
-			.hasPassed(Events.RETOURE_START) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
-			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
-			.hasPassed(ManualTasks.NEW_TASK_1) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
-			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
-			.hasPassed(UserTasks.MANUELLE_PRUEFUNG) //
-			.hasPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasPassed(UserTasks.PAKET_PACKEN) //
-			.hasPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasPassed(Gateways.GATEWAY_AUSPACKEN) //
-			.hasPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
-			.hasPassed(Gateways.GATEWAY_14EVKAP) //
-			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasPassed(UserTasks.PAKET_PACKEN) //
-			.hasPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasNotPassed(UserTasks.PAKET_SENDEN) //
-			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Events.RETOURE_ENDE) //
-			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
-			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
-			.hasNotPassed(ManualTasks.NEW_TASK_2) //
-			.hasNotPassed(ManualTasks.NEW_FLOW_2) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
-			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
-			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
-			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
-			.hasNotPassed(UserTasks.WARE_SPENDEN) //
-			.isNotEnded(); //
-
-		complete(task(UserTasks.PAKET_PACKEN), withVariables(VAR_PAKETTYP, "Luxusverpackung"));
-
-		assertThat(processInstance) //
-			.hasPassed(Events.RETOURE_START) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
-			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
-			.hasPassed(ManualTasks.NEW_TASK_1) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
-			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
-			.hasPassed(UserTasks.MANUELLE_PRUEFUNG) //
-			.hasPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasPassed(UserTasks.PAKET_PACKEN) //
-			.hasPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasPassed(Gateways.GATEWAY_AUSPACKEN) //
-			.hasPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
-			.hasPassed(Gateways.GATEWAY_14EVKAP) //
-			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasPassed(UserTasks.PAKET_PACKEN) //
-			.hasPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasNotPassed(UserTasks.PAKET_SENDEN) //
-			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Events.RETOURE_ENDE) //
-			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
-			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
-			.hasNotPassed(ManualTasks.NEW_TASK_2) //
-			.hasNotPassed(ManualTasks.NEW_FLOW_2) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
-			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
-			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
-			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
-			.hasNotPassed(UserTasks.WARE_SPENDEN) //
-			.isNotEnded(); //
-
-		complete(task(UserTasks.PAKET_PRUEFEN), withVariables(VAR_PAKET, true));
-
-		assertThat(processInstance) //
-			.hasPassed(Events.RETOURE_START) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
-			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
-			.hasPassed(ManualTasks.NEW_TASK_1) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
-			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
-			.hasPassed(UserTasks.MANUELLE_PRUEFUNG) //
-			.hasPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasPassed(UserTasks.PAKET_PACKEN) //
-			.hasPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasPassed(Gateways.GATEWAY_AUSPACKEN) //
-			.hasPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
-			.hasPassed(Gateways.GATEWAY_14EVKAP) //
-			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasPassed(UserTasks.PAKET_PACKEN) //
-			.hasPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasNotPassed(UserTasks.PAKET_SENDEN) //
-			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Events.RETOURE_ENDE) //
-			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
-			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
-			.hasNotPassed(ManualTasks.NEW_TASK_2) //
-			.hasNotPassed(ManualTasks.NEW_FLOW_2) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
-			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
-			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
-			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
-			.hasNotPassed(UserTasks.WARE_SPENDEN) //
-			.isNotEnded(); //
-
-		complete(task(UserTasks.PAKET_SENDEN));
-
-		assertThat(processInstance) //
-			.hasPassed(Events.RETOURE_START) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
-			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
-			.hasPassed(ManualTasks.NEW_TASK_1) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
-			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
-			.hasPassed(UserTasks.MANUELLE_PRUEFUNG) //
-			.hasPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasPassed(UserTasks.PAKET_PACKEN) //
-			.hasPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasPassed(Gateways.GATEWAY_AUSPACKEN) //
-			.hasPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
-			.hasPassed(Gateways.GATEWAY_14EVKAP) //
-			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasPassed(UserTasks.PAKET_PACKEN) //
-			.hasPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasPassed(UserTasks.PAKET_SENDEN) //
-			.hasPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
-			.hasPassed(Events.RETOURE_ENDE) //
-			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
-			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
-			.hasNotPassed(ManualTasks.NEW_TASK_2) //
-			.hasNotPassed(ManualTasks.NEW_FLOW_2) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
-			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
-			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
-			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
-			.hasNotPassed(UserTasks.WARE_SPENDEN) //
-			.isEnded() //
-			.variables() //
-				.contains(entry(VAR_KUNDENNUMMER, "C-123A456"), entry(VAR_VORNAME, "Max"), entry(VAR_ERSTATTUNG, false), entry(VAR_NACHNAME, "Mustermann"), entry(VAR_BESCHAEDIGT, false)); //
-
-	}
-
-	@Test
-	@Deployment(resources = {"retoure.bpmn", "\\schuh_vernichtung_spende.dmn"})
-	public void vernichtenErstattung() {
-
-		ProcessInstance processInstance = runtimeService() //
-			.startProcessInstanceByKey("Retoure", withVariables(VAR_BESCHAEDIGT, true, VAR_ERSTATTUNG, true, VAR_KUNDENNUMMER, "C-123A456")); //
-
-		assertThat(processInstance) //
-			.isStarted() //
-			.hasPassed(Events.RETOURE_START) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
-			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
-			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
-			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
-			.hasNotPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
-			.hasNotPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG) //
-			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
-			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
-			.hasNotPassed(ManualTasks.NEW_TASK_2) //
-			.hasNotPassed(ManualTasks.NEW_FLOW_2) //
-			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Events.RETOURE_ENDE) //
-			.hasNotPassed(ManualTasks.WARE_EINSORTIEREN) //
-			.hasNotPassed(ManualTasks.NEW_TASK_1) //
-			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
-			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasNotPassed(UserTasks.PAKET_PACKEN) //
-			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasNotPassed(UserTasks.PAKET_SENDEN) //
-			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
-			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
-			.hasNotPassed(UserTasks.WARE_SPENDEN) //
-			.isNotEnded(); //
-
-		complete(task(UserTasks.WARENDATEN_ERFASSEN), withVariables(VAR_MARKE, "Luxury Foot", VAR_PREIS, 350));
-
-		assertThat(processInstance) //
-			.hasPassed(Events.RETOURE_START) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
-			.hasPassed(UserTasks.WARENDATEN_ERFASSEN) //
-			.hasPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_VERNICHTUNG) //
-			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
-			.hasNotPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
-			.hasNotPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG) //
-			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
-			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
-			.hasNotPassed(ManualTasks.NEW_TASK_2) //
-			.hasNotPassed(ManualTasks.NEW_FLOW_2) //
-			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Events.RETOURE_ENDE) //
-			.hasNotPassed(ManualTasks.WARE_EINSORTIEREN) //
-			.hasNotPassed(ManualTasks.NEW_TASK_1) //
-			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
-			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasNotPassed(UserTasks.PAKET_PACKEN) //
-			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasNotPassed(UserTasks.PAKET_SENDEN) //
-			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
-			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
-			.hasNotPassed(UserTasks.WARE_SPENDEN) //
-			.isNotEnded(); //
-
-		complete(task(UserTasks.WARE_VERNICHTEN));
-
-		assertThat(processInstance) //
-			.hasPassed(Events.RETOURE_START) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
-			.hasPassed(UserTasks.WARENDATEN_ERFASSEN) //
-			.hasPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_VERNICHTUNG) //
-			.hasPassed(UserTasks.WARE_VERNICHTEN) //
-			.hasPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
-			.hasNotPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG) //
-			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
-			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
-			.hasNotPassed(ManualTasks.NEW_TASK_2) //
-			.hasNotPassed(ManualTasks.NEW_FLOW_2) //
-			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Events.RETOURE_ENDE) //
-			.hasNotPassed(ManualTasks.WARE_EINSORTIEREN) //
-			.hasNotPassed(ManualTasks.NEW_TASK_1) //
-			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
-			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasNotPassed(UserTasks.PAKET_PACKEN) //
-			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasNotPassed(UserTasks.PAKET_SENDEN) //
-			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
-			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
-			.hasNotPassed(UserTasks.WARE_SPENDEN) //
-			.isNotEnded(); //
-
-		Map<String, Object> variableSnapshot0 = runtimeService() //
-			.getVariables(processInstance.getId()); //
-		List<LockedExternalTask> lockedTasks0 = lockTasks("customer");
-		complete(getLockedTask(lockedTasks0, ServiceTasks.KUNDENDATEN_ERMITTELN), ExternalServiceMockProvider.customerProvider(variableSnapshot0));
-
-		assertThat(processInstance) //
-			.hasPassed(Events.RETOURE_START) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
-			.hasPassed(UserTasks.WARENDATEN_ERFASSEN) //
-			.hasPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_VERNICHTUNG) //
-			.hasPassed(UserTasks.WARE_VERNICHTEN) //
-			.hasPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
-			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
-			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
-			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
-			.hasNotPassed(ManualTasks.NEW_TASK_2) //
-			.hasNotPassed(ManualTasks.NEW_FLOW_2) //
-			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Events.RETOURE_ENDE) //
-			.hasNotPassed(ManualTasks.WARE_EINSORTIEREN) //
-			.hasNotPassed(ManualTasks.NEW_TASK_1) //
-			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
-			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasNotPassed(UserTasks.PAKET_PACKEN) //
-			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasNotPassed(UserTasks.PAKET_SENDEN) //
-			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
-			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
-			.hasNotPassed(UserTasks.WARE_SPENDEN) //
-			.isNotEnded(); //
-
-		Map<String, Object> variableSnapshot1 = runtimeService() //
-			.getVariables(processInstance.getId()); //
-		variableSnapshot1.put(VAR_SERVICEIDENTIFIER, "getData");
-		List<LockedExternalTask> lockedTasks1 = lockTasks(lockedTasks0, "financial");
-		complete(getLockedTask(lockedTasks1, ServiceTasks.FINANZDATEN_ERMITTELN), ExternalServiceMockProvider.financialMock(variableSnapshot1));
-
-		assertThat(processInstance) //
-			.hasPassed(Events.RETOURE_START) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
-			.hasPassed(UserTasks.WARENDATEN_ERFASSEN) //
-			.hasPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_VERNICHTUNG) //
-			.hasPassed(UserTasks.WARE_VERNICHTEN) //
-			.hasPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
-			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
-			.hasPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
-			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
-			.hasNotPassed(ManualTasks.NEW_TASK_2) //
-			.hasNotPassed(ManualTasks.NEW_FLOW_2) //
-			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Events.RETOURE_ENDE) //
-			.hasNotPassed(ManualTasks.WARE_EINSORTIEREN) //
-			.hasNotPassed(ManualTasks.NEW_TASK_1) //
-			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
-			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasNotPassed(UserTasks.PAKET_PACKEN) //
-			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasNotPassed(UserTasks.PAKET_SENDEN) //
-			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
-			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
-			.hasNotPassed(UserTasks.WARE_SPENDEN) //
-			.isNotEnded(); //
-
-		Map<String, Object> variableSnapshot2 = runtimeService() //
-			.getVariables(processInstance.getId()); //
-		variableSnapshot2.put(VAR_SERVICEIDENTIFIER, "refund");
-		List<LockedExternalTask> lockedTasks2 = lockTasks(lockedTasks1, "financial");
-		complete(getLockedTask(lockedTasks2, ServiceTasks.ERSTATTUNG), ExternalServiceMockProvider.financialMock(variableSnapshot2));
-
-		assertThat(processInstance) //
-			.hasPassed(Events.RETOURE_START) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
-			.hasPassed(UserTasks.WARENDATEN_ERFASSEN) //
-			.hasPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_VERNICHTUNG) //
-			.hasPassed(UserTasks.WARE_VERNICHTEN) //
-			.hasPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
-			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
-			.hasPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
-			.hasPassed(ServiceTasks.ERSTATTUNG) //
-			.hasPassed(ManualTasks.NEW_TASK_2) //
-			.hasPassed(ManualTasks.NEW_FLOW_2) //
-			.hasPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
-			.hasPassed(Events.RETOURE_ENDE) //
-			.hasNotPassed(ManualTasks.WARE_EINSORTIEREN) //
-			.hasNotPassed(ManualTasks.NEW_TASK_1) //
-			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
-			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasNotPassed(UserTasks.PAKET_PACKEN) //
-			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasNotPassed(UserTasks.PAKET_SENDEN) //
-			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
-			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
-			.hasNotPassed(UserTasks.WARE_SPENDEN) //
-			.isEnded() //
-			.variables() //
-				.contains(entry(VAR_KUNDENNUMMER, "C-123A456"), entry(VAR_EMAILGESENDET, "Nein"), entry(VAR_MARKE, "Luxury Foot"), entry(VAR_IBAN, "DE12345678900000123456"), entry(VAR_VORNAME, "Max"), entry(VAR_ERSTATTUNG, true), entry(VAR_NACHNAME, "Mustermann"), entry(VAR_BESCHAEDIGT, true)); //
-
-	}
-
-	@Test
-	@Deployment(resources = {"retoure.bpmn", "\\schuh_vernichtung_spende.dmn"})
-	public void casetill1() {
-
-		ProcessInstance processInstance = runtimeService() //
-			.startProcessInstanceByKey("Retoure", withVariables(VAR_BESCHAEDIGT, true, VAR_ERSTATTUNG, true, VAR_KUNDENNUMMER, "123")); //
-
-		assertThat(processInstance) //
-			.isStarted() //
-			.hasPassed(Events.RETOURE_START) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
-			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
-			.hasPassed(ManualTasks.NEW_TASK_1) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
-			.hasNotPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG) //
-			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
-			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasNotPassed(UserTasks.PAKET_PACKEN) //
-			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasNotPassed(UserTasks.PAKET_SENDEN) //
-			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Events.RETOURE_ENDE) //
-			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
-			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
-			.hasNotPassed(ManualTasks.NEW_TASK_2) //
-			.hasNotPassed(ManualTasks.NEW_FLOW_2) //
-			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
-			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
-			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
-			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
-			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
-			.hasNotPassed(UserTasks.WARE_SPENDEN) //
-			.isNotEnded(); //
-
-		Map<String, Object> variableSnapshot0 = runtimeService() //
-			.getVariables(processInstance.getId()); //
-		List<LockedExternalTask> lockedTasks0 = lockTasks("customer");
-		complete(getLockedTask(lockedTasks0, ServiceTasks.KUNDENDATEN_ERMITTELN), ExternalServiceMockProvider.customerProvider(variableSnapshot0));
-
-		assertThat(processInstance) //
-			.hasPassed(Events.RETOURE_START) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
-			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
-			.hasPassed(ManualTasks.NEW_TASK_1) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
-			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
-			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
-			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasNotPassed(UserTasks.PAKET_PACKEN) //
-			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasNotPassed(UserTasks.PAKET_SENDEN) //
-			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Events.RETOURE_ENDE) //
-			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
-			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
-			.hasNotPassed(ManualTasks.NEW_TASK_2) //
-			.hasNotPassed(ManualTasks.NEW_FLOW_2) //
-			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
-			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
-			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
-			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
-			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
-			.hasNotPassed(UserTasks.WARE_SPENDEN) //
-			.isNotEnded(); //
-
-		complete(task(UserTasks.MANUELLE_PRUEFUNG));
-
-		assertThat(processInstance) //
-			.hasPassed(Events.RETOURE_START) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
-			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
-			.hasPassed(ManualTasks.NEW_TASK_1) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
-			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
-			.hasPassed(UserTasks.MANUELLE_PRUEFUNG) //
-			.hasPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasNotPassed(UserTasks.PAKET_PACKEN) //
-			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasNotPassed(UserTasks.PAKET_SENDEN) //
-			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Events.RETOURE_ENDE) //
-			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
-			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
-			.hasNotPassed(ManualTasks.NEW_TASK_2) //
-			.hasNotPassed(ManualTasks.NEW_FLOW_2) //
-			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
-			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
-			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
-			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
-			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
-			.hasNotPassed(UserTasks.WARE_SPENDEN) //
-			.isNotEnded(); //
-
-		complete(task(UserTasks.PAKET_PACKEN));
-
-		assertThat(processInstance) //
-			.hasPassed(Events.RETOURE_START) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
-			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
-			.hasPassed(ManualTasks.NEW_TASK_1) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
-			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
-			.hasPassed(UserTasks.MANUELLE_PRUEFUNG) //
-			.hasPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasPassed(UserTasks.PAKET_PACKEN) //
-			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasNotPassed(UserTasks.PAKET_SENDEN) //
-			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Events.RETOURE_ENDE) //
-			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
-			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
-			.hasNotPassed(ManualTasks.NEW_TASK_2) //
-			.hasNotPassed(ManualTasks.NEW_FLOW_2) //
-			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
-			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
-			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
-			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
-			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
-			.hasNotPassed(UserTasks.WARE_SPENDEN) //
-			.isNotEnded(); //
-
-		complete(task(UserTasks.PAKET_PRUEFEN));
-
-		assertThat(processInstance) //
-			.hasPassed(Events.RETOURE_START) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
-			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
-			.hasPassed(ManualTasks.NEW_TASK_1) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
-			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
-			.hasPassed(UserTasks.MANUELLE_PRUEFUNG) //
-			.hasPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasPassed(UserTasks.PAKET_PACKEN) //
-			.hasPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasNotPassed(UserTasks.PAKET_SENDEN) //
-			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Events.RETOURE_ENDE) //
-			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
-			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
-			.hasNotPassed(ManualTasks.NEW_TASK_2) //
-			.hasNotPassed(ManualTasks.NEW_FLOW_2) //
-			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
-			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
-			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
-			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
-			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
-			.hasNotPassed(UserTasks.WARE_SPENDEN) //
-			.isNotEnded(); //
-
-		complete(task(UserTasks.PAKET_SENDEN));
-
-		assertThat(processInstance) //
-			.hasPassed(Events.RETOURE_START) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
-			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
-			.hasPassed(ManualTasks.NEW_TASK_1) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
-			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
-			.hasPassed(UserTasks.MANUELLE_PRUEFUNG) //
-			.hasPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasPassed(UserTasks.PAKET_PACKEN) //
-			.hasPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasPassed(UserTasks.PAKET_SENDEN) //
-			.hasPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
-			.hasPassed(Events.RETOURE_ENDE) //
-			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
-			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
-			.hasNotPassed(ManualTasks.NEW_TASK_2) //
-			.hasNotPassed(ManualTasks.NEW_FLOW_2) //
-			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
-			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
-			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
-			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
-			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
-			.hasNotPassed(UserTasks.WARE_SPENDEN) //
-			.isEnded() //
-			.variables() //
-				.contains(entry(VAR_IBANREFUND, "DE80123084556"), entry(VAR_FIRSTNAME, "Till"), entry(VAR_VORNAME, "till"), entry(VAR_LASTNAME, "Brinkhus"), entry(VAR_SERVICEIDENTIFIER, "getData"), entry(VAR_BESCHAEDIGT, false), entry(VAR_KUNDENNUMMER, "123"), entry(VAR_EMAILGESENDET, "Ja"), entry(VAR_PREIS, 1234), entry(VAR_MARKE, "wer"), entry(VAR_IBAN, "DE80123084556"), entry(VAR_ERSTATTUNG, true), entry(VAR_CONFIRMATIONEMAILSENT, "Ja"), entry(VAR_NACHNAME, "Brinkhus"), entry(VAR_PAKETTYP, "Normalverpackung"), entry(VAR_PAKET, true)); //
-
-	}
-}
+package de.sample.onlineschuhdemo;
+
+import static org.camunda.bpm.engine.test.assertions.ProcessEngineTests.*;
+import static org.camunda.bpm.engine.test.assertions.bpmn.BpmnAwareTests.complete;
+import static org.camunda.bpm.engine.test.assertions.bpmn.BpmnAwareTests.runtimeService;
+import static org.camunda.bpm.engine.test.assertions.bpmn.BpmnAwareTests.task;
+import static org.camunda.bpm.engine.test.assertions.bpmn.BpmnAwareTests.withVariables;
+import static org.assertj.core.api.Assertions.entry;
+import static de.sample.onlineschuhdemo.TestUtils.*;
+
+import org.apache.ibatis.logging.LogFactory;
+import org.camunda.bpm.engine.runtime.ProcessInstance;
+import org.camunda.bpm.engine.test.Deployment;
+import org.camunda.bpm.engine.test.ProcessEngineRule;
+import org.camunda.bpm.engine.externaltask.LockedExternalTask;
+import org.camunda.bpm.engine.test.mock.Mocks;
+import de.sample.onlineschuhdemo.externalaccess.LagerService;
+import de.sample.onlineschuhdemo.externalaccess.WarennummerErmittelnDelegate;
+import org.camunda.bpm.extension.process_test_coverage.junit.rules.TestCoverageProcessEngineRuleBuilder;
+import org.junit.Before;
+import org.junit.ClassRule;
+import org.junit.Rule;
+import org.junit.Test;
+import java.util.List;
+import java.util.Map;
+
+public class MatchingTestcollectionOld {
+
+	@ClassRule
+	@Rule
+	public static ProcessEngineRule rule = TestCoverageProcessEngineRuleBuilder.create().build();
+
+	private static final String VAR_KUNDENNUMMER = "kundennummer";
+	private static final String VAR_MARKE = "marke";
+	private static final String VAR_IBAN = "iban";
+	private static final String VAR_VORNAME = "vorname";
+	private static final String VAR_NACHNAME = "nachname";
+	private static final String VAR_PAKETTYP = "pakettyp";
+	private static final String VAR_EMAILGESENDET = "emailGesendet";
+	private static final String VAR_FIRSTNAME = "firstname";
+	private static final String VAR_LASTNAME = "lastname";
+	private static final String VAR_IBANREFUND = "ibanRefund";
+	private static final String VAR_CONFIRMATIONEMAILSENT = "confirmationEmailSent";
+	private static final String VAR_SERVICEIDENTIFIER = "serviceIdentifier";
+	private static final String VAR_PREIS = "preis";
+	private static final String VAR_ERSTATTUNG = "erstattung";
+	private static final String VAR_PAKET = "paket";
+	private static final String VAR_BESCHAEDIGT = "beschaedigt";
+
+	static {
+		LogFactory.useSlf4jLogging();
+	}
+
+	@Before
+	public void setup() {
+		init(rule.getProcessEngine());
+
+		LagerService lagerService = new LagerService();
+
+		WarennummerErmittelnDelegate warennummerErmittelnDelegate = new WarennummerErmittelnDelegate();
+		warennummerErmittelnDelegate.setLagerService(lagerService);
+
+		Mocks.register("warennummer", warennummerErmittelnDelegate);
+	}
+
+	@Test
+	@Deployment(resources = {"retoure.bpmn", "\\schuh_vernichtung_spende.dmn"})
+	public void normalverpackungAuspacken() {
+
+		ProcessInstance processInstance = runtimeService() //
+			.startProcessInstanceByKey("Retoure", withVariables(VAR_BESCHAEDIGT, false, VAR_ERSTATTUNG, false, VAR_KUNDENNUMMER, "C-123A456")); //
+
+		assertThat(processInstance) //
+			.isStarted() //
+			.hasPassed(Events.RETOURE_START) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
+			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
+			.hasPassed(ManualTasks.NEW_TASK_1) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
+			.hasNotPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG) //
+			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
+			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasNotPassed(UserTasks.PAKET_PACKEN) //
+			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
+			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasNotPassed(UserTasks.PAKET_PACKEN) //
+			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(UserTasks.PAKET_SENDEN) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Events.RETOURE_ENDE) //
+			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
+			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
+			.hasNotPassed(ManualTasks.NEW_TASK_2) //
+			.hasNotPassed(ManualTasks.NEW_FLOW_2) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
+			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
+			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
+			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
+			.hasNotPassed(UserTasks.WARE_SPENDEN) //
+			.isNotEnded(); //
+
+		Map<String, Object> variableSnapshot0 = runtimeService() //
+			.getVariables(processInstance.getId()); //
+		List<LockedExternalTask> lockedTasks0 = lockTasks("customer");
+		complete(getLockedTask(lockedTasks0, ServiceTasks.KUNDENDATEN_ERMITTELN), ExternalServiceMockProvider.customerProvider(variableSnapshot0));
+
+		assertThat(processInstance) //
+			.hasPassed(Events.RETOURE_START) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
+			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
+			.hasPassed(ManualTasks.NEW_TASK_1) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
+			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
+			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
+			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasNotPassed(UserTasks.PAKET_PACKEN) //
+			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
+			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasNotPassed(UserTasks.PAKET_PACKEN) //
+			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(UserTasks.PAKET_SENDEN) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Events.RETOURE_ENDE) //
+			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
+			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
+			.hasNotPassed(ManualTasks.NEW_TASK_2) //
+			.hasNotPassed(ManualTasks.NEW_FLOW_2) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
+			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
+			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
+			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
+			.hasNotPassed(UserTasks.WARE_SPENDEN) //
+			.isNotEnded(); //
+
+		complete(task(UserTasks.MANUELLE_PRUEFUNG));
+
+		assertThat(processInstance) //
+			.hasPassed(Events.RETOURE_START) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
+			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
+			.hasPassed(ManualTasks.NEW_TASK_1) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
+			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
+			.hasPassed(UserTasks.MANUELLE_PRUEFUNG) //
+			.hasPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasNotPassed(UserTasks.PAKET_PACKEN) //
+			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
+			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasNotPassed(UserTasks.PAKET_PACKEN) //
+			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(UserTasks.PAKET_SENDEN) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Events.RETOURE_ENDE) //
+			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
+			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
+			.hasNotPassed(ManualTasks.NEW_TASK_2) //
+			.hasNotPassed(ManualTasks.NEW_FLOW_2) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
+			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
+			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
+			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
+			.hasNotPassed(UserTasks.WARE_SPENDEN) //
+			.isNotEnded(); //
+
+		complete(task(UserTasks.PAKET_PACKEN), withVariables(VAR_PAKETTYP, "Normalverpackung"));
+
+		assertThat(processInstance) //
+			.hasPassed(Events.RETOURE_START) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
+			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
+			.hasPassed(ManualTasks.NEW_TASK_1) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
+			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
+			.hasPassed(UserTasks.MANUELLE_PRUEFUNG) //
+			.hasPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasPassed(UserTasks.PAKET_PACKEN) //
+			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
+			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasPassed(UserTasks.PAKET_PACKEN) //
+			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(UserTasks.PAKET_SENDEN) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Events.RETOURE_ENDE) //
+			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
+			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
+			.hasNotPassed(ManualTasks.NEW_TASK_2) //
+			.hasNotPassed(ManualTasks.NEW_FLOW_2) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
+			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
+			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
+			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
+			.hasNotPassed(UserTasks.WARE_SPENDEN) //
+			.isNotEnded(); //
+
+		complete(task(UserTasks.PAKET_PRUEFEN), withVariables(VAR_PAKET, false));
+
+		assertThat(processInstance) //
+			.hasPassed(Events.RETOURE_START) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
+			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
+			.hasPassed(ManualTasks.NEW_TASK_1) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
+			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
+			.hasPassed(UserTasks.MANUELLE_PRUEFUNG) //
+			.hasPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasPassed(UserTasks.PAKET_PACKEN) //
+			.hasPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasPassed(Gateways.GATEWAY_AUSPACKEN) //
+			.hasPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
+			.hasPassed(Gateways.GATEWAY_14EVKAP) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasPassed(UserTasks.PAKET_PACKEN) //
+			.hasPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(UserTasks.PAKET_SENDEN) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Events.RETOURE_ENDE) //
+			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
+			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
+			.hasNotPassed(ManualTasks.NEW_TASK_2) //
+			.hasNotPassed(ManualTasks.NEW_FLOW_2) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
+			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
+			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
+			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
+			.hasNotPassed(UserTasks.WARE_SPENDEN) //
+			.isNotEnded(); //
+
+		complete(task(UserTasks.PAKET_PACKEN), withVariables(VAR_PAKETTYP, "Luxusverpackung"));
+
+		assertThat(processInstance) //
+			.hasPassed(Events.RETOURE_START) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
+			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
+			.hasPassed(ManualTasks.NEW_TASK_1) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
+			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
+			.hasPassed(UserTasks.MANUELLE_PRUEFUNG) //
+			.hasPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasPassed(UserTasks.PAKET_PACKEN) //
+			.hasPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasPassed(Gateways.GATEWAY_AUSPACKEN) //
+			.hasPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
+			.hasPassed(Gateways.GATEWAY_14EVKAP) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasPassed(UserTasks.PAKET_PACKEN) //
+			.hasPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(UserTasks.PAKET_SENDEN) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Events.RETOURE_ENDE) //
+			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
+			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
+			.hasNotPassed(ManualTasks.NEW_TASK_2) //
+			.hasNotPassed(ManualTasks.NEW_FLOW_2) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
+			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
+			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
+			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
+			.hasNotPassed(UserTasks.WARE_SPENDEN) //
+			.isNotEnded(); //
+
+		complete(task(UserTasks.PAKET_PRUEFEN), withVariables(VAR_PAKET, true));
+
+		assertThat(processInstance) //
+			.hasPassed(Events.RETOURE_START) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
+			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
+			.hasPassed(ManualTasks.NEW_TASK_1) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
+			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
+			.hasPassed(UserTasks.MANUELLE_PRUEFUNG) //
+			.hasPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasPassed(UserTasks.PAKET_PACKEN) //
+			.hasPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasPassed(Gateways.GATEWAY_AUSPACKEN) //
+			.hasPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
+			.hasPassed(Gateways.GATEWAY_14EVKAP) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasPassed(UserTasks.PAKET_PACKEN) //
+			.hasPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(UserTasks.PAKET_SENDEN) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Events.RETOURE_ENDE) //
+			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
+			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
+			.hasNotPassed(ManualTasks.NEW_TASK_2) //
+			.hasNotPassed(ManualTasks.NEW_FLOW_2) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
+			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
+			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
+			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
+			.hasNotPassed(UserTasks.WARE_SPENDEN) //
+			.isNotEnded(); //
+
+		complete(task(UserTasks.PAKET_SENDEN));
+
+		assertThat(processInstance) //
+			.hasPassed(Events.RETOURE_START) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
+			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
+			.hasPassed(ManualTasks.NEW_TASK_1) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
+			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
+			.hasPassed(UserTasks.MANUELLE_PRUEFUNG) //
+			.hasPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasPassed(UserTasks.PAKET_PACKEN) //
+			.hasPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasPassed(Gateways.GATEWAY_AUSPACKEN) //
+			.hasPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
+			.hasPassed(Gateways.GATEWAY_14EVKAP) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasPassed(UserTasks.PAKET_PACKEN) //
+			.hasPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasPassed(UserTasks.PAKET_SENDEN) //
+			.hasPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
+			.hasPassed(Events.RETOURE_ENDE) //
+			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
+			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
+			.hasNotPassed(ManualTasks.NEW_TASK_2) //
+			.hasNotPassed(ManualTasks.NEW_FLOW_2) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
+			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
+			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
+			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
+			.hasNotPassed(UserTasks.WARE_SPENDEN) //
+			.isEnded() //
+			.variables() //
+				.contains(entry(VAR_KUNDENNUMMER, "C-123A456"), entry(VAR_VORNAME, "Max"), entry(VAR_ERSTATTUNG, false), entry(VAR_NACHNAME, "Mustermann"), entry(VAR_BESCHAEDIGT, false)); //
+
+	}
+
+	@Test
+	@Deployment(resources = {"retoure.bpmn", "\\schuh_vernichtung_spende.dmn"})
+	public void vernichtenErstattung() {
+
+		ProcessInstance processInstance = runtimeService() //
+			.startProcessInstanceByKey("Retoure", withVariables(VAR_BESCHAEDIGT, true, VAR_ERSTATTUNG, true, VAR_KUNDENNUMMER, "C-123A456")); //
+
+		assertThat(processInstance) //
+			.isStarted() //
+			.hasPassed(Events.RETOURE_START) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
+			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
+			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
+			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
+			.hasNotPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
+			.hasNotPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG) //
+			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
+			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
+			.hasNotPassed(ManualTasks.NEW_TASK_2) //
+			.hasNotPassed(ManualTasks.NEW_FLOW_2) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Events.RETOURE_ENDE) //
+			.hasNotPassed(ManualTasks.WARE_EINSORTIEREN) //
+			.hasNotPassed(ManualTasks.NEW_TASK_1) //
+			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
+			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasNotPassed(UserTasks.PAKET_PACKEN) //
+			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(UserTasks.PAKET_SENDEN) //
+			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
+			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
+			.hasNotPassed(UserTasks.WARE_SPENDEN) //
+			.isNotEnded(); //
+
+		complete(task(UserTasks.WARENDATEN_ERFASSEN), withVariables(VAR_MARKE, "Luxury Foot", VAR_PREIS, 350));
+
+		assertThat(processInstance) //
+			.hasPassed(Events.RETOURE_START) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
+			.hasPassed(UserTasks.WARENDATEN_ERFASSEN) //
+			.hasPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_VERNICHTUNG) //
+			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
+			.hasNotPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
+			.hasNotPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG) //
+			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
+			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
+			.hasNotPassed(ManualTasks.NEW_TASK_2) //
+			.hasNotPassed(ManualTasks.NEW_FLOW_2) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Events.RETOURE_ENDE) //
+			.hasNotPassed(ManualTasks.WARE_EINSORTIEREN) //
+			.hasNotPassed(ManualTasks.NEW_TASK_1) //
+			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
+			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasNotPassed(UserTasks.PAKET_PACKEN) //
+			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(UserTasks.PAKET_SENDEN) //
+			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
+			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
+			.hasNotPassed(UserTasks.WARE_SPENDEN) //
+			.isNotEnded(); //
+
+		complete(task(UserTasks.WARE_VERNICHTEN));
+
+		assertThat(processInstance) //
+			.hasPassed(Events.RETOURE_START) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
+			.hasPassed(UserTasks.WARENDATEN_ERFASSEN) //
+			.hasPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_VERNICHTUNG) //
+			.hasPassed(UserTasks.WARE_VERNICHTEN) //
+			.hasPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
+			.hasNotPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG) //
+			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
+			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
+			.hasNotPassed(ManualTasks.NEW_TASK_2) //
+			.hasNotPassed(ManualTasks.NEW_FLOW_2) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Events.RETOURE_ENDE) //
+			.hasNotPassed(ManualTasks.WARE_EINSORTIEREN) //
+			.hasNotPassed(ManualTasks.NEW_TASK_1) //
+			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
+			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasNotPassed(UserTasks.PAKET_PACKEN) //
+			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(UserTasks.PAKET_SENDEN) //
+			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
+			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
+			.hasNotPassed(UserTasks.WARE_SPENDEN) //
+			.isNotEnded(); //
+
+		Map<String, Object> variableSnapshot0 = runtimeService() //
+			.getVariables(processInstance.getId()); //
+		List<LockedExternalTask> lockedTasks0 = lockTasks("customer");
+		complete(getLockedTask(lockedTasks0, ServiceTasks.KUNDENDATEN_ERMITTELN), ExternalServiceMockProvider.customerProvider(variableSnapshot0));
+
+		assertThat(processInstance) //
+			.hasPassed(Events.RETOURE_START) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
+			.hasPassed(UserTasks.WARENDATEN_ERFASSEN) //
+			.hasPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_VERNICHTUNG) //
+			.hasPassed(UserTasks.WARE_VERNICHTEN) //
+			.hasPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
+			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
+			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
+			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
+			.hasNotPassed(ManualTasks.NEW_TASK_2) //
+			.hasNotPassed(ManualTasks.NEW_FLOW_2) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Events.RETOURE_ENDE) //
+			.hasNotPassed(ManualTasks.WARE_EINSORTIEREN) //
+			.hasNotPassed(ManualTasks.NEW_TASK_1) //
+			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
+			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasNotPassed(UserTasks.PAKET_PACKEN) //
+			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(UserTasks.PAKET_SENDEN) //
+			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
+			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
+			.hasNotPassed(UserTasks.WARE_SPENDEN) //
+			.isNotEnded(); //
+
+		Map<String, Object> variableSnapshot1 = runtimeService() //
+			.getVariables(processInstance.getId()); //
+		variableSnapshot1.put(VAR_SERVICEIDENTIFIER, "getData");
+		List<LockedExternalTask> lockedTasks1 = lockTasks(lockedTasks0, "financial");
+		complete(getLockedTask(lockedTasks1, ServiceTasks.FINANZDATEN_ERMITTELN), ExternalServiceMockProvider.financialMock(variableSnapshot1));
+
+		assertThat(processInstance) //
+			.hasPassed(Events.RETOURE_START) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
+			.hasPassed(UserTasks.WARENDATEN_ERFASSEN) //
+			.hasPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_VERNICHTUNG) //
+			.hasPassed(UserTasks.WARE_VERNICHTEN) //
+			.hasPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
+			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
+			.hasPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
+			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
+			.hasNotPassed(ManualTasks.NEW_TASK_2) //
+			.hasNotPassed(ManualTasks.NEW_FLOW_2) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Events.RETOURE_ENDE) //
+			.hasNotPassed(ManualTasks.WARE_EINSORTIEREN) //
+			.hasNotPassed(ManualTasks.NEW_TASK_1) //
+			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
+			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasNotPassed(UserTasks.PAKET_PACKEN) //
+			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(UserTasks.PAKET_SENDEN) //
+			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
+			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
+			.hasNotPassed(UserTasks.WARE_SPENDEN) //
+			.isNotEnded(); //
+
+		Map<String, Object> variableSnapshot2 = runtimeService() //
+			.getVariables(processInstance.getId()); //
+		variableSnapshot2.put(VAR_SERVICEIDENTIFIER, "refund");
+		List<LockedExternalTask> lockedTasks2 = lockTasks(lockedTasks1, "financial");
+		complete(getLockedTask(lockedTasks2, ServiceTasks.ERSTATTUNG), ExternalServiceMockProvider.financialMock(variableSnapshot2));
+
+		assertThat(processInstance) //
+			.hasPassed(Events.RETOURE_START) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
+			.hasPassed(UserTasks.WARENDATEN_ERFASSEN) //
+			.hasPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_VERNICHTUNG) //
+			.hasPassed(UserTasks.WARE_VERNICHTEN) //
+			.hasPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
+			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
+			.hasPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
+			.hasPassed(ServiceTasks.ERSTATTUNG) //
+			.hasPassed(ManualTasks.NEW_TASK_2) //
+			.hasPassed(ManualTasks.NEW_FLOW_2) //
+			.hasPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
+			.hasPassed(Events.RETOURE_ENDE) //
+			.hasNotPassed(ManualTasks.WARE_EINSORTIEREN) //
+			.hasNotPassed(ManualTasks.NEW_TASK_1) //
+			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
+			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasNotPassed(UserTasks.PAKET_PACKEN) //
+			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(UserTasks.PAKET_SENDEN) //
+			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
+			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
+			.hasNotPassed(UserTasks.WARE_SPENDEN) //
+			.isEnded() //
+			.variables() //
+				.contains(entry(VAR_KUNDENNUMMER, "C-123A456"), entry(VAR_EMAILGESENDET, "Nein"), entry(VAR_MARKE, "Luxury Foot"), entry(VAR_IBAN, "DE12345678900000123456"), entry(VAR_VORNAME, "Max"), entry(VAR_ERSTATTUNG, true), entry(VAR_NACHNAME, "Mustermann"), entry(VAR_BESCHAEDIGT, true)); //
+
+	}
+
+	@Test
+	@Deployment(resources = {"retoure.bpmn", "\\schuh_vernichtung_spende.dmn"})
+	public void casetill1() {
+
+		ProcessInstance processInstance = runtimeService() //
+			.startProcessInstanceByKey("Retoure", withVariables(VAR_BESCHAEDIGT, true, VAR_ERSTATTUNG, true, VAR_KUNDENNUMMER, "123")); //
+
+		assertThat(processInstance) //
+			.isStarted() //
+			.hasPassed(Events.RETOURE_START) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
+			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
+			.hasPassed(ManualTasks.NEW_TASK_1) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
+			.hasNotPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG) //
+			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
+			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasNotPassed(UserTasks.PAKET_PACKEN) //
+			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(UserTasks.PAKET_SENDEN) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Events.RETOURE_ENDE) //
+			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
+			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
+			.hasNotPassed(ManualTasks.NEW_TASK_2) //
+			.hasNotPassed(ManualTasks.NEW_FLOW_2) //
+			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
+			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
+			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
+			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
+			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
+			.hasNotPassed(UserTasks.WARE_SPENDEN) //
+			.isNotEnded(); //
+
+		Map<String, Object> variableSnapshot0 = runtimeService() //
+			.getVariables(processInstance.getId()); //
+		List<LockedExternalTask> lockedTasks0 = lockTasks("customer");
+		complete(getLockedTask(lockedTasks0, ServiceTasks.KUNDENDATEN_ERMITTELN), ExternalServiceMockProvider.customerProvider(variableSnapshot0));
+
+		assertThat(processInstance) //
+			.hasPassed(Events.RETOURE_START) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
+			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
+			.hasPassed(ManualTasks.NEW_TASK_1) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
+			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
+			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
+			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasNotPassed(UserTasks.PAKET_PACKEN) //
+			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(UserTasks.PAKET_SENDEN) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Events.RETOURE_ENDE) //
+			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
+			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
+			.hasNotPassed(ManualTasks.NEW_TASK_2) //
+			.hasNotPassed(ManualTasks.NEW_FLOW_2) //
+			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
+			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
+			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
+			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
+			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
+			.hasNotPassed(UserTasks.WARE_SPENDEN) //
+			.isNotEnded(); //
+
+		complete(task(UserTasks.MANUELLE_PRUEFUNG));
+
+		assertThat(processInstance) //
+			.hasPassed(Events.RETOURE_START) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
+			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
+			.hasPassed(ManualTasks.NEW_TASK_1) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
+			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
+			.hasPassed(UserTasks.MANUELLE_PRUEFUNG) //
+			.hasPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasNotPassed(UserTasks.PAKET_PACKEN) //
+			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(UserTasks.PAKET_SENDEN) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Events.RETOURE_ENDE) //
+			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
+			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
+			.hasNotPassed(ManualTasks.NEW_TASK_2) //
+			.hasNotPassed(ManualTasks.NEW_FLOW_2) //
+			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
+			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
+			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
+			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
+			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
+			.hasNotPassed(UserTasks.WARE_SPENDEN) //
+			.isNotEnded(); //
+
+		complete(task(UserTasks.PAKET_PACKEN));
+
+		assertThat(processInstance) //
+			.hasPassed(Events.RETOURE_START) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
+			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
+			.hasPassed(ManualTasks.NEW_TASK_1) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
+			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
+			.hasPassed(UserTasks.MANUELLE_PRUEFUNG) //
+			.hasPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasPassed(UserTasks.PAKET_PACKEN) //
+			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(UserTasks.PAKET_SENDEN) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Events.RETOURE_ENDE) //
+			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
+			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
+			.hasNotPassed(ManualTasks.NEW_TASK_2) //
+			.hasNotPassed(ManualTasks.NEW_FLOW_2) //
+			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
+			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
+			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
+			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
+			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
+			.hasNotPassed(UserTasks.WARE_SPENDEN) //
+			.isNotEnded(); //
+
+		complete(task(UserTasks.PAKET_PRUEFEN));
+
+		assertThat(processInstance) //
+			.hasPassed(Events.RETOURE_START) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
+			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
+			.hasPassed(ManualTasks.NEW_TASK_1) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
+			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
+			.hasPassed(UserTasks.MANUELLE_PRUEFUNG) //
+			.hasPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasPassed(UserTasks.PAKET_PACKEN) //
+			.hasPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(UserTasks.PAKET_SENDEN) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Events.RETOURE_ENDE) //
+			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
+			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
+			.hasNotPassed(ManualTasks.NEW_TASK_2) //
+			.hasNotPassed(ManualTasks.NEW_FLOW_2) //
+			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
+			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
+			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
+			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
+			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
+			.hasNotPassed(UserTasks.WARE_SPENDEN) //
+			.isNotEnded(); //
+
+		complete(task(UserTasks.PAKET_SENDEN));
+
+		assertThat(processInstance) //
+			.hasPassed(Events.RETOURE_START) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
+			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
+			.hasPassed(ManualTasks.NEW_TASK_1) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
+			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
+			.hasPassed(UserTasks.MANUELLE_PRUEFUNG) //
+			.hasPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasPassed(UserTasks.PAKET_PACKEN) //
+			.hasPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasPassed(UserTasks.PAKET_SENDEN) //
+			.hasPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
+			.hasPassed(Events.RETOURE_ENDE) //
+			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
+			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
+			.hasNotPassed(ManualTasks.NEW_TASK_2) //
+			.hasNotPassed(ManualTasks.NEW_FLOW_2) //
+			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
+			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
+			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
+			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
+			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
+			.hasNotPassed(UserTasks.WARE_SPENDEN) //
+			.isEnded() //
+			.variables() //
+				.contains(entry(VAR_IBANREFUND, "DE80123084556"), entry(VAR_FIRSTNAME, "Till"), entry(VAR_VORNAME, "till"), entry(VAR_LASTNAME, "Brinkhus"), entry(VAR_SERVICEIDENTIFIER, "getData"), entry(VAR_BESCHAEDIGT, false), entry(VAR_KUNDENNUMMER, "123"), entry(VAR_EMAILGESENDET, "Ja"), entry(VAR_PREIS, 1234), entry(VAR_MARKE, "wer"), entry(VAR_IBAN, "DE80123084556"), entry(VAR_ERSTATTUNG, true), entry(VAR_CONFIRMATIONEMAILSENT, "Ja"), entry(VAR_NACHNAME, "Brinkhus"), entry(VAR_PAKETTYP, "Normalverpackung"), entry(VAR_PAKET, true)); //
+
+	}
+}
diff --git a/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/Testcollection-old.java b/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/Testcollection-old.java
new file mode 100644
index 0000000..94c502e
--- /dev/null
+++ b/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/Testcollection-old.java
@@ -0,0 +1,39 @@
+package de.sample.onlineschuhdemo;
+
+import static org.camunda.bpm.engine.test.assertions.ProcessEngineTests.*;
+import static org.camunda.bpm.engine.test.assertions.bpmn.BpmnAwareTests.complete;
+import static org.camunda.bpm.engine.test.assertions.bpmn.BpmnAwareTests.runtimeService;
+import static org.camunda.bpm.engine.test.assertions.bpmn.BpmnAwareTests.task;
+import static org.camunda.bpm.engine.test.assertions.bpmn.BpmnAwareTests.withVariables;
+import static org.assertj.core.api.Assertions.entry;
+import static de.sample.onlineschuhdemo.TestUtils.*;
+
+import org.apache.ibatis.logging.LogFactory;
+import org.camunda.bpm.engine.runtime.ProcessInstance;
+import org.camunda.bpm.engine.test.Deployment;
+import org.camunda.bpm.engine.test.ProcessEngineRule;
+import org.camunda.bpm.engine.externaltask.LockedExternalTask;
+import org.camunda.bpm.extension.process_test_coverage.junit.rules.TestCoverageProcessEngineRuleBuilder;
+import org.junit.Before;
+import org.junit.ClassRule;
+import org.junit.Rule;
+import org.junit.Test;
+import java.util.List;
+import java.util.Map;
+
+public class Testcollection-old {
+
+	@ClassRule
+	@Rule
+	public static ProcessEngineRule rule = TestCoverageProcessEngineRuleBuilder.create().build();
+
+
+	static {
+		LogFactory.useSlf4jLogging();
+	}
+
+	@Before
+	public void setup() {
+		init(rule.getProcessEngine());
+	}
+}
diff --git a/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/Testcollection.java b/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/Testcollection.java
index 1407139..4eefa28 100644
--- a/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/Testcollection.java
+++ b/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/Testcollection.java
@@ -1,919 +1,1134 @@
-package de.sample.onlineschuhdemo;
-
-import static org.camunda.bpm.engine.test.assertions.ProcessEngineTests.*;
-import static org.camunda.bpm.engine.test.assertions.bpmn.BpmnAwareTests.complete;
-import static org.camunda.bpm.engine.test.assertions.bpmn.BpmnAwareTests.runtimeService;
-import static org.camunda.bpm.engine.test.assertions.bpmn.BpmnAwareTests.task;
-import static org.camunda.bpm.engine.test.assertions.bpmn.BpmnAwareTests.withVariables;
-import static org.assertj.core.api.Assertions.entry;
-import static de.sample.onlineschuhdemo.TestUtils.*;
-
-import org.apache.ibatis.logging.LogFactory;
-import org.camunda.bpm.engine.runtime.ProcessInstance;
-import org.camunda.bpm.engine.test.Deployment;
-import org.camunda.bpm.engine.test.ProcessEngineRule;
-import org.camunda.bpm.engine.externaltask.LockedExternalTask;
-import org.camunda.bpm.engine.test.mock.Mocks;
-import de.sample.onlineschuhdemo.externalaccess.LagerService;
-import de.sample.onlineschuhdemo.externalaccess.WarennummerErmittelnDelegate;
-import org.camunda.bpm.extension.process_test_coverage.junit.rules.TestCoverageProcessEngineRuleBuilder;
-import org.junit.Before;
-import org.junit.ClassRule;
-import org.junit.Rule;
-import org.junit.Test;
-import java.util.List;
-import java.util.Map;
-
-public class Testcollection {
-
-	@ClassRule
-	@Rule
-	public static ProcessEngineRule rule = TestCoverageProcessEngineRuleBuilder.create().build();
-
-	private static final String VAR_KUNDENNUMMER = "kundennummer";
-	private static final String VAR_MARKE = "marke";
-	private static final String VAR_IBAN = "iban";
-	private static final String VAR_VORNAME = "vorname";
-	private static final String VAR_NACHNAME = "nachname";
-	private static final String VAR_PAKETTYP = "pakettyp";
-	private static final String VAR_EMAILGESENDET = "emailGesendet";
-	private static final String VAR_FIRSTNAME = "firstname";
-	private static final String VAR_LASTNAME = "lastname";
-	private static final String VAR_IBANREFUND = "ibanRefund";
-	private static final String VAR_CONFIRMATIONEMAILSENT = "confirmationEmailSent";
-	private static final String VAR_SERVICEIDENTIFIER = "serviceIdentifier";
-	private static final String VAR_PREIS = "preis";
-	private static final String VAR_ERSTATTUNG = "erstattung";
-	private static final String VAR_PAKET = "paket";
-	private static final String VAR_BESCHAEDIGT = "beschaedigt";
-
-	static {
-		LogFactory.useSlf4jLogging();
-	}
-
-	@Before
-	public void setup() {
-		init(rule.getProcessEngine());
-
-		LagerService lagerService = new LagerService();
-
-		WarennummerErmittelnDelegate warennummerErmittelnDelegate = new WarennummerErmittelnDelegate();
-		warennummerErmittelnDelegate.setLagerService(lagerService);
-
-		Mocks.register("warennummer", warennummerErmittelnDelegate);
-	}
-
-	@Test
-	@Deployment(resources = {"retoure.bpmn", "\\schuh_vernichtung_spende.dmn"})
-	public void normalverpackungAuspacken() {
-
-		ProcessInstance processInstance = runtimeService() //
-			.startProcessInstanceByKey("Retoure", withVariables(VAR_BESCHAEDIGT, false, VAR_ERSTATTUNG, false, VAR_KUNDENNUMMER, "C-123A456")); //
-
-		assertThat(processInstance) //
-			.isStarted() //
-			.hasPassed(Events.RETOURE_START) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
-			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
-			.hasNotPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG) //
-			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
-			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasNotPassed(UserTasks.PAKET_PACKEN) //
-			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
-			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasNotPassed(UserTasks.PAKET_PACKEN) //
-			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasNotPassed(UserTasks.PAKET_SENDEN) //
-			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Events.RETOURE_ENDE) //
-			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
-			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
-			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
-			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
-			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
-			.hasNotPassed(UserTasks.WARE_SPENDEN) //
-			.isNotEnded(); //
-
-		Map<String, Object> variableSnapshot0 = runtimeService() //
-			.getVariables(processInstance.getId()); //
-		List<LockedExternalTask> lockedTasks0 = lockTasks("customer");
-		complete(getLockedTask(lockedTasks0, ServiceTasks.KUNDENDATEN_ERMITTELN), ExternalServiceMockProvider.customerProvider(variableSnapshot0));
-
-		assertThat(processInstance) //
-			.hasPassed(Events.RETOURE_START) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
-			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
-			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
-			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
-			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasNotPassed(UserTasks.PAKET_PACKEN) //
-			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
-			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasNotPassed(UserTasks.PAKET_PACKEN) //
-			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasNotPassed(UserTasks.PAKET_SENDEN) //
-			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Events.RETOURE_ENDE) //
-			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
-			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
-			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
-			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
-			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
-			.hasNotPassed(UserTasks.WARE_SPENDEN) //
-			.isNotEnded(); //
-
-		complete(task(UserTasks.MANUELLE_PRUEFUNG));
-
-		assertThat(processInstance) //
-			.hasPassed(Events.RETOURE_START) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
-			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
-			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
-			.hasPassed(UserTasks.MANUELLE_PRUEFUNG) //
-			.hasPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasNotPassed(UserTasks.PAKET_PACKEN) //
-			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
-			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
-			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasNotPassed(UserTasks.PAKET_PACKEN) //
-			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasNotPassed(UserTasks.PAKET_SENDEN) //
-			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Events.RETOURE_ENDE) //
-			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
-			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
-			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
-			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
-			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
-			.hasNotPassed(UserTasks.WARE_SPENDEN) //
-			.isNotEnded(); //
-
-		complete(task(UserTasks.PAKET_PACKEN), withVariables(VAR_PAKETTYP, "Normalverpackung"));
-
-		assertThat(processInstance) //
-			.hasPassed(Events.RETOURE_START) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
-			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
-			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
-			.hasPassed(UserTasks.MANUELLE_PRUEFUNG) //
-			.hasPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasPassed(UserTasks.PAKET_PACKEN) //
-			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
-			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
-			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasPassed(UserTasks.PAKET_PACKEN) //
-			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasNotPassed(UserTasks.PAKET_SENDEN) //
-			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Events.RETOURE_ENDE) //
-			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
-			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
-			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
-			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
-			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
-			.hasNotPassed(UserTasks.WARE_SPENDEN) //
-			.isNotEnded(); //
-
-		complete(task(UserTasks.PAKET_PRUEFEN), withVariables(VAR_PAKET, false));
-
-		assertThat(processInstance) //
-			.hasPassed(Events.RETOURE_START) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
-			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
-			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
-			.hasPassed(UserTasks.MANUELLE_PRUEFUNG) //
-			.hasPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasPassed(UserTasks.PAKET_PACKEN) //
-			.hasPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasPassed(Gateways.GATEWAY_AUSPACKEN) //
-			.hasPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
-			.hasPassed(Gateways.GATEWAY_14EVKAP) //
-			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasPassed(UserTasks.PAKET_PACKEN) //
-			.hasPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasNotPassed(UserTasks.PAKET_SENDEN) //
-			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Events.RETOURE_ENDE) //
-			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
-			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
-			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
-			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
-			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
-			.hasNotPassed(UserTasks.WARE_SPENDEN) //
-			.isNotEnded(); //
-
-		complete(task(UserTasks.PAKET_PACKEN), withVariables(VAR_PAKETTYP, "Luxusverpackung"));
-
-		assertThat(processInstance) //
-			.hasPassed(Events.RETOURE_START) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
-			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
-			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
-			.hasPassed(UserTasks.MANUELLE_PRUEFUNG) //
-			.hasPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasPassed(UserTasks.PAKET_PACKEN) //
-			.hasPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasPassed(Gateways.GATEWAY_AUSPACKEN) //
-			.hasPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
-			.hasPassed(Gateways.GATEWAY_14EVKAP) //
-			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasPassed(UserTasks.PAKET_PACKEN) //
-			.hasPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasNotPassed(UserTasks.PAKET_SENDEN) //
-			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Events.RETOURE_ENDE) //
-			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
-			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
-			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
-			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
-			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
-			.hasNotPassed(UserTasks.WARE_SPENDEN) //
-			.isNotEnded(); //
-
-		complete(task(UserTasks.PAKET_PRUEFEN), withVariables(VAR_PAKET, true));
-
-		assertThat(processInstance) //
-			.hasPassed(Events.RETOURE_START) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
-			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
-			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
-			.hasPassed(UserTasks.MANUELLE_PRUEFUNG) //
-			.hasPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasPassed(UserTasks.PAKET_PACKEN) //
-			.hasPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasPassed(Gateways.GATEWAY_AUSPACKEN) //
-			.hasPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
-			.hasPassed(Gateways.GATEWAY_14EVKAP) //
-			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasPassed(UserTasks.PAKET_PACKEN) //
-			.hasPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasNotPassed(UserTasks.PAKET_SENDEN) //
-			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Events.RETOURE_ENDE) //
-			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
-			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
-			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
-			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
-			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
-			.hasNotPassed(UserTasks.WARE_SPENDEN) //
-			.isNotEnded(); //
-
-		complete(task(UserTasks.PAKET_SENDEN));
-
-		assertThat(processInstance) //
-			.hasPassed(Events.RETOURE_START) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
-			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
-			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
-			.hasPassed(UserTasks.MANUELLE_PRUEFUNG) //
-			.hasPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasPassed(UserTasks.PAKET_PACKEN) //
-			.hasPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasPassed(Gateways.GATEWAY_AUSPACKEN) //
-			.hasPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
-			.hasPassed(Gateways.GATEWAY_14EVKAP) //
-			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasPassed(UserTasks.PAKET_PACKEN) //
-			.hasPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasPassed(UserTasks.PAKET_SENDEN) //
-			.hasPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
-			.hasPassed(Events.RETOURE_ENDE) //
-			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
-			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
-			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
-			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
-			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
-			.hasNotPassed(UserTasks.WARE_SPENDEN) //
-			.isEnded() //
-			.variables() //
-				.contains(entry(VAR_KUNDENNUMMER, "C-123A456"), entry(VAR_VORNAME, "Max"), entry(VAR_ERSTATTUNG, false), entry(VAR_NACHNAME, "Mustermann"), entry(VAR_BESCHAEDIGT, false)); //
-
-	}
-
-	@Test
-	@Deployment(resources = {"retoure.bpmn", "\\schuh_vernichtung_spende.dmn"})
-	public void vernichtenErstattung() {
-
-		ProcessInstance processInstance = runtimeService() //
-			.startProcessInstanceByKey("Retoure", withVariables(VAR_BESCHAEDIGT, true, VAR_ERSTATTUNG, true, VAR_KUNDENNUMMER, "C-123A456")); //
-
-		assertThat(processInstance) //
-			.isStarted() //
-			.hasPassed(Events.RETOURE_START) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
-			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
-			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
-			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
-			.hasNotPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
-			.hasNotPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG) //
-			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
-			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
-			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Events.RETOURE_ENDE) //
-			.hasNotPassed(ManualTasks.WARE_EINSORTIEREN) //
-			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
-			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasNotPassed(UserTasks.PAKET_PACKEN) //
-			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasNotPassed(UserTasks.PAKET_SENDEN) //
-			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
-			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
-			.hasNotPassed(UserTasks.WARE_SPENDEN) //
-			.isNotEnded(); //
-
-		complete(task(UserTasks.WARENDATEN_ERFASSEN), withVariables(VAR_MARKE, "Luxury Foot", VAR_PREIS, 350));
-
-		assertThat(processInstance) //
-			.hasPassed(Events.RETOURE_START) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
-			.hasPassed(UserTasks.WARENDATEN_ERFASSEN) //
-			.hasPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_VERNICHTUNG) //
-			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
-			.hasNotPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
-			.hasNotPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG) //
-			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
-			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
-			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Events.RETOURE_ENDE) //
-			.hasNotPassed(ManualTasks.WARE_EINSORTIEREN) //
-			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
-			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasNotPassed(UserTasks.PAKET_PACKEN) //
-			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasNotPassed(UserTasks.PAKET_SENDEN) //
-			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
-			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
-			.hasNotPassed(UserTasks.WARE_SPENDEN) //
-			.isNotEnded(); //
-
-		complete(task(UserTasks.WARE_VERNICHTEN));
-
-		assertThat(processInstance) //
-			.hasPassed(Events.RETOURE_START) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
-			.hasPassed(UserTasks.WARENDATEN_ERFASSEN) //
-			.hasPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_VERNICHTUNG) //
-			.hasPassed(UserTasks.WARE_VERNICHTEN) //
-			.hasPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
-			.hasNotPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG) //
-			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
-			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
-			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Events.RETOURE_ENDE) //
-			.hasNotPassed(ManualTasks.WARE_EINSORTIEREN) //
-			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
-			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasNotPassed(UserTasks.PAKET_PACKEN) //
-			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasNotPassed(UserTasks.PAKET_SENDEN) //
-			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
-			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
-			.hasNotPassed(UserTasks.WARE_SPENDEN) //
-			.isNotEnded(); //
-
-		Map<String, Object> variableSnapshot0 = runtimeService() //
-			.getVariables(processInstance.getId()); //
-		List<LockedExternalTask> lockedTasks0 = lockTasks("customer");
-		complete(getLockedTask(lockedTasks0, ServiceTasks.KUNDENDATEN_ERMITTELN), ExternalServiceMockProvider.customerProvider(variableSnapshot0));
-
-		assertThat(processInstance) //
-			.hasPassed(Events.RETOURE_START) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
-			.hasPassed(UserTasks.WARENDATEN_ERFASSEN) //
-			.hasPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_VERNICHTUNG) //
-			.hasPassed(UserTasks.WARE_VERNICHTEN) //
-			.hasPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
-			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
-			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
-			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
-			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Events.RETOURE_ENDE) //
-			.hasNotPassed(ManualTasks.WARE_EINSORTIEREN) //
-			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
-			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasNotPassed(UserTasks.PAKET_PACKEN) //
-			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasNotPassed(UserTasks.PAKET_SENDEN) //
-			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
-			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
-			.hasNotPassed(UserTasks.WARE_SPENDEN) //
-			.isNotEnded(); //
-
-		Map<String, Object> variableSnapshot1 = runtimeService() //
-			.getVariables(processInstance.getId()); //
-		variableSnapshot1.put(VAR_SERVICEIDENTIFIER, "getData");
-		List<LockedExternalTask> lockedTasks1 = lockTasks(lockedTasks0, "financial");
-		complete(getLockedTask(lockedTasks1, ServiceTasks.FINANZDATEN_ERMITTELN), ExternalServiceMockProvider.financialMock(variableSnapshot1));
-
-		assertThat(processInstance) //
-			.hasPassed(Events.RETOURE_START) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
-			.hasPassed(UserTasks.WARENDATEN_ERFASSEN) //
-			.hasPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_VERNICHTUNG) //
-			.hasPassed(UserTasks.WARE_VERNICHTEN) //
-			.hasPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
-			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
-			.hasPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
-			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
-			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Events.RETOURE_ENDE) //
-			.hasNotPassed(ManualTasks.WARE_EINSORTIEREN) //
-			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
-			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasNotPassed(UserTasks.PAKET_PACKEN) //
-			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasNotPassed(UserTasks.PAKET_SENDEN) //
-			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
-			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
-			.hasNotPassed(UserTasks.WARE_SPENDEN) //
-			.isNotEnded(); //
-
-		Map<String, Object> variableSnapshot2 = runtimeService() //
-			.getVariables(processInstance.getId()); //
-		variableSnapshot2.put(VAR_SERVICEIDENTIFIER, "refund");
-		List<LockedExternalTask> lockedTasks2 = lockTasks(lockedTasks1, "financial");
-		complete(getLockedTask(lockedTasks2, ServiceTasks.ERSTATTUNG), ExternalServiceMockProvider.financialMock(variableSnapshot2));
-
-		assertThat(processInstance) //
-			.hasPassed(Events.RETOURE_START) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
-			.hasPassed(UserTasks.WARENDATEN_ERFASSEN) //
-			.hasPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_VERNICHTUNG) //
-			.hasPassed(UserTasks.WARE_VERNICHTEN) //
-			.hasPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
-			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
-			.hasPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
-			.hasPassed(ServiceTasks.ERSTATTUNG) //
-			.hasPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
-			.hasPassed(Events.RETOURE_ENDE) //
-			.hasNotPassed(ManualTasks.WARE_EINSORTIEREN) //
-			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
-			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasNotPassed(UserTasks.PAKET_PACKEN) //
-			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasNotPassed(UserTasks.PAKET_SENDEN) //
-			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
-			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
-			.hasNotPassed(UserTasks.WARE_SPENDEN) //
-			.isEnded() //
-			.variables() //
-				.contains(entry(VAR_KUNDENNUMMER, "C-123A456"), entry(VAR_EMAILGESENDET, "Nein"), entry(VAR_MARKE, "Luxury Foot"), entry(VAR_IBAN, "DE12345678900000123456"), entry(VAR_VORNAME, "Max"), entry(VAR_ERSTATTUNG, true), entry(VAR_NACHNAME, "Mustermann"), entry(VAR_BESCHAEDIGT, true)); //
-
-	}
-
-	@Test
-	@Deployment(resources = {"retoure.bpmn", "\\schuh_vernichtung_spende.dmn"})
-	public void casetill1() {
-
-		ProcessInstance processInstance = runtimeService() //
-			.startProcessInstanceByKey("Retoure", withVariables(VAR_BESCHAEDIGT, true, VAR_ERSTATTUNG, true, VAR_KUNDENNUMMER, "123")); //
-
-		assertThat(processInstance) //
-			.isStarted() //
-			.hasPassed(Events.RETOURE_START) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
-			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
-			.hasNotPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG) //
-			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
-			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
-			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Events.RETOURE_ENDE) //
-			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
-			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasNotPassed(UserTasks.PAKET_PACKEN) //
-			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasNotPassed(UserTasks.PAKET_SENDEN) //
-			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
-			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
-			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
-			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
-			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
-			.hasNotPassed(UserTasks.WARE_SPENDEN) //
-			.isNotEnded(); //
-
-		Map<String, Object> variableSnapshot0 = runtimeService() //
-			.getVariables(processInstance.getId()); //
-		List<LockedExternalTask> lockedTasks0 = lockTasks("customer");
-		complete(getLockedTask(lockedTasks0, ServiceTasks.KUNDENDATEN_ERMITTELN), ExternalServiceMockProvider.customerProvider(variableSnapshot0));
-
-		assertThat(processInstance) //
-			.hasPassed(Events.RETOURE_START) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
-			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
-			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
-			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
-			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
-			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Events.RETOURE_ENDE) //
-			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
-			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasNotPassed(UserTasks.PAKET_PACKEN) //
-			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasNotPassed(UserTasks.PAKET_SENDEN) //
-			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
-			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
-			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
-			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
-			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
-			.hasNotPassed(UserTasks.WARE_SPENDEN) //
-			.isNotEnded(); //
-
-		Map<String, Object> variableSnapshot1 = runtimeService() //
-			.getVariables(processInstance.getId()); //
-		variableSnapshot1.put(VAR_SERVICEIDENTIFIER, "getData");
-		List<LockedExternalTask> lockedTasks1 = lockTasks(lockedTasks0, "financial");
-		complete(getLockedTask(lockedTasks1, ServiceTasks.FINANZDATEN_ERMITTELN), ExternalServiceMockProvider.financialMock(variableSnapshot1));
-
-		assertThat(processInstance) //
-			.hasPassed(Events.RETOURE_START) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
-			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
-			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
-			.hasPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
-			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
-			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Events.RETOURE_ENDE) //
-			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
-			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasNotPassed(UserTasks.PAKET_PACKEN) //
-			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasNotPassed(UserTasks.PAKET_SENDEN) //
-			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
-			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
-			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
-			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
-			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
-			.hasNotPassed(UserTasks.WARE_SPENDEN) //
-			.isNotEnded(); //
-
-		Map<String, Object> variableSnapshot2 = runtimeService() //
-			.getVariables(processInstance.getId()); //
-		variableSnapshot2.put(VAR_SERVICEIDENTIFIER, "refund");
-		List<LockedExternalTask> lockedTasks2 = lockTasks(lockedTasks1, "financial");
-		complete(getLockedTask(lockedTasks2, ServiceTasks.ERSTATTUNG), ExternalServiceMockProvider.financialMock(variableSnapshot2));
-
-		assertThat(processInstance) //
-			.hasPassed(Events.RETOURE_START) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
-			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
-			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
-			.hasPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
-			.hasPassed(ServiceTasks.ERSTATTUNG) //
-			.hasPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
-			.hasPassed(Events.RETOURE_ENDE) //
-			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
-			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasNotPassed(UserTasks.PAKET_PACKEN) //
-			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasNotPassed(UserTasks.PAKET_SENDEN) //
-			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
-			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
-			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
-			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
-			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
-			.hasNotPassed(UserTasks.WARE_SPENDEN) //
-			.isEnded() //
-			.variables() //
-				.contains(entry(VAR_IBANREFUND, "DE80123084556"), entry(VAR_FIRSTNAME, "Till"), entry(VAR_VORNAME, "till"), entry(VAR_LASTNAME, "Brinkhus"), entry(VAR_SERVICEIDENTIFIER, "getData"), entry(VAR_BESCHAEDIGT, false), entry(VAR_KUNDENNUMMER, "123"), entry(VAR_EMAILGESENDET, "Ja"), entry(VAR_PREIS, 1234), entry(VAR_MARKE, "wer"), entry(VAR_IBAN, "DE80123084556"), entry(VAR_ERSTATTUNG, true), entry(VAR_CONFIRMATIONEMAILSENT, "Ja"), entry(VAR_NACHNAME, "Brinkhus"), entry(VAR_PAKETTYP, "Normalverpackung"), entry(VAR_PAKET, true)); //
-
-	}
-
-	@Test
-	@Deployment(resources = {"retoure.bpmn", "\\schuh_vernichtung_spende.dmn"})
-	public void casetill2() {
-
-		ProcessInstance processInstance = runtimeService() //
-			.startProcessInstanceByKey("Retoure", withVariables(VAR_BESCHAEDIGT, true, VAR_ERSTATTUNG, true, VAR_KUNDENNUMMER, "12345")); //
-
-		assertThat(processInstance) //
-			.isStarted() //
-			.hasPassed(Events.RETOURE_START) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
-			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
-			.hasNotPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG) //
-			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
-			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
-			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Events.RETOURE_ENDE) //
-			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
-			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasNotPassed(UserTasks.PAKET_PACKEN) //
-			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasNotPassed(UserTasks.PAKET_SENDEN) //
-			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
-			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
-			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
-			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
-			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
-			.hasNotPassed(UserTasks.WARE_SPENDEN) //
-			.isNotEnded(); //
-
-		Map<String, Object> variableSnapshot0 = runtimeService() //
-			.getVariables(processInstance.getId()); //
-		List<LockedExternalTask> lockedTasks0 = lockTasks("customer");
-		complete(getLockedTask(lockedTasks0, ServiceTasks.KUNDENDATEN_ERMITTELN), ExternalServiceMockProvider.customerProvider(variableSnapshot0));
-
-		assertThat(processInstance) //
-			.hasPassed(Events.RETOURE_START) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
-			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
-			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
-			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
-			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
-			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Events.RETOURE_ENDE) //
-			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
-			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasNotPassed(UserTasks.PAKET_PACKEN) //
-			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasNotPassed(UserTasks.PAKET_SENDEN) //
-			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
-			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
-			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
-			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
-			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
-			.hasNotPassed(UserTasks.WARE_SPENDEN) //
-			.isNotEnded(); //
-
-		Map<String, Object> variableSnapshot1 = runtimeService() //
-			.getVariables(processInstance.getId()); //
-		variableSnapshot1.put(VAR_SERVICEIDENTIFIER, "getData");
-		List<LockedExternalTask> lockedTasks1 = lockTasks(lockedTasks0, "financial");
-		complete(getLockedTask(lockedTasks1, ServiceTasks.FINANZDATEN_ERMITTELN), ExternalServiceMockProvider.financialMock(variableSnapshot1));
-
-		assertThat(processInstance) //
-			.hasPassed(Events.RETOURE_START) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
-			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
-			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
-			.hasPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
-			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
-			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
-			.hasNotPassed(Events.RETOURE_ENDE) //
-			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
-			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasNotPassed(UserTasks.PAKET_PACKEN) //
-			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasNotPassed(UserTasks.PAKET_SENDEN) //
-			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
-			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
-			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
-			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
-			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
-			.hasNotPassed(UserTasks.WARE_SPENDEN) //
-			.isNotEnded(); //
-
-		Map<String, Object> variableSnapshot2 = runtimeService() //
-			.getVariables(processInstance.getId()); //
-		variableSnapshot2.put(VAR_SERVICEIDENTIFIER, "refund");
-		List<LockedExternalTask> lockedTasks2 = lockTasks(lockedTasks1, "financial");
-		complete(getLockedTask(lockedTasks2, ServiceTasks.ERSTATTUNG), ExternalServiceMockProvider.financialMock(variableSnapshot2));
-
-		assertThat(processInstance) //
-			.hasPassed(Events.RETOURE_START) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
-			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
-			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
-			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
-			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
-			.hasPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
-			.hasPassed(ServiceTasks.ERSTATTUNG) //
-			.hasPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
-			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
-			.hasPassed(Events.RETOURE_ENDE) //
-			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
-			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
-			.hasNotPassed(UserTasks.PAKET_PACKEN) //
-			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
-			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
-			.hasNotPassed(UserTasks.PAKET_SENDEN) //
-			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
-			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
-			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
-			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
-			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
-			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
-			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
-			.hasNotPassed(UserTasks.WARE_SPENDEN) //
-			.isEnded(); //
-
-	}
-}
+package de.sample.onlineschuhdemo;
+
+import static org.camunda.bpm.engine.test.assertions.ProcessEngineTests.*;
+import static org.camunda.bpm.engine.test.assertions.bpmn.BpmnAwareTests.complete;
+import static org.camunda.bpm.engine.test.assertions.bpmn.BpmnAwareTests.runtimeService;
+import static org.camunda.bpm.engine.test.assertions.bpmn.BpmnAwareTests.task;
+import static org.camunda.bpm.engine.test.assertions.bpmn.BpmnAwareTests.withVariables;
+import static org.assertj.core.api.Assertions.entry;
+import static de.sample.onlineschuhdemo.TestUtils.*;
+
+import org.apache.ibatis.logging.LogFactory;
+import org.camunda.bpm.engine.runtime.ProcessInstance;
+import org.camunda.bpm.engine.test.Deployment;
+import org.camunda.bpm.engine.test.ProcessEngineRule;
+import org.camunda.bpm.engine.externaltask.LockedExternalTask;
+import org.camunda.bpm.engine.test.mock.Mocks;
+import de.sample.onlineschuhdemo.externalaccess.LagerService;
+import de.sample.onlineschuhdemo.externalaccess.WarennummerErmittelnDelegate;
+import org.camunda.bpm.extension.process_test_coverage.junit.rules.TestCoverageProcessEngineRuleBuilder;
+import org.junit.Before;
+import org.junit.ClassRule;
+import org.junit.Rule;
+import org.junit.Test;
+import java.util.List;
+import java.util.Map;
+
+public class Testcollection {
+
+	@ClassRule
+	@Rule
+	public static ProcessEngineRule rule = TestCoverageProcessEngineRuleBuilder.create().build();
+
+	private static final String VAR_KUNDENNUMMER = "kundennummer";
+	private static final String VAR_MARKE = "marke";
+	private static final String VAR_IBAN = "iban";
+	private static final String VAR_VORNAME = "vorname";
+	private static final String VAR_NACHNAME = "nachname";
+	private static final String VAR_PAKETTYP = "pakettyp";
+	private static final String VAR_EMAILGESENDET = "emailGesendet";
+	private static final String VAR_FIRSTNAME = "firstname";
+	private static final String VAR_LASTNAME = "lastname";
+	private static final String VAR_IBANREFUND = "ibanRefund";
+	private static final String VAR_CONFIRMATIONEMAILSENT = "confirmationEmailSent";
+	private static final String VAR_SERVICEIDENTIFIER = "serviceIdentifier";
+	private static final String VAR_PREIS = "preis";
+	private static final String VAR_ERSTATTUNG = "erstattung";
+	private static final String VAR_PAKET = "paket";
+	private static final String VAR_BESCHAEDIGT = "beschaedigt";
+
+	static {
+		LogFactory.useSlf4jLogging();
+	}
+
+	@Before
+	public void setup() {
+		init(rule.getProcessEngine());
+
+		LagerService lagerService = new LagerService();
+
+		WarennummerErmittelnDelegate warennummerErmittelnDelegate = new WarennummerErmittelnDelegate();
+		warennummerErmittelnDelegate.setLagerService(lagerService);
+
+		Mocks.register("warennummer", warennummerErmittelnDelegate);
+	}
+
+	@Test
+	@Deployment(resources = {"retoure.bpmn", "\\schuh_vernichtung_spende.dmn"})
+	public void normalverpackungAuspacken() {
+
+		ProcessInstance processInstance = runtimeService() //
+			.startProcessInstanceByKey("Retoure", withVariables(VAR_BESCHAEDIGT, false, VAR_ERSTATTUNG, false, VAR_KUNDENNUMMER, "C-123A456")); //
+
+		assertThat(processInstance) //
+			.isStarted() //
+			.hasPassed(Events.RETOURE_START) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
+			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
+			.hasNotPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG) //
+			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
+			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasNotPassed(UserTasks.PAKET_PACKEN) //
+			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
+			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasNotPassed(UserTasks.PAKET_PACKEN) //
+			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(UserTasks.PAKET_SENDEN) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Events.RETOURE_ENDE) //
+			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
+			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
+			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
+			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
+			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
+			.hasNotPassed(UserTasks.WARE_SPENDEN) //
+			.isNotEnded(); //
+
+		Map<String, Object> variableSnapshot0 = runtimeService() //
+			.getVariables(processInstance.getId()); //
+		List<LockedExternalTask> lockedTasks0 = lockTasks("customer");
+		complete(getLockedTask(lockedTasks0, ServiceTasks.KUNDENDATEN_ERMITTELN), ExternalServiceMockProvider.customerProvider(variableSnapshot0));
+
+		assertThat(processInstance) //
+			.hasPassed(Events.RETOURE_START) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
+			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
+			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
+			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
+			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasNotPassed(UserTasks.PAKET_PACKEN) //
+			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
+			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasNotPassed(UserTasks.PAKET_PACKEN) //
+			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(UserTasks.PAKET_SENDEN) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Events.RETOURE_ENDE) //
+			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
+			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
+			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
+			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
+			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
+			.hasNotPassed(UserTasks.WARE_SPENDEN) //
+			.isNotEnded(); //
+
+		complete(task(UserTasks.MANUELLE_PRUEFUNG));
+
+		assertThat(processInstance) //
+			.hasPassed(Events.RETOURE_START) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
+			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
+			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
+			.hasPassed(UserTasks.MANUELLE_PRUEFUNG) //
+			.hasPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasNotPassed(UserTasks.PAKET_PACKEN) //
+			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
+			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasNotPassed(UserTasks.PAKET_PACKEN) //
+			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(UserTasks.PAKET_SENDEN) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Events.RETOURE_ENDE) //
+			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
+			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
+			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
+			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
+			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
+			.hasNotPassed(UserTasks.WARE_SPENDEN) //
+			.isNotEnded(); //
+
+		complete(task(UserTasks.PAKET_PACKEN), withVariables(VAR_PAKETTYP, "Normalverpackung"));
+
+		assertThat(processInstance) //
+			.hasPassed(Events.RETOURE_START) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
+			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
+			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
+			.hasPassed(UserTasks.MANUELLE_PRUEFUNG) //
+			.hasPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasPassed(UserTasks.PAKET_PACKEN) //
+			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
+			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasPassed(UserTasks.PAKET_PACKEN) //
+			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(UserTasks.PAKET_SENDEN) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Events.RETOURE_ENDE) //
+			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
+			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
+			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
+			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
+			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
+			.hasNotPassed(UserTasks.WARE_SPENDEN) //
+			.isNotEnded(); //
+
+		complete(task(UserTasks.PAKET_PRUEFEN), withVariables(VAR_PAKET, false));
+
+		assertThat(processInstance) //
+			.hasPassed(Events.RETOURE_START) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
+			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
+			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
+			.hasPassed(UserTasks.MANUELLE_PRUEFUNG) //
+			.hasPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasPassed(UserTasks.PAKET_PACKEN) //
+			.hasPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasPassed(Gateways.GATEWAY_AUSPACKEN) //
+			.hasPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
+			.hasPassed(Gateways.GATEWAY_14EVKAP) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasPassed(UserTasks.PAKET_PACKEN) //
+			.hasPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(UserTasks.PAKET_SENDEN) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Events.RETOURE_ENDE) //
+			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
+			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
+			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
+			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
+			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
+			.hasNotPassed(UserTasks.WARE_SPENDEN) //
+			.isNotEnded(); //
+
+		complete(task(UserTasks.PAKET_PACKEN), withVariables(VAR_PAKETTYP, "Luxusverpackung"));
+
+		assertThat(processInstance) //
+			.hasPassed(Events.RETOURE_START) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
+			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
+			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
+			.hasPassed(UserTasks.MANUELLE_PRUEFUNG) //
+			.hasPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasPassed(UserTasks.PAKET_PACKEN) //
+			.hasPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasPassed(Gateways.GATEWAY_AUSPACKEN) //
+			.hasPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
+			.hasPassed(Gateways.GATEWAY_14EVKAP) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasPassed(UserTasks.PAKET_PACKEN) //
+			.hasPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(UserTasks.PAKET_SENDEN) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Events.RETOURE_ENDE) //
+			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
+			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
+			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
+			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
+			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
+			.hasNotPassed(UserTasks.WARE_SPENDEN) //
+			.isNotEnded(); //
+
+		complete(task(UserTasks.PAKET_PRUEFEN), withVariables(VAR_PAKET, true));
+
+		assertThat(processInstance) //
+			.hasPassed(Events.RETOURE_START) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
+			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
+			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
+			.hasPassed(UserTasks.MANUELLE_PRUEFUNG) //
+			.hasPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasPassed(UserTasks.PAKET_PACKEN) //
+			.hasPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasPassed(Gateways.GATEWAY_AUSPACKEN) //
+			.hasPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
+			.hasPassed(Gateways.GATEWAY_14EVKAP) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasPassed(UserTasks.PAKET_PACKEN) //
+			.hasPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(UserTasks.PAKET_SENDEN) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Events.RETOURE_ENDE) //
+			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
+			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
+			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
+			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
+			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
+			.hasNotPassed(UserTasks.WARE_SPENDEN) //
+			.isNotEnded(); //
+
+		complete(task(UserTasks.PAKET_SENDEN));
+
+		assertThat(processInstance) //
+			.hasPassed(Events.RETOURE_START) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
+			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
+			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
+			.hasPassed(UserTasks.MANUELLE_PRUEFUNG) //
+			.hasPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasPassed(UserTasks.PAKET_PACKEN) //
+			.hasPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasPassed(Gateways.GATEWAY_AUSPACKEN) //
+			.hasPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
+			.hasPassed(Gateways.GATEWAY_14EVKAP) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasPassed(UserTasks.PAKET_PACKEN) //
+			.hasPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasPassed(UserTasks.PAKET_SENDEN) //
+			.hasPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
+			.hasPassed(Events.RETOURE_ENDE) //
+			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
+			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
+			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
+			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
+			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
+			.hasNotPassed(UserTasks.WARE_SPENDEN) //
+			.isEnded() //
+			.variables() //
+				.contains(entry(VAR_KUNDENNUMMER, "C-123A456"), entry(VAR_VORNAME, "Max"), entry(VAR_ERSTATTUNG, false), entry(VAR_NACHNAME, "Mustermann"), entry(VAR_BESCHAEDIGT, false)); //
+
+	}
+
+	@Test
+	@Deployment(resources = {"retoure.bpmn", "\\schuh_vernichtung_spende.dmn"})
+	public void vernichtenErstattung() {
+
+		ProcessInstance processInstance = runtimeService() //
+			.startProcessInstanceByKey("Retoure", withVariables(VAR_BESCHAEDIGT, true, VAR_ERSTATTUNG, true, VAR_KUNDENNUMMER, "C-123A456")); //
+
+		assertThat(processInstance) //
+			.isStarted() //
+			.hasPassed(Events.RETOURE_START) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
+			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
+			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
+			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
+			.hasNotPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
+			.hasNotPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG) //
+			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
+			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Events.RETOURE_ENDE) //
+			.hasNotPassed(ManualTasks.WARE_EINSORTIEREN) //
+			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
+			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasNotPassed(UserTasks.PAKET_PACKEN) //
+			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(UserTasks.PAKET_SENDEN) //
+			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
+			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
+			.hasNotPassed(UserTasks.WARE_SPENDEN) //
+			.isNotEnded(); //
+
+		complete(task(UserTasks.WARENDATEN_ERFASSEN), withVariables(VAR_MARKE, "Luxury Foot", VAR_PREIS, 350));
+
+		assertThat(processInstance) //
+			.hasPassed(Events.RETOURE_START) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
+			.hasPassed(UserTasks.WARENDATEN_ERFASSEN) //
+			.hasPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_VERNICHTUNG) //
+			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
+			.hasNotPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
+			.hasNotPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG) //
+			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
+			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Events.RETOURE_ENDE) //
+			.hasNotPassed(ManualTasks.WARE_EINSORTIEREN) //
+			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
+			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasNotPassed(UserTasks.PAKET_PACKEN) //
+			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(UserTasks.PAKET_SENDEN) //
+			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
+			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
+			.hasNotPassed(UserTasks.WARE_SPENDEN) //
+			.isNotEnded(); //
+
+		complete(task(UserTasks.WARE_VERNICHTEN));
+
+		assertThat(processInstance) //
+			.hasPassed(Events.RETOURE_START) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
+			.hasPassed(UserTasks.WARENDATEN_ERFASSEN) //
+			.hasPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_VERNICHTUNG) //
+			.hasPassed(UserTasks.WARE_VERNICHTEN) //
+			.hasPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
+			.hasNotPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG) //
+			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
+			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Events.RETOURE_ENDE) //
+			.hasNotPassed(ManualTasks.WARE_EINSORTIEREN) //
+			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
+			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasNotPassed(UserTasks.PAKET_PACKEN) //
+			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(UserTasks.PAKET_SENDEN) //
+			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
+			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
+			.hasNotPassed(UserTasks.WARE_SPENDEN) //
+			.isNotEnded(); //
+
+		Map<String, Object> variableSnapshot0 = runtimeService() //
+			.getVariables(processInstance.getId()); //
+		List<LockedExternalTask> lockedTasks0 = lockTasks("customer");
+		complete(getLockedTask(lockedTasks0, ServiceTasks.KUNDENDATEN_ERMITTELN), ExternalServiceMockProvider.customerProvider(variableSnapshot0));
+
+		assertThat(processInstance) //
+			.hasPassed(Events.RETOURE_START) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
+			.hasPassed(UserTasks.WARENDATEN_ERFASSEN) //
+			.hasPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_VERNICHTUNG) //
+			.hasPassed(UserTasks.WARE_VERNICHTEN) //
+			.hasPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
+			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
+			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
+			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Events.RETOURE_ENDE) //
+			.hasNotPassed(ManualTasks.WARE_EINSORTIEREN) //
+			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
+			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasNotPassed(UserTasks.PAKET_PACKEN) //
+			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(UserTasks.PAKET_SENDEN) //
+			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
+			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
+			.hasNotPassed(UserTasks.WARE_SPENDEN) //
+			.isNotEnded(); //
+
+		Map<String, Object> variableSnapshot1 = runtimeService() //
+			.getVariables(processInstance.getId()); //
+		variableSnapshot1.put(VAR_SERVICEIDENTIFIER, "getData");
+		List<LockedExternalTask> lockedTasks1 = lockTasks(lockedTasks0, "financial");
+		complete(getLockedTask(lockedTasks1, ServiceTasks.FINANZDATEN_ERMITTELN), ExternalServiceMockProvider.financialMock(variableSnapshot1));
+
+		assertThat(processInstance) //
+			.hasPassed(Events.RETOURE_START) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
+			.hasPassed(UserTasks.WARENDATEN_ERFASSEN) //
+			.hasPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_VERNICHTUNG) //
+			.hasPassed(UserTasks.WARE_VERNICHTEN) //
+			.hasPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
+			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
+			.hasPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
+			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Events.RETOURE_ENDE) //
+			.hasNotPassed(ManualTasks.WARE_EINSORTIEREN) //
+			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
+			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasNotPassed(UserTasks.PAKET_PACKEN) //
+			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(UserTasks.PAKET_SENDEN) //
+			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
+			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
+			.hasNotPassed(UserTasks.WARE_SPENDEN) //
+			.isNotEnded(); //
+
+		Map<String, Object> variableSnapshot2 = runtimeService() //
+			.getVariables(processInstance.getId()); //
+		variableSnapshot2.put(VAR_SERVICEIDENTIFIER, "refund");
+		List<LockedExternalTask> lockedTasks2 = lockTasks(lockedTasks1, "financial");
+		complete(getLockedTask(lockedTasks2, ServiceTasks.ERSTATTUNG), ExternalServiceMockProvider.financialMock(variableSnapshot2));
+
+		assertThat(processInstance) //
+			.hasPassed(Events.RETOURE_START) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
+			.hasPassed(UserTasks.WARENDATEN_ERFASSEN) //
+			.hasPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_VERNICHTUNG) //
+			.hasPassed(UserTasks.WARE_VERNICHTEN) //
+			.hasPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
+			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
+			.hasPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
+			.hasPassed(ServiceTasks.ERSTATTUNG) //
+			.hasPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
+			.hasPassed(Events.RETOURE_ENDE) //
+			.hasNotPassed(ManualTasks.WARE_EINSORTIEREN) //
+			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
+			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasNotPassed(UserTasks.PAKET_PACKEN) //
+			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(UserTasks.PAKET_SENDEN) //
+			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
+			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
+			.hasNotPassed(UserTasks.WARE_SPENDEN) //
+			.isEnded() //
+			.variables() //
+				.contains(entry(VAR_KUNDENNUMMER, "C-123A456"), entry(VAR_EMAILGESENDET, "Nein"), entry(VAR_MARKE, "Luxury Foot"), entry(VAR_IBAN, "DE12345678900000123456"), entry(VAR_VORNAME, "Max"), entry(VAR_ERSTATTUNG, true), entry(VAR_NACHNAME, "Mustermann"), entry(VAR_BESCHAEDIGT, true)); //
+
+	}
+
+	@Test
+	@Deployment(resources = {"retoure.bpmn", "\\schuh_vernichtung_spende.dmn"})
+	public void casetill1() {
+
+		ProcessInstance processInstance = runtimeService() //
+			.startProcessInstanceByKey("Retoure", withVariables(VAR_BESCHAEDIGT, true, VAR_ERSTATTUNG, true, VAR_KUNDENNUMMER, "123")); //
+
+		assertThat(processInstance) //
+			.isStarted() //
+			.hasPassed(Events.RETOURE_START) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
+			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
+			.hasNotPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG) //
+			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
+			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Events.RETOURE_ENDE) //
+			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
+			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasNotPassed(UserTasks.PAKET_PACKEN) //
+			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(UserTasks.PAKET_SENDEN) //
+			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
+			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
+			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
+			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
+			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
+			.hasNotPassed(UserTasks.WARE_SPENDEN) //
+			.isNotEnded(); //
+
+		Map<String, Object> variableSnapshot0 = runtimeService() //
+			.getVariables(processInstance.getId()); //
+		List<LockedExternalTask> lockedTasks0 = lockTasks("customer");
+		complete(getLockedTask(lockedTasks0, ServiceTasks.KUNDENDATEN_ERMITTELN), ExternalServiceMockProvider.customerProvider(variableSnapshot0));
+
+		assertThat(processInstance) //
+			.hasPassed(Events.RETOURE_START) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
+			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
+			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
+			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
+			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Events.RETOURE_ENDE) //
+			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
+			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasNotPassed(UserTasks.PAKET_PACKEN) //
+			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(UserTasks.PAKET_SENDEN) //
+			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
+			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
+			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
+			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
+			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
+			.hasNotPassed(UserTasks.WARE_SPENDEN) //
+			.isNotEnded(); //
+
+		Map<String, Object> variableSnapshot1 = runtimeService() //
+			.getVariables(processInstance.getId()); //
+		variableSnapshot1.put(VAR_SERVICEIDENTIFIER, "getData");
+		List<LockedExternalTask> lockedTasks1 = lockTasks(lockedTasks0, "financial");
+		complete(getLockedTask(lockedTasks1, ServiceTasks.FINANZDATEN_ERMITTELN), ExternalServiceMockProvider.financialMock(variableSnapshot1));
+
+		assertThat(processInstance) //
+			.hasPassed(Events.RETOURE_START) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
+			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
+			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
+			.hasPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
+			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Events.RETOURE_ENDE) //
+			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
+			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasNotPassed(UserTasks.PAKET_PACKEN) //
+			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(UserTasks.PAKET_SENDEN) //
+			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
+			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
+			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
+			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
+			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
+			.hasNotPassed(UserTasks.WARE_SPENDEN) //
+			.isNotEnded(); //
+
+		Map<String, Object> variableSnapshot2 = runtimeService() //
+			.getVariables(processInstance.getId()); //
+		variableSnapshot2.put(VAR_SERVICEIDENTIFIER, "refund");
+		List<LockedExternalTask> lockedTasks2 = lockTasks(lockedTasks1, "financial");
+		complete(getLockedTask(lockedTasks2, ServiceTasks.ERSTATTUNG), ExternalServiceMockProvider.financialMock(variableSnapshot2));
+
+		assertThat(processInstance) //
+			.hasPassed(Events.RETOURE_START) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
+			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
+			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
+			.hasPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
+			.hasPassed(ServiceTasks.ERSTATTUNG) //
+			.hasPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
+			.hasPassed(Events.RETOURE_ENDE) //
+			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
+			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasNotPassed(UserTasks.PAKET_PACKEN) //
+			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(UserTasks.PAKET_SENDEN) //
+			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
+			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
+			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
+			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
+			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
+			.hasNotPassed(UserTasks.WARE_SPENDEN) //
+			.isEnded() //
+			.variables() //
+				.contains(entry(VAR_IBANREFUND, "DE80123084556"), entry(VAR_FIRSTNAME, "Till"), entry(VAR_VORNAME, "till"), entry(VAR_LASTNAME, "Brinkhus"), entry(VAR_SERVICEIDENTIFIER, "getData"), entry(VAR_BESCHAEDIGT, false), entry(VAR_KUNDENNUMMER, "123"), entry(VAR_EMAILGESENDET, "Ja"), entry(VAR_PREIS, 1234), entry(VAR_MARKE, "wer"), entry(VAR_IBAN, "DE80123084556"), entry(VAR_ERSTATTUNG, true), entry(VAR_CONFIRMATIONEMAILSENT, "Ja"), entry(VAR_NACHNAME, "Brinkhus"), entry(VAR_PAKETTYP, "Normalverpackung"), entry(VAR_PAKET, true)); //
+
+	}
+
+	@Test
+	@Deployment(resources = {"retoure.bpmn", "\\schuh_vernichtung_spende.dmn"})
+	public void casetill2() {
+
+		ProcessInstance processInstance = runtimeService() //
+			.startProcessInstanceByKey("Retoure", withVariables(VAR_BESCHAEDIGT, true, VAR_ERSTATTUNG, true, VAR_KUNDENNUMMER, "12345")); //
+
+		assertThat(processInstance) //
+			.isStarted() //
+			.hasPassed(Events.RETOURE_START) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
+			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
+			.hasNotPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG) //
+			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
+			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Events.RETOURE_ENDE) //
+			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
+			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasNotPassed(UserTasks.PAKET_PACKEN) //
+			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(UserTasks.PAKET_SENDEN) //
+			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
+			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
+			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
+			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
+			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
+			.hasNotPassed(UserTasks.WARE_SPENDEN) //
+			.isNotEnded(); //
+
+		Map<String, Object> variableSnapshot0 = runtimeService() //
+			.getVariables(processInstance.getId()); //
+		List<LockedExternalTask> lockedTasks0 = lockTasks("customer");
+		complete(getLockedTask(lockedTasks0, ServiceTasks.KUNDENDATEN_ERMITTELN), ExternalServiceMockProvider.customerProvider(variableSnapshot0));
+
+		assertThat(processInstance) //
+			.hasPassed(Events.RETOURE_START) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
+			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
+			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
+			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
+			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Events.RETOURE_ENDE) //
+			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
+			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasNotPassed(UserTasks.PAKET_PACKEN) //
+			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(UserTasks.PAKET_SENDEN) //
+			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
+			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
+			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
+			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
+			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
+			.hasNotPassed(UserTasks.WARE_SPENDEN) //
+			.isNotEnded(); //
+
+		Map<String, Object> variableSnapshot1 = runtimeService() //
+			.getVariables(processInstance.getId()); //
+		variableSnapshot1.put(VAR_SERVICEIDENTIFIER, "getData");
+		List<LockedExternalTask> lockedTasks1 = lockTasks(lockedTasks0, "financial");
+		complete(getLockedTask(lockedTasks1, ServiceTasks.FINANZDATEN_ERMITTELN), ExternalServiceMockProvider.financialMock(variableSnapshot1));
+
+		assertThat(processInstance) //
+			.hasPassed(Events.RETOURE_START) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
+			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
+			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
+			.hasPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
+			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Events.RETOURE_ENDE) //
+			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
+			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasNotPassed(UserTasks.PAKET_PACKEN) //
+			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(UserTasks.PAKET_SENDEN) //
+			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
+			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
+			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
+			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
+			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
+			.hasNotPassed(UserTasks.WARE_SPENDEN) //
+			.isNotEnded(); //
+
+		Map<String, Object> variableSnapshot2 = runtimeService() //
+			.getVariables(processInstance.getId()); //
+		variableSnapshot2.put(VAR_SERVICEIDENTIFIER, "refund");
+		List<LockedExternalTask> lockedTasks2 = lockTasks(lockedTasks1, "financial");
+		complete(getLockedTask(lockedTasks2, ServiceTasks.ERSTATTUNG), ExternalServiceMockProvider.financialMock(variableSnapshot2));
+
+		assertThat(processInstance) //
+			.hasPassed(Events.RETOURE_START) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
+			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
+			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
+			.hasPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
+			.hasPassed(ServiceTasks.ERSTATTUNG) //
+			.hasPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
+			.hasPassed(Events.RETOURE_ENDE) //
+			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
+			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasNotPassed(UserTasks.PAKET_PACKEN) //
+			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(UserTasks.PAKET_SENDEN) //
+			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
+			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
+			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
+			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
+			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
+			.hasNotPassed(UserTasks.WARE_SPENDEN) //
+			.isEnded(); //
+
+	}
+
+	@Test
+	@Deployment(resources = {"retoure.bpmn", "\\schuh_vernichtung_spende.dmn"})
+	public void TestHenninh() {
+
+		ProcessInstance processInstance = runtimeService() //
+			.startProcessInstanceByKey("Retoure"); //
+
+		assertThat(processInstance) //
+			.isStarted() //
+			.hasPassed(Events.RETOURE_START) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
+			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
+			.hasNotPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG) //
+			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
+			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasNotPassed(UserTasks.PAKET_PACKEN) //
+			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(UserTasks.PAKET_SENDEN) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Events.RETOURE_ENDE) //
+			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
+			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
+			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
+			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
+			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
+			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
+			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
+			.hasNotPassed(UserTasks.WARE_SPENDEN) //
+			.isNotEnded(); //
+
+		Map<String, Object> variableSnapshot0 = runtimeService() //
+			.getVariables(processInstance.getId()); //
+		List<LockedExternalTask> lockedTasks0 = lockTasks("customer");
+		complete(getLockedTask(lockedTasks0, ServiceTasks.KUNDENDATEN_ERMITTELN), ExternalServiceMockProvider.customerProvider(variableSnapshot0));
+
+		assertThat(processInstance) //
+			.hasPassed(Events.RETOURE_START) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
+			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
+			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
+			.hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) //
+			.hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasNotPassed(UserTasks.PAKET_PACKEN) //
+			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(UserTasks.PAKET_SENDEN) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Events.RETOURE_ENDE) //
+			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
+			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
+			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
+			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
+			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
+			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
+			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
+			.hasNotPassed(UserTasks.WARE_SPENDEN) //
+			.isNotEnded(); //
+
+		complete(task(UserTasks.MANUELLE_PRUEFUNG));
+
+		assertThat(processInstance) //
+			.hasPassed(Events.RETOURE_START) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
+			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
+			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
+			.hasPassed(UserTasks.MANUELLE_PRUEFUNG) //
+			.hasPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasNotPassed(UserTasks.PAKET_PACKEN) //
+			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(UserTasks.PAKET_SENDEN) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Events.RETOURE_ENDE) //
+			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
+			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
+			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
+			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
+			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
+			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
+			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
+			.hasNotPassed(UserTasks.WARE_SPENDEN) //
+			.isNotEnded(); //
+
+		complete(task(UserTasks.PAKET_PACKEN));
+
+		assertThat(processInstance) //
+			.hasPassed(Events.RETOURE_START) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
+			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
+			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
+			.hasPassed(UserTasks.MANUELLE_PRUEFUNG) //
+			.hasPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasPassed(UserTasks.PAKET_PACKEN) //
+			.hasNotPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(UserTasks.PAKET_SENDEN) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Events.RETOURE_ENDE) //
+			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
+			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
+			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
+			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
+			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
+			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
+			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
+			.hasNotPassed(UserTasks.WARE_SPENDEN) //
+			.isNotEnded(); //
+
+		complete(task(UserTasks.PAKET_PRUEFEN));
+
+		assertThat(processInstance) //
+			.hasPassed(Events.RETOURE_START) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
+			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
+			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
+			.hasPassed(UserTasks.MANUELLE_PRUEFUNG) //
+			.hasPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasPassed(UserTasks.PAKET_PACKEN) //
+			.hasPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasNotPassed(UserTasks.PAKET_SENDEN) //
+			.hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
+			.hasNotPassed(Events.RETOURE_ENDE) //
+			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
+			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
+			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
+			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
+			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
+			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
+			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
+			.hasNotPassed(UserTasks.WARE_SPENDEN) //
+			.isNotEnded(); //
+
+		complete(task(UserTasks.PAKET_SENDEN));
+
+		assertThat(processInstance) //
+			.hasPassed(Events.RETOURE_START) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT) //
+			.hasPassed(ManualTasks.WARE_EINSORTIEREN) //
+			.hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) //
+			.hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_NEUSENDUNG) //
+			.hasPassed(UserTasks.MANUELLE_PRUEFUNG) //
+			.hasPassed(ServiceTasks.WARENNUMMER_ERMITTELN) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) //
+			.hasPassed(UserTasks.PAKET_PACKEN) //
+			.hasPassed(UserTasks.PAKET_PRUEFEN) //
+			.hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) //
+			.hasPassed(UserTasks.PAKET_SENDEN) //
+			.hasPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) //
+			.hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) //
+			.hasPassed(Events.RETOURE_ENDE) //
+			.hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) //
+			.hasNotPassed(ServiceTasks.ERSTATTUNG) //
+			.hasNotPassed(Gateways.GATEWAY_AUSPACKEN) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) //
+			.hasNotPassed(Gateways.GATEWAY_14EVKAP) //
+			.hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) //
+			.hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) //
+			.hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) //
+			.hasNotPassed(UserTasks.WARE_VERNICHTEN) //
+			.hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) //
+			.hasNotPassed(UserTasks.WARE_SPENDEN) //
+			.isEnded(); //
+
+	}
+}
diff --git a/OnlineSchuhDemo/src/main/resources/backup/1636397161566.zip b/OnlineSchuhDemo/src/main/resources/backup/1636397161566.zip
new file mode 100644
index 0000000000000000000000000000000000000000..ae876b8a1740204f07917aea568da1df2649d9d1
GIT binary patch
literal 8238
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
G?tcImmcHu%

literal 0
HcmV?d00001

diff --git a/OnlineSchuhDemo/src/main/resources/backup/1636400003412.zip b/OnlineSchuhDemo/src/main/resources/backup/1636400003412.zip
new file mode 100644
index 0000000000000000000000000000000000000000..46cb7c81675ccd7e52eecd8515599d372f4ccc92
GIT binary patch
literal 8249
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
SBmA{4%%AG|r>&*<YxHlPea7?v

literal 0
HcmV?d00001

diff --git a/OnlineSchuhDemo/src/main/resources/backup/retoure.bpmn b/OnlineSchuhDemo/src/main/resources/backup/retoure.bpmn
index 74450c5..fd915bc 100644
--- a/OnlineSchuhDemo/src/main/resources/backup/retoure.bpmn
+++ b/OnlineSchuhDemo/src/main/resources/backup/retoure.bpmn
@@ -1,491 +1,491 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" id="Definitions_0b5ffl8" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.10.0">
-  <bpmn:process id="Retoure" name="Schuh-Retoure" isExecutable="true">
-    <bpmn:startEvent id="Retoure_Start">
-      <bpmn:extensionElements>
-        <camunda:formData>
-          <camunda:formField id="FormField_beschaedigt" label="beschaedigt" type="boolean" defaultValue="false" />
-          <camunda:formField id="FormField_erstattung" label="erstattung" type="boolean" defaultValue="false" />
-          <camunda:formField id="FormField_kundennummer" label="kundennummer" type="string" />
-        </camunda:formData>
-      </bpmn:extensionElements>
-      <bpmn:outgoing>Flow_Start</bpmn:outgoing>
-    </bpmn:startEvent>
-    <bpmn:sequenceFlow id="Flow_Start" sourceRef="Retoure_Start" targetRef="Gateway_Parallel_Lager_Neusendung" />
-    <bpmn:parallelGateway id="Gateway_Parallel_Lager_Neusendung">
-      <bpmn:incoming>Flow_Start</bpmn:incoming>
-      <bpmn:outgoing>Flow_0eh02jo</bpmn:outgoing>
-      <bpmn:outgoing>Flow_1gu0k49</bpmn:outgoing>
-    </bpmn:parallelGateway>
-    <bpmn:exclusiveGateway id="Gateway_Beschaedigt" default="Flow_unbeschaedigt">
-      <bpmn:incoming>Flow_0eh02jo</bpmn:incoming>
-      <bpmn:outgoing>Flow_unbeschaedigt</bpmn:outgoing>
-      <bpmn:outgoing>Flow_beschaedigt</bpmn:outgoing>
-    </bpmn:exclusiveGateway>
-    <bpmn:sequenceFlow id="Flow_0eh02jo" sourceRef="Gateway_Parallel_Lager_Neusendung" targetRef="Gateway_Beschaedigt" />
-    <bpmn:exclusiveGateway id="Gateway_Neusendung" default="Flow_neusenden">
-      <bpmn:incoming>Flow_0iibopi</bpmn:incoming>
-      <bpmn:outgoing>Flow_Erstattung</bpmn:outgoing>
-      <bpmn:outgoing>Flow_neusenden</bpmn:outgoing>
-    </bpmn:exclusiveGateway>
-    <bpmn:sequenceFlow id="Flow_1gu0k49" sourceRef="Gateway_Parallel_Lager_Neusendung" targetRef="Kundendaten_ermitteln" />
-    <bpmn:sequenceFlow id="Flow_unbeschaedigt" name="Ware nicht beschädigt" sourceRef="Gateway_Beschaedigt" targetRef="Ware_einsortieren" />
-    <bpmn:sequenceFlow id="Flow_beschaedigt" name="Ware &#10;beschädigt" sourceRef="Gateway_Beschaedigt" targetRef="Warendaten_erfassen">
-      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{beschaedigt == true}</bpmn:conditionExpression>
-    </bpmn:sequenceFlow>
-    <bpmn:userTask id="Warendaten_erfassen" name="Warendaten erfassen" camunda:formKey="embedded:app:forms/warendaten-erfassen-form.html">
-      <bpmn:incoming>Flow_beschaedigt</bpmn:incoming>
-      <bpmn:outgoing>Flow_01lf19r</bpmn:outgoing>
-    </bpmn:userTask>
-    <bpmn:sequenceFlow id="Flow_01lf19r" sourceRef="Warendaten_erfassen" targetRef="Vernichtung_ermitteln" />
-    <bpmn:businessRuleTask id="Vernichtung_ermitteln" name="Vernichtung oder Spende ermitteln" camunda:resultVariable="vernichten" camunda:decisionRef="Schuh_Vernichtung_Spende" camunda:mapDecisionResult="singleEntry">
-      <bpmn:incoming>Flow_01lf19r</bpmn:incoming>
-      <bpmn:outgoing>Flow_0kgxxke</bpmn:outgoing>
-    </bpmn:businessRuleTask>
-    <bpmn:exclusiveGateway id="Gateway_Vernichtung">
-      <bpmn:incoming>Flow_0kgxxke</bpmn:incoming>
-      <bpmn:outgoing>Flow_vernichten</bpmn:outgoing>
-      <bpmn:outgoing>Flow_spenden</bpmn:outgoing>
-    </bpmn:exclusiveGateway>
-    <bpmn:sequenceFlow id="Flow_0kgxxke" sourceRef="Vernichtung_ermitteln" targetRef="Gateway_Vernichtung" />
-    <bpmn:sequenceFlow id="Flow_vernichten" name="vernichten" sourceRef="Gateway_Vernichtung" targetRef="Ware_vernichten">
-      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{vernichten == true}</bpmn:conditionExpression>
-    </bpmn:sequenceFlow>
-    <bpmn:sequenceFlow id="Flow_spenden" name="spenden" sourceRef="Gateway_Vernichtung" targetRef="Ware_spenden">
-      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{vernichten == false}</bpmn:conditionExpression>
-    </bpmn:sequenceFlow>
-    <bpmn:exclusiveGateway id="Gateway_Vernichtung_Close">
-      <bpmn:incoming>Flow_0f171gg</bpmn:incoming>
-      <bpmn:incoming>Flow_0zkq7z5</bpmn:incoming>
-      <bpmn:outgoing>Flow_14jbtgw</bpmn:outgoing>
-    </bpmn:exclusiveGateway>
-    <bpmn:sequenceFlow id="Flow_0f171gg" sourceRef="Ware_spenden" targetRef="Gateway_Vernichtung_Close" />
-    <bpmn:sequenceFlow id="Flow_0zkq7z5" sourceRef="Ware_vernichten" targetRef="Gateway_Vernichtung_Close" />
-    <bpmn:exclusiveGateway id="Gateway_Beschaedigt_Close">
-      <bpmn:incoming>Flow_14jbtgw</bpmn:incoming>
-      <bpmn:incoming>Flow_0a9rzst</bpmn:incoming>
-      <bpmn:outgoing>Flow_1c2tfla</bpmn:outgoing>
-    </bpmn:exclusiveGateway>
-    <bpmn:sequenceFlow id="Flow_14jbtgw" sourceRef="Gateway_Vernichtung_Close" targetRef="Gateway_Beschaedigt_Close" />
-    <bpmn:userTask id="Ware_vernichten" name="Ware vernichten">
-      <bpmn:incoming>Flow_vernichten</bpmn:incoming>
-      <bpmn:outgoing>Flow_0zkq7z5</bpmn:outgoing>
-    </bpmn:userTask>
-    <bpmn:userTask id="Ware_spenden" name="Ware spenden">
-      <bpmn:incoming>Flow_spenden</bpmn:incoming>
-      <bpmn:outgoing>Flow_0f171gg</bpmn:outgoing>
-    </bpmn:userTask>
-    <bpmn:sequenceFlow id="Flow_Erstattung" name="Erstattung" sourceRef="Gateway_Neusendung" targetRef="Finanzdaten_ermitteln">
-      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{erstattung}</bpmn:conditionExpression>
-    </bpmn:sequenceFlow>
-    <bpmn:sequenceFlow id="Flow_neusenden" name="Neusendung" sourceRef="Gateway_Neusendung" targetRef="Manuelle_Pruefung" />
-    <bpmn:serviceTask id="Erstattung" name="Erstattung ausführen" camunda:type="external" camunda:topic="financial">
-      <bpmn:extensionElements>
-        <camunda:inputOutput>
-          <camunda:inputParameter name="serviceIdentifier">refund</camunda:inputParameter>
-          <camunda:inputParameter name="ibanRefund">${iban}</camunda:inputParameter>
-          <camunda:inputParameter name="name">${vorname} ${nachname}</camunda:inputParameter>
-          <camunda:outputParameter name="emailGesendet">${confirmationEmailSent}</camunda:outputParameter>
-        </camunda:inputOutput>
-      </bpmn:extensionElements>
-      <bpmn:incoming>Flow_Erstattung_Datenermittlung</bpmn:incoming>
-      <bpmn:outgoing>Flow_Erstattung_abgeschlossen</bpmn:outgoing>
-    </bpmn:serviceTask>
-    <bpmn:userTask id="Manuelle_Pruefung" name="Manuelle Prüfung des Anliegens">
-      <bpmn:incoming>Flow_neusenden</bpmn:incoming>
-      <bpmn:outgoing>Flow_0u77zm0</bpmn:outgoing>
-    </bpmn:userTask>
-    <bpmn:sequenceFlow id="Flow_0u77zm0" sourceRef="Manuelle_Pruefung" targetRef="Warennummer_ermitteln" />
-    <bpmn:serviceTask id="Warennummer_ermitteln" name="Neue Warennummer ermitteln" camunda:delegateExpression="#{warennummer}">
-      <bpmn:incoming>Flow_0u77zm0</bpmn:incoming>
-      <bpmn:outgoing>Flow_03ubi3l</bpmn:outgoing>
-    </bpmn:serviceTask>
-    <bpmn:userTask id="Paket_packen" name="Paket packen">
-      <bpmn:extensionElements>
-        <camunda:inputOutput>
-          <camunda:outputParameter name="pakettyp">${pakettyp}</camunda:outputParameter>
-        </camunda:inputOutput>
-      </bpmn:extensionElements>
-      <bpmn:incoming>Flow_006t3wo</bpmn:incoming>
-      <bpmn:outgoing>Flow_0bhr7g8</bpmn:outgoing>
-    </bpmn:userTask>
-    <bpmn:sequenceFlow id="Flow_0bhr7g8" sourceRef="Paket_packen" targetRef="Paket_pruefen" />
-    <bpmn:userTask id="Paket_pruefen" name="Paket prüfen">
-      <bpmn:extensionElements>
-        <camunda:formData>
-          <camunda:formField id="FormField_Paket_Pruefung" label="paket" type="boolean" defaultValue="true" />
-        </camunda:formData>
-      </bpmn:extensionElements>
-      <bpmn:incoming>Flow_0bhr7g8</bpmn:incoming>
-      <bpmn:outgoing>Flow_1n6o3h6</bpmn:outgoing>
-    </bpmn:userTask>
-    <bpmn:exclusiveGateway id="Gateway_Einpackung_Fehlerhaft" default="Flow_paket_okay">
-      <bpmn:incoming>Flow_1n6o3h6</bpmn:incoming>
-      <bpmn:outgoing>Flow_paket_okay</bpmn:outgoing>
-      <bpmn:outgoing>Flow_fehlerhaft_eingepackt</bpmn:outgoing>
-    </bpmn:exclusiveGateway>
-    <bpmn:sequenceFlow id="Flow_1n6o3h6" sourceRef="Paket_pruefen" targetRef="Gateway_Einpackung_Fehlerhaft" />
-    <bpmn:sequenceFlow id="Flow_paket_okay" name="Paket okay" sourceRef="Gateway_Einpackung_Fehlerhaft" targetRef="Paket_senden" />
-    <bpmn:sequenceFlow id="Flow_fehlerhaft_eingepackt" name="Fehlerhaft eingepackt" sourceRef="Gateway_Einpackung_Fehlerhaft" targetRef="Gateway_Auspacken">
-      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{paket==false}</bpmn:conditionExpression>
-    </bpmn:sequenceFlow>
-    <bpmn:exclusiveGateway id="Gateway_Einpackung_Fehlerhaft_Closed">
-      <bpmn:incoming>Flow_03ubi3l</bpmn:incoming>
-      <bpmn:incoming>Flow_1bnro90</bpmn:incoming>
-      <bpmn:outgoing>Flow_006t3wo</bpmn:outgoing>
-    </bpmn:exclusiveGateway>
-    <bpmn:sequenceFlow id="Flow_03ubi3l" sourceRef="Warennummer_ermitteln" targetRef="Gateway_Einpackung_Fehlerhaft_Closed" />
-    <bpmn:sequenceFlow id="Flow_006t3wo" sourceRef="Gateway_Einpackung_Fehlerhaft_Closed" targetRef="Paket_packen" />
-    <bpmn:sequenceFlow id="Flow_1bnro90" sourceRef="Gateway_14evkap" targetRef="Gateway_Einpackung_Fehlerhaft_Closed" />
-    <bpmn:exclusiveGateway id="Gateway_Neusendung_Closed">
-      <bpmn:incoming>Flow_0u4n4gn</bpmn:incoming>
-      <bpmn:incoming>Flow_Erstattung_abgeschlossen</bpmn:incoming>
-      <bpmn:outgoing>Flow_0m33odz</bpmn:outgoing>
-    </bpmn:exclusiveGateway>
-    <bpmn:sequenceFlow id="Flow_0u4n4gn" sourceRef="Paket_senden" targetRef="Gateway_Neusendung_Closed" />
-    <bpmn:sequenceFlow id="Flow_Erstattung_abgeschlossen" sourceRef="Erstattung" targetRef="Gateway_Neusendung_Closed" />
-    <bpmn:sequenceFlow id="Flow_0m33odz" sourceRef="Gateway_Neusendung_Closed" targetRef="Gateway_Parallel_Lager_Neusendung_Closed" />
-    <bpmn:parallelGateway id="Gateway_Parallel_Lager_Neusendung_Closed">
-      <bpmn:incoming>Flow_0m33odz</bpmn:incoming>
-      <bpmn:incoming>Flow_1c2tfla</bpmn:incoming>
-      <bpmn:outgoing>Flow_Ende</bpmn:outgoing>
-    </bpmn:parallelGateway>
-    <bpmn:sequenceFlow id="Flow_1c2tfla" sourceRef="Gateway_Beschaedigt_Close" targetRef="Gateway_Parallel_Lager_Neusendung_Closed" />
-    <bpmn:endEvent id="Retoure_Ende">
-      <bpmn:incoming>Flow_Ende</bpmn:incoming>
-    </bpmn:endEvent>
-    <bpmn:sequenceFlow id="Flow_Ende" sourceRef="Gateway_Parallel_Lager_Neusendung_Closed" targetRef="Retoure_Ende" />
-    <bpmn:userTask id="Paket_senden" name="Paket senden">
-      <bpmn:incoming>Flow_paket_okay</bpmn:incoming>
-      <bpmn:outgoing>Flow_0u4n4gn</bpmn:outgoing>
-    </bpmn:userTask>
-    <bpmn:manualTask id="Ware_einsortieren" name="Ware einsortieren">
-      <bpmn:incoming>Flow_unbeschaedigt</bpmn:incoming>
-      <bpmn:outgoing>Flow_0a9rzst</bpmn:outgoing>
-    </bpmn:manualTask>
-    <bpmn:exclusiveGateway id="Gateway_Auspacken">
-      <bpmn:incoming>Flow_fehlerhaft_eingepackt</bpmn:incoming>
-      <bpmn:outgoing>Flow_normal_auspacken</bpmn:outgoing>
-      <bpmn:outgoing>Flow_luxus_auspacken</bpmn:outgoing>
-    </bpmn:exclusiveGateway>
-    <bpmn:exclusiveGateway id="Gateway_14evkap">
-      <bpmn:incoming>Flow_04tyvq1</bpmn:incoming>
-      <bpmn:incoming>Flow_0d8lhxo</bpmn:incoming>
-      <bpmn:outgoing>Flow_1bnro90</bpmn:outgoing>
-    </bpmn:exclusiveGateway>
-    <bpmn:sequenceFlow id="Flow_04tyvq1" sourceRef="Ware_auspacken_luxus" targetRef="Gateway_14evkap" />
-    <bpmn:sequenceFlow id="Flow_0d8lhxo" sourceRef="Ware_auspacken_normal" targetRef="Gateway_14evkap" />
-    <bpmn:sequenceFlow id="Flow_normal_auspacken" name="Normal-verpackung" sourceRef="Gateway_Auspacken" targetRef="Ware_auspacken_normal">
-      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{pakettyp=="Normalverpackung"}</bpmn:conditionExpression>
-    </bpmn:sequenceFlow>
-    <bpmn:sequenceFlow id="Flow_luxus_auspacken" name="Luxusverpackung" sourceRef="Gateway_Auspacken" targetRef="Ware_auspacken_luxus">
-      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{pakettyp=="Luxusverpackung"}</bpmn:conditionExpression>
-    </bpmn:sequenceFlow>
-    <bpmn:sequenceFlow id="Flow_Erstattung_Datenermittlung" sourceRef="Finanzdaten_ermitteln" targetRef="Erstattung" />
-    <bpmn:serviceTask id="Finanzdaten_ermitteln" name="Finanzdaten ermitteln" camunda:type="external" camunda:topic="financial">
-      <bpmn:extensionElements>
-        <camunda:inputOutput>
-          <camunda:inputParameter name="serviceIdentifier">getData</camunda:inputParameter>
-          <camunda:inputParameter name="kundennummer">${kundennummer}</camunda:inputParameter>
-          <camunda:outputParameter name="iban">${ibanRefund}</camunda:outputParameter>
-        </camunda:inputOutput>
-      </bpmn:extensionElements>
-      <bpmn:incoming>Flow_Erstattung</bpmn:incoming>
-      <bpmn:outgoing>Flow_Erstattung_Datenermittlung</bpmn:outgoing>
-    </bpmn:serviceTask>
-    <bpmn:manualTask id="Ware_auspacken_luxus" name="Luxuspaket auspacken">
-      <bpmn:incoming>Flow_luxus_auspacken</bpmn:incoming>
-      <bpmn:outgoing>Flow_04tyvq1</bpmn:outgoing>
-    </bpmn:manualTask>
-    <bpmn:manualTask id="Ware_auspacken_normal" name="Normales Paket auspacken">
-      <bpmn:incoming>Flow_normal_auspacken</bpmn:incoming>
-      <bpmn:outgoing>Flow_0d8lhxo</bpmn:outgoing>
-    </bpmn:manualTask>
-    <bpmn:sequenceFlow id="Flow_0iibopi" sourceRef="Kundendaten_ermitteln" targetRef="Gateway_Neusendung" />
-    <bpmn:serviceTask id="Kundendaten_ermitteln" name="Kundendaten ermitteln" camunda:type="external" camunda:topic="customer">
-      <bpmn:extensionElements>
-        <camunda:inputOutput>
-          <camunda:inputParameter name="kundennummer">${kundennummer}</camunda:inputParameter>
-          <camunda:outputParameter name="vorname">${firstname}</camunda:outputParameter>
-          <camunda:outputParameter name="nachname">${lastname}</camunda:outputParameter>
-        </camunda:inputOutput>
-      </bpmn:extensionElements>
-      <bpmn:incoming>Flow_1gu0k49</bpmn:incoming>
-      <bpmn:outgoing>Flow_0iibopi</bpmn:outgoing>
-    </bpmn:serviceTask>
-    <bpmn:sequenceFlow id="Flow_0a9rzst" sourceRef="Ware_einsortieren" targetRef="Gateway_Beschaedigt_Close" />
-  </bpmn:process>
-  <bpmndi:BPMNDiagram id="BPMNDiagram_1">
-    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Retoure">
-      <bpmndi:BPMNEdge id="Flow_0iibopi_di" bpmnElement="Flow_0iibopi">
-        <di:waypoint x="400" y="540" />
-        <di:waypoint x="445" y="540" />
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="Flow_01i7hk6_di" bpmnElement="Flow_Erstattung_Datenermittlung">
-        <di:waypoint x="690" y="540" />
-        <di:waypoint x="970" y="540" />
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="Flow_0qjrxz7_di" bpmnElement="Flow_luxus_auspacken">
-        <di:waypoint x="1150" y="675" />
-        <di:waypoint x="1150" y="650" />
-        <di:waypoint x="1060" y="650" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="1096" y="623" width="87" height="14" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="Flow_1t3d53q_di" bpmnElement="Flow_normal_auspacken">
-        <di:waypoint x="1150" y="725" />
-        <di:waypoint x="1150" y="750" />
-        <di:waypoint x="1060" y="750" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="1111" y="756" width="57" height="27" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="Flow_0d8lhxo_di" bpmnElement="Flow_0d8lhxo">
-        <di:waypoint x="960" y="750" />
-        <di:waypoint x="880" y="750" />
-        <di:waypoint x="880" y="725" />
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="Flow_04tyvq1_di" bpmnElement="Flow_04tyvq1">
-        <di:waypoint x="960" y="650" />
-        <di:waypoint x="880" y="650" />
-        <di:waypoint x="880" y="675" />
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="Flow_02p7iio_di" bpmnElement="Flow_Ende">
-        <di:waypoint x="1656" y="660" />
-        <di:waypoint x="1705" y="660" />
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="Flow_1c2tfla_di" bpmnElement="Flow_1c2tfla">
-        <di:waypoint x="1205" y="430" />
-        <di:waypoint x="1631" y="430" />
-        <di:waypoint x="1631" y="635" />
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="Flow_0m33odz_di" bpmnElement="Flow_0m33odz">
-        <di:waypoint x="1555" y="660" />
-        <di:waypoint x="1606" y="660" />
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="Flow_0pjcsuy_di" bpmnElement="Flow_Erstattung_abgeschlossen">
-        <di:waypoint x="1070" y="540" />
-        <di:waypoint x="1530" y="540" />
-        <di:waypoint x="1530" y="635" />
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="Flow_0u4n4gn_di" bpmnElement="Flow_0u4n4gn">
-        <di:waypoint x="1500" y="870" />
-        <di:waypoint x="1530" y="870" />
-        <di:waypoint x="1530" y="685" />
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="Flow_1bnro90_di" bpmnElement="Flow_1bnro90">
-        <di:waypoint x="855" y="700" />
-        <di:waypoint x="760" y="700" />
-        <di:waypoint x="760" y="845" />
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="Flow_006t3wo_di" bpmnElement="Flow_006t3wo">
-        <di:waypoint x="785" y="870" />
-        <di:waypoint x="870" y="870" />
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="Flow_03ubi3l_di" bpmnElement="Flow_03ubi3l">
-        <di:waypoint x="690" y="870" />
-        <di:waypoint x="735" y="870" />
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="Flow_1ff93it_di" bpmnElement="Flow_fehlerhaft_eingepackt">
-        <di:waypoint x="1270" y="845" />
-        <di:waypoint x="1270" y="700" />
-        <di:waypoint x="1180" y="700" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="1202" y="761" width="55" height="27" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="Flow_17na1xt_di" bpmnElement="Flow_paket_okay">
-        <di:waypoint x="1295" y="870" />
-        <di:waypoint x="1400" y="870" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="1320" y="852" width="55" height="14" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="Flow_1n6o3h6_di" bpmnElement="Flow_1n6o3h6">
-        <di:waypoint x="1160" y="870" />
-        <di:waypoint x="1245" y="870" />
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="Flow_0bhr7g8_di" bpmnElement="Flow_0bhr7g8">
-        <di:waypoint x="970" y="870" />
-        <di:waypoint x="1060" y="870" />
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="Flow_0u77zm0_di" bpmnElement="Flow_0u77zm0">
-        <di:waypoint x="520" y="870" />
-        <di:waypoint x="590" y="870" />
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="Flow_17xuhq0_di" bpmnElement="Flow_neusenden">
-        <di:waypoint x="470" y="565" />
-        <di:waypoint x="470" y="830" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="478" y="719" width="63" height="14" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="Flow_0hwn7f3_di" bpmnElement="Flow_Erstattung">
-        <di:waypoint x="495" y="540" />
-        <di:waypoint x="590" y="540" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="507" y="522" width="51" height="14" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="Flow_0a9rzst_di" bpmnElement="Flow_0a9rzst">
-        <di:waypoint x="820" y="160" />
-        <di:waypoint x="1180" y="160" />
-        <di:waypoint x="1180" y="405" />
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="Flow_14jbtgw_di" bpmnElement="Flow_14jbtgw">
-        <di:waypoint x="1085" y="430" />
-        <di:waypoint x="1155" y="430" />
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="Flow_0zkq7z5_di" bpmnElement="Flow_0zkq7z5">
-        <di:waypoint x="970" y="320" />
-        <di:waypoint x="1060" y="320" />
-        <di:waypoint x="1060" y="405" />
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="Flow_0f171gg_di" bpmnElement="Flow_0f171gg">
-        <di:waypoint x="970" y="430" />
-        <di:waypoint x="1035" y="430" />
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="Flow_0t6w55x_di" bpmnElement="Flow_spenden">
-        <di:waypoint x="780" y="345" />
-        <di:waypoint x="780" y="430" />
-        <di:waypoint x="870" y="430" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="798" y="403" width="43" height="14" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="Flow_0zzjxrn_di" bpmnElement="Flow_vernichten">
-        <di:waypoint x="805" y="320" />
-        <di:waypoint x="870" y="320" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="812" y="302" width="51" height="14" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="Flow_0kgxxke_di" bpmnElement="Flow_0kgxxke">
-        <di:waypoint x="690" y="320" />
-        <di:waypoint x="755" y="320" />
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="Flow_01lf19r_di" bpmnElement="Flow_01lf19r">
-        <di:waypoint x="530" y="320" />
-        <di:waypoint x="590" y="320" />
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="Flow_0rsh9gw_di" bpmnElement="Flow_beschaedigt">
-        <di:waypoint x="350" y="255" />
-        <di:waypoint x="350" y="320" />
-        <di:waypoint x="430" y="320" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="362" y="285" width="55" height="27" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="Flow_1ffiujj_di" bpmnElement="Flow_unbeschaedigt">
-        <di:waypoint x="350" y="205" />
-        <di:waypoint x="350" y="160" />
-        <di:waypoint x="720" y="160" />
-        <bpmndi:BPMNLabel>
-          <dc:Bounds x="505" y="166" width="55" height="27" />
-        </bpmndi:BPMNLabel>
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="Flow_1gu0k49_di" bpmnElement="Flow_1gu0k49">
-        <di:waypoint x="260" y="402" />
-        <di:waypoint x="260" y="540" />
-        <di:waypoint x="300" y="540" />
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="Flow_0eh02jo_di" bpmnElement="Flow_0eh02jo">
-        <di:waypoint x="260" y="352" />
-        <di:waypoint x="260" y="230" />
-        <di:waypoint x="325" y="230" />
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNEdge id="Flow_0emcbml_di" bpmnElement="Flow_Start">
-        <di:waypoint x="188" y="377" />
-        <di:waypoint x="235" y="377" />
-      </bpmndi:BPMNEdge>
-      <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="Retoure_Start">
-        <dc:Bounds x="152" y="359" width="36" height="36" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="Gateway_0pbw15b_di" bpmnElement="Gateway_Parallel_Lager_Neusendung">
-        <dc:Bounds x="235" y="352" width="50" height="50" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="Gateway_12gz2vz_di" bpmnElement="Gateway_Beschaedigt" isMarkerVisible="true">
-        <dc:Bounds x="325" y="205" width="50" height="50" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="Gateway_1baqz4f_di" bpmnElement="Gateway_Neusendung" isMarkerVisible="true">
-        <dc:Bounds x="445" y="515" width="50" height="50" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="Activity_1l943g0_di" bpmnElement="Warendaten_erfassen">
-        <dc:Bounds x="430" y="280" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="Activity_0axy9lw_di" bpmnElement="Vernichtung_ermitteln">
-        <dc:Bounds x="590" y="280" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="Gateway_0tcbgt9_di" bpmnElement="Gateway_Vernichtung" isMarkerVisible="true">
-        <dc:Bounds x="755" y="295" width="50" height="50" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="Gateway_1usozh0_di" bpmnElement="Gateway_Vernichtung_Close" isMarkerVisible="true">
-        <dc:Bounds x="1035" y="405" width="50" height="50" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="Gateway_0nb41va_di" bpmnElement="Gateway_Beschaedigt_Close" isMarkerVisible="true">
-        <dc:Bounds x="1155" y="405" width="50" height="50" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="Activity_1obx3f0_di" bpmnElement="Ware_vernichten">
-        <dc:Bounds x="870" y="280" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="Activity_0swadmc_di" bpmnElement="Ware_spenden">
-        <dc:Bounds x="870" y="390" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="Activity_0jhtgen_di" bpmnElement="Erstattung">
-        <dc:Bounds x="970" y="500" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="Activity_0dpq7jh_di" bpmnElement="Manuelle_Pruefung">
-        <dc:Bounds x="420" y="830" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="Activity_0fnre3x_di" bpmnElement="Warennummer_ermitteln">
-        <dc:Bounds x="590" y="830" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="Activity_01orosg_di" bpmnElement="Paket_packen">
-        <dc:Bounds x="870" y="830" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="Activity_0sg307t_di" bpmnElement="Paket_pruefen">
-        <dc:Bounds x="1060" y="830" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="Gateway_0wlcnif_di" bpmnElement="Gateway_Einpackung_Fehlerhaft" isMarkerVisible="true">
-        <dc:Bounds x="1245" y="845" width="50" height="50" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="Gateway_0pa451i_di" bpmnElement="Gateway_Einpackung_Fehlerhaft_Closed" isMarkerVisible="true">
-        <dc:Bounds x="735" y="845" width="50" height="50" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="Gateway_0hqss9s_di" bpmnElement="Gateway_Neusendung_Closed" isMarkerVisible="true">
-        <dc:Bounds x="1505" y="635" width="50" height="50" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="Gateway_05633xf_di" bpmnElement="Gateway_Parallel_Lager_Neusendung_Closed">
-        <dc:Bounds x="1606" y="635" width="50" height="50" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="Event_1ihgrip_di" bpmnElement="Retoure_Ende">
-        <dc:Bounds x="1705" y="642" width="36" height="36" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="Activity_1ma1os5_di" bpmnElement="Paket_senden">
-        <dc:Bounds x="1400" y="830" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="Activity_1p3me1t_di" bpmnElement="Ware_einsortieren">
-        <dc:Bounds x="720" y="120" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="Gateway_0bffnik_di" bpmnElement="Gateway_Auspacken" isMarkerVisible="true">
-        <dc:Bounds x="1125" y="675" width="50" height="50" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="Gateway_14evkap_di" bpmnElement="Gateway_14evkap" isMarkerVisible="true">
-        <dc:Bounds x="855" y="675" width="50" height="50" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="Activity_1t8f6i7_di" bpmnElement="Finanzdaten_ermitteln">
-        <dc:Bounds x="590" y="500" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="Activity_1gpa5a1_di" bpmnElement="Ware_auspacken_luxus">
-        <dc:Bounds x="960" y="610" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="Activity_1xfsrap_di" bpmnElement="Ware_auspacken_normal">
-        <dc:Bounds x="960" y="710" width="100" height="80" />
-      </bpmndi:BPMNShape>
-      <bpmndi:BPMNShape id="Activity_1l3qzwt_di" bpmnElement="Kundendaten_ermitteln">
-        <dc:Bounds x="300" y="500" width="100" height="80" />
-      </bpmndi:BPMNShape>
-    </bpmndi:BPMNPlane>
-  </bpmndi:BPMNDiagram>
-</bpmn:definitions>
+<?xml version="1.0" encoding="UTF-8"?>
+<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" id="Definitions_0b5ffl8" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.10.0">
+  <bpmn:process id="Retoure" name="Schuh-Retoure" isExecutable="true">
+    <bpmn:startEvent id="Retoure_Start">
+      <bpmn:extensionElements>
+        <camunda:formData>
+          <camunda:formField id="FormField_beschaedigt" label="beschaedigt" type="boolean" defaultValue="false" />
+          <camunda:formField id="FormField_erstattung" label="erstattung" type="boolean" defaultValue="false" />
+          <camunda:formField id="FormField_kundennummer" label="kundennummer" type="string" />
+        </camunda:formData>
+      </bpmn:extensionElements>
+      <bpmn:outgoing>Flow_Start</bpmn:outgoing>
+    </bpmn:startEvent>
+    <bpmn:sequenceFlow id="Flow_Start" sourceRef="Retoure_Start" targetRef="Gateway_Parallel_Lager_Neusendung" />
+    <bpmn:parallelGateway id="Gateway_Parallel_Lager_Neusendung">
+      <bpmn:incoming>Flow_Start</bpmn:incoming>
+      <bpmn:outgoing>Flow_0eh02jo</bpmn:outgoing>
+      <bpmn:outgoing>Flow_1gu0k49</bpmn:outgoing>
+    </bpmn:parallelGateway>
+    <bpmn:exclusiveGateway id="Gateway_Beschaedigt" default="Flow_unbeschaedigt">
+      <bpmn:incoming>Flow_0eh02jo</bpmn:incoming>
+      <bpmn:outgoing>Flow_unbeschaedigt</bpmn:outgoing>
+      <bpmn:outgoing>Flow_beschaedigt</bpmn:outgoing>
+    </bpmn:exclusiveGateway>
+    <bpmn:sequenceFlow id="Flow_0eh02jo" sourceRef="Gateway_Parallel_Lager_Neusendung" targetRef="Gateway_Beschaedigt" />
+    <bpmn:exclusiveGateway id="Gateway_Neusendung" default="Flow_neusenden">
+      <bpmn:incoming>Flow_0iibopi</bpmn:incoming>
+      <bpmn:outgoing>Flow_Erstattung</bpmn:outgoing>
+      <bpmn:outgoing>Flow_neusenden</bpmn:outgoing>
+    </bpmn:exclusiveGateway>
+    <bpmn:sequenceFlow id="Flow_1gu0k49" sourceRef="Gateway_Parallel_Lager_Neusendung" targetRef="Kundendaten_ermitteln" />
+    <bpmn:sequenceFlow id="Flow_unbeschaedigt" name="Ware nicht beschädigt" sourceRef="Gateway_Beschaedigt" targetRef="Ware_einsortieren" />
+    <bpmn:sequenceFlow id="Flow_beschaedigt" name="Ware &#10;beschädigt" sourceRef="Gateway_Beschaedigt" targetRef="Warendaten_erfassen">
+      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{beschaedigt == true}</bpmn:conditionExpression>
+    </bpmn:sequenceFlow>
+    <bpmn:userTask id="Warendaten_erfassen" name="Warendaten erfassen" camunda:formKey="embedded:app:forms/warendaten-erfassen-form.html">
+      <bpmn:incoming>Flow_beschaedigt</bpmn:incoming>
+      <bpmn:outgoing>Flow_01lf19r</bpmn:outgoing>
+    </bpmn:userTask>
+    <bpmn:sequenceFlow id="Flow_01lf19r" sourceRef="Warendaten_erfassen" targetRef="Vernichtung_ermitteln" />
+    <bpmn:businessRuleTask id="Vernichtung_ermitteln" name="Vernichtung oder Spende ermitteln" camunda:resultVariable="vernichten" camunda:decisionRef="Schuh_Vernichtung_Spende" camunda:mapDecisionResult="singleEntry">
+      <bpmn:incoming>Flow_01lf19r</bpmn:incoming>
+      <bpmn:outgoing>Flow_0kgxxke</bpmn:outgoing>
+    </bpmn:businessRuleTask>
+    <bpmn:exclusiveGateway id="Gateway_Vernichtung">
+      <bpmn:incoming>Flow_0kgxxke</bpmn:incoming>
+      <bpmn:outgoing>Flow_vernichten</bpmn:outgoing>
+      <bpmn:outgoing>Flow_spenden</bpmn:outgoing>
+    </bpmn:exclusiveGateway>
+    <bpmn:sequenceFlow id="Flow_0kgxxke" sourceRef="Vernichtung_ermitteln" targetRef="Gateway_Vernichtung" />
+    <bpmn:sequenceFlow id="Flow_vernichten" name="vernichten" sourceRef="Gateway_Vernichtung" targetRef="Ware_vernichten">
+      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{vernichten == true}</bpmn:conditionExpression>
+    </bpmn:sequenceFlow>
+    <bpmn:sequenceFlow id="Flow_spenden" name="spenden" sourceRef="Gateway_Vernichtung" targetRef="Ware_spenden">
+      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{vernichten == false}</bpmn:conditionExpression>
+    </bpmn:sequenceFlow>
+    <bpmn:exclusiveGateway id="Gateway_Vernichtung_Close">
+      <bpmn:incoming>Flow_0f171gg</bpmn:incoming>
+      <bpmn:incoming>Flow_0zkq7z5</bpmn:incoming>
+      <bpmn:outgoing>Flow_14jbtgw</bpmn:outgoing>
+    </bpmn:exclusiveGateway>
+    <bpmn:sequenceFlow id="Flow_0f171gg" sourceRef="Ware_spenden" targetRef="Gateway_Vernichtung_Close" />
+    <bpmn:sequenceFlow id="Flow_0zkq7z5" sourceRef="Ware_vernichten" targetRef="Gateway_Vernichtung_Close" />
+    <bpmn:exclusiveGateway id="Gateway_Beschaedigt_Close">
+      <bpmn:incoming>Flow_14jbtgw</bpmn:incoming>
+      <bpmn:incoming>Flow_0a9rzst</bpmn:incoming>
+      <bpmn:outgoing>Flow_1c2tfla</bpmn:outgoing>
+    </bpmn:exclusiveGateway>
+    <bpmn:sequenceFlow id="Flow_14jbtgw" sourceRef="Gateway_Vernichtung_Close" targetRef="Gateway_Beschaedigt_Close" />
+    <bpmn:userTask id="Ware_vernichten" name="Ware vernichten">
+      <bpmn:incoming>Flow_vernichten</bpmn:incoming>
+      <bpmn:outgoing>Flow_0zkq7z5</bpmn:outgoing>
+    </bpmn:userTask>
+    <bpmn:userTask id="Ware_spenden" name="Ware spenden">
+      <bpmn:incoming>Flow_spenden</bpmn:incoming>
+      <bpmn:outgoing>Flow_0f171gg</bpmn:outgoing>
+    </bpmn:userTask>
+    <bpmn:sequenceFlow id="Flow_Erstattung" name="Erstattung" sourceRef="Gateway_Neusendung" targetRef="Finanzdaten_ermitteln">
+      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{erstattung}</bpmn:conditionExpression>
+    </bpmn:sequenceFlow>
+    <bpmn:sequenceFlow id="Flow_neusenden" name="Neusendung" sourceRef="Gateway_Neusendung" targetRef="Manuelle_Pruefung" />
+    <bpmn:serviceTask id="Erstattung" name="Erstattung ausführen" camunda:type="external" camunda:topic="financial">
+      <bpmn:extensionElements>
+        <camunda:inputOutput>
+          <camunda:inputParameter name="serviceIdentifier">refund</camunda:inputParameter>
+          <camunda:inputParameter name="ibanRefund">${iban}</camunda:inputParameter>
+          <camunda:inputParameter name="name">${vorname} ${nachname}</camunda:inputParameter>
+          <camunda:outputParameter name="emailGesendet">${confirmationEmailSent}</camunda:outputParameter>
+        </camunda:inputOutput>
+      </bpmn:extensionElements>
+      <bpmn:incoming>Flow_Erstattung_Datenermittlung</bpmn:incoming>
+      <bpmn:outgoing>Flow_Erstattung_abgeschlossen</bpmn:outgoing>
+    </bpmn:serviceTask>
+    <bpmn:userTask id="Manuelle_Pruefung" name="Manuelle Prüfung des Anliegens">
+      <bpmn:incoming>Flow_neusenden</bpmn:incoming>
+      <bpmn:outgoing>Flow_0u77zm0</bpmn:outgoing>
+    </bpmn:userTask>
+    <bpmn:sequenceFlow id="Flow_0u77zm0" sourceRef="Manuelle_Pruefung" targetRef="Warennummer_ermitteln" />
+    <bpmn:serviceTask id="Warennummer_ermitteln" name="Neue Warennummer ermitteln" camunda:delegateExpression="#{warennummer}">
+      <bpmn:incoming>Flow_0u77zm0</bpmn:incoming>
+      <bpmn:outgoing>Flow_03ubi3l</bpmn:outgoing>
+    </bpmn:serviceTask>
+    <bpmn:userTask id="Paket_packen" name="Paket packen">
+      <bpmn:extensionElements>
+        <camunda:inputOutput>
+          <camunda:outputParameter name="pakettyp">${pakettyp}</camunda:outputParameter>
+        </camunda:inputOutput>
+      </bpmn:extensionElements>
+      <bpmn:incoming>Flow_006t3wo</bpmn:incoming>
+      <bpmn:outgoing>Flow_0bhr7g8</bpmn:outgoing>
+    </bpmn:userTask>
+    <bpmn:sequenceFlow id="Flow_0bhr7g8" sourceRef="Paket_packen" targetRef="Paket_pruefen" />
+    <bpmn:userTask id="Paket_pruefen" name="Paket prüfen">
+      <bpmn:extensionElements>
+        <camunda:formData>
+          <camunda:formField id="FormField_Paket_Pruefung" label="paket" type="boolean" defaultValue="true" />
+        </camunda:formData>
+      </bpmn:extensionElements>
+      <bpmn:incoming>Flow_0bhr7g8</bpmn:incoming>
+      <bpmn:outgoing>Flow_1n6o3h6</bpmn:outgoing>
+    </bpmn:userTask>
+    <bpmn:exclusiveGateway id="Gateway_Einpackung_Fehlerhaft" default="Flow_paket_okay">
+      <bpmn:incoming>Flow_1n6o3h6</bpmn:incoming>
+      <bpmn:outgoing>Flow_paket_okay</bpmn:outgoing>
+      <bpmn:outgoing>Flow_fehlerhaft_eingepackt</bpmn:outgoing>
+    </bpmn:exclusiveGateway>
+    <bpmn:sequenceFlow id="Flow_1n6o3h6" sourceRef="Paket_pruefen" targetRef="Gateway_Einpackung_Fehlerhaft" />
+    <bpmn:sequenceFlow id="Flow_paket_okay" name="Paket okay" sourceRef="Gateway_Einpackung_Fehlerhaft" targetRef="Paket_senden" />
+    <bpmn:sequenceFlow id="Flow_fehlerhaft_eingepackt" name="Fehlerhaft eingepackt" sourceRef="Gateway_Einpackung_Fehlerhaft" targetRef="Gateway_Auspacken">
+      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{paket==false}</bpmn:conditionExpression>
+    </bpmn:sequenceFlow>
+    <bpmn:exclusiveGateway id="Gateway_Einpackung_Fehlerhaft_Closed">
+      <bpmn:incoming>Flow_03ubi3l</bpmn:incoming>
+      <bpmn:incoming>Flow_1bnro90</bpmn:incoming>
+      <bpmn:outgoing>Flow_006t3wo</bpmn:outgoing>
+    </bpmn:exclusiveGateway>
+    <bpmn:sequenceFlow id="Flow_03ubi3l" sourceRef="Warennummer_ermitteln" targetRef="Gateway_Einpackung_Fehlerhaft_Closed" />
+    <bpmn:sequenceFlow id="Flow_006t3wo" sourceRef="Gateway_Einpackung_Fehlerhaft_Closed" targetRef="Paket_packen" />
+    <bpmn:sequenceFlow id="Flow_1bnro90" sourceRef="Gateway_14evkap" targetRef="Gateway_Einpackung_Fehlerhaft_Closed" />
+    <bpmn:exclusiveGateway id="Gateway_Neusendung_Closed">
+      <bpmn:incoming>Flow_0u4n4gn</bpmn:incoming>
+      <bpmn:incoming>Flow_Erstattung_abgeschlossen</bpmn:incoming>
+      <bpmn:outgoing>Flow_0m33odz</bpmn:outgoing>
+    </bpmn:exclusiveGateway>
+    <bpmn:sequenceFlow id="Flow_0u4n4gn" sourceRef="Paket_senden" targetRef="Gateway_Neusendung_Closed" />
+    <bpmn:sequenceFlow id="Flow_Erstattung_abgeschlossen" sourceRef="Erstattung" targetRef="Gateway_Neusendung_Closed" />
+    <bpmn:sequenceFlow id="Flow_0m33odz" sourceRef="Gateway_Neusendung_Closed" targetRef="Gateway_Parallel_Lager_Neusendung_Closed" />
+    <bpmn:parallelGateway id="Gateway_Parallel_Lager_Neusendung_Closed">
+      <bpmn:incoming>Flow_0m33odz</bpmn:incoming>
+      <bpmn:incoming>Flow_1c2tfla</bpmn:incoming>
+      <bpmn:outgoing>Flow_Ende</bpmn:outgoing>
+    </bpmn:parallelGateway>
+    <bpmn:sequenceFlow id="Flow_1c2tfla" sourceRef="Gateway_Beschaedigt_Close" targetRef="Gateway_Parallel_Lager_Neusendung_Closed" />
+    <bpmn:endEvent id="Retoure_Ende">
+      <bpmn:incoming>Flow_Ende</bpmn:incoming>
+    </bpmn:endEvent>
+    <bpmn:sequenceFlow id="Flow_Ende" sourceRef="Gateway_Parallel_Lager_Neusendung_Closed" targetRef="Retoure_Ende" />
+    <bpmn:userTask id="Paket_senden" name="Paket senden">
+      <bpmn:incoming>Flow_paket_okay</bpmn:incoming>
+      <bpmn:outgoing>Flow_0u4n4gn</bpmn:outgoing>
+    </bpmn:userTask>
+    <bpmn:manualTask id="Ware_einsortieren" name="Ware einsortieren">
+      <bpmn:incoming>Flow_unbeschaedigt</bpmn:incoming>
+      <bpmn:outgoing>Flow_0a9rzst</bpmn:outgoing>
+    </bpmn:manualTask>
+    <bpmn:exclusiveGateway id="Gateway_Auspacken">
+      <bpmn:incoming>Flow_fehlerhaft_eingepackt</bpmn:incoming>
+      <bpmn:outgoing>Flow_normal_auspacken</bpmn:outgoing>
+      <bpmn:outgoing>Flow_luxus_auspacken</bpmn:outgoing>
+    </bpmn:exclusiveGateway>
+    <bpmn:exclusiveGateway id="Gateway_14evkap">
+      <bpmn:incoming>Flow_04tyvq1</bpmn:incoming>
+      <bpmn:incoming>Flow_0d8lhxo</bpmn:incoming>
+      <bpmn:outgoing>Flow_1bnro90</bpmn:outgoing>
+    </bpmn:exclusiveGateway>
+    <bpmn:sequenceFlow id="Flow_04tyvq1" sourceRef="Ware_auspacken_luxus" targetRef="Gateway_14evkap" />
+    <bpmn:sequenceFlow id="Flow_0d8lhxo" sourceRef="Ware_auspacken_normal" targetRef="Gateway_14evkap" />
+    <bpmn:sequenceFlow id="Flow_normal_auspacken" name="Normal-verpackung" sourceRef="Gateway_Auspacken" targetRef="Ware_auspacken_normal">
+      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{pakettyp=="Normalverpackung"}</bpmn:conditionExpression>
+    </bpmn:sequenceFlow>
+    <bpmn:sequenceFlow id="Flow_luxus_auspacken" name="Luxusverpackung" sourceRef="Gateway_Auspacken" targetRef="Ware_auspacken_luxus">
+      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{pakettyp=="Luxusverpackung"}</bpmn:conditionExpression>
+    </bpmn:sequenceFlow>
+    <bpmn:sequenceFlow id="Flow_Erstattung_Datenermittlung" sourceRef="Finanzdaten_ermitteln" targetRef="Erstattung" />
+    <bpmn:serviceTask id="Finanzdaten_ermitteln" name="Finanzdaten ermitteln" camunda:type="external" camunda:topic="financial">
+      <bpmn:extensionElements>
+        <camunda:inputOutput>
+          <camunda:inputParameter name="serviceIdentifier">getData</camunda:inputParameter>
+          <camunda:inputParameter name="kundennummer">${kundennummer}</camunda:inputParameter>
+          <camunda:outputParameter name="iban">${ibanRefund}</camunda:outputParameter>
+        </camunda:inputOutput>
+      </bpmn:extensionElements>
+      <bpmn:incoming>Flow_Erstattung</bpmn:incoming>
+      <bpmn:outgoing>Flow_Erstattung_Datenermittlung</bpmn:outgoing>
+    </bpmn:serviceTask>
+    <bpmn:manualTask id="Ware_auspacken_luxus" name="Luxuspaket auspacken">
+      <bpmn:incoming>Flow_luxus_auspacken</bpmn:incoming>
+      <bpmn:outgoing>Flow_04tyvq1</bpmn:outgoing>
+    </bpmn:manualTask>
+    <bpmn:manualTask id="Ware_auspacken_normal" name="Normales Paket auspacken">
+      <bpmn:incoming>Flow_normal_auspacken</bpmn:incoming>
+      <bpmn:outgoing>Flow_0d8lhxo</bpmn:outgoing>
+    </bpmn:manualTask>
+    <bpmn:sequenceFlow id="Flow_0iibopi" sourceRef="Kundendaten_ermitteln" targetRef="Gateway_Neusendung" />
+    <bpmn:serviceTask id="Kundendaten_ermitteln" name="Kundendaten ermitteln" camunda:type="external" camunda:topic="customer">
+      <bpmn:extensionElements>
+        <camunda:inputOutput>
+          <camunda:inputParameter name="kundennummer">${kundennummer}</camunda:inputParameter>
+          <camunda:outputParameter name="vorname">${firstname}</camunda:outputParameter>
+          <camunda:outputParameter name="nachname">${lastname}</camunda:outputParameter>
+        </camunda:inputOutput>
+      </bpmn:extensionElements>
+      <bpmn:incoming>Flow_1gu0k49</bpmn:incoming>
+      <bpmn:outgoing>Flow_0iibopi</bpmn:outgoing>
+    </bpmn:serviceTask>
+    <bpmn:sequenceFlow id="Flow_0a9rzst" sourceRef="Ware_einsortieren" targetRef="Gateway_Beschaedigt_Close" />
+  </bpmn:process>
+  <bpmndi:BPMNDiagram id="BPMNDiagram_1">
+    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Retoure">
+      <bpmndi:BPMNEdge id="Flow_0iibopi_di" bpmnElement="Flow_0iibopi">
+        <di:waypoint x="400" y="540" />
+        <di:waypoint x="445" y="540" />
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="Flow_01i7hk6_di" bpmnElement="Flow_Erstattung_Datenermittlung">
+        <di:waypoint x="690" y="540" />
+        <di:waypoint x="970" y="540" />
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="Flow_0qjrxz7_di" bpmnElement="Flow_luxus_auspacken">
+        <di:waypoint x="1150" y="675" />
+        <di:waypoint x="1150" y="650" />
+        <di:waypoint x="1060" y="650" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1096" y="623" width="87" height="14" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="Flow_1t3d53q_di" bpmnElement="Flow_normal_auspacken">
+        <di:waypoint x="1150" y="725" />
+        <di:waypoint x="1150" y="750" />
+        <di:waypoint x="1060" y="750" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1111" y="756" width="57" height="27" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="Flow_0d8lhxo_di" bpmnElement="Flow_0d8lhxo">
+        <di:waypoint x="960" y="750" />
+        <di:waypoint x="880" y="750" />
+        <di:waypoint x="880" y="725" />
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="Flow_04tyvq1_di" bpmnElement="Flow_04tyvq1">
+        <di:waypoint x="960" y="650" />
+        <di:waypoint x="880" y="650" />
+        <di:waypoint x="880" y="675" />
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="Flow_02p7iio_di" bpmnElement="Flow_Ende">
+        <di:waypoint x="1656" y="660" />
+        <di:waypoint x="1705" y="660" />
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="Flow_1c2tfla_di" bpmnElement="Flow_1c2tfla">
+        <di:waypoint x="1205" y="430" />
+        <di:waypoint x="1631" y="430" />
+        <di:waypoint x="1631" y="635" />
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="Flow_0m33odz_di" bpmnElement="Flow_0m33odz">
+        <di:waypoint x="1555" y="660" />
+        <di:waypoint x="1606" y="660" />
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="Flow_0pjcsuy_di" bpmnElement="Flow_Erstattung_abgeschlossen">
+        <di:waypoint x="1070" y="540" />
+        <di:waypoint x="1530" y="540" />
+        <di:waypoint x="1530" y="635" />
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="Flow_0u4n4gn_di" bpmnElement="Flow_0u4n4gn">
+        <di:waypoint x="1500" y="870" />
+        <di:waypoint x="1530" y="870" />
+        <di:waypoint x="1530" y="685" />
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="Flow_1bnro90_di" bpmnElement="Flow_1bnro90">
+        <di:waypoint x="855" y="700" />
+        <di:waypoint x="760" y="700" />
+        <di:waypoint x="760" y="845" />
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="Flow_006t3wo_di" bpmnElement="Flow_006t3wo">
+        <di:waypoint x="785" y="870" />
+        <di:waypoint x="870" y="870" />
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="Flow_03ubi3l_di" bpmnElement="Flow_03ubi3l">
+        <di:waypoint x="690" y="870" />
+        <di:waypoint x="735" y="870" />
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="Flow_1ff93it_di" bpmnElement="Flow_fehlerhaft_eingepackt">
+        <di:waypoint x="1270" y="845" />
+        <di:waypoint x="1270" y="700" />
+        <di:waypoint x="1180" y="700" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1202" y="761" width="55" height="27" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="Flow_17na1xt_di" bpmnElement="Flow_paket_okay">
+        <di:waypoint x="1295" y="870" />
+        <di:waypoint x="1400" y="870" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1320" y="852" width="55" height="14" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="Flow_1n6o3h6_di" bpmnElement="Flow_1n6o3h6">
+        <di:waypoint x="1160" y="870" />
+        <di:waypoint x="1245" y="870" />
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="Flow_0bhr7g8_di" bpmnElement="Flow_0bhr7g8">
+        <di:waypoint x="970" y="870" />
+        <di:waypoint x="1060" y="870" />
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="Flow_0u77zm0_di" bpmnElement="Flow_0u77zm0">
+        <di:waypoint x="520" y="870" />
+        <di:waypoint x="590" y="870" />
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="Flow_17xuhq0_di" bpmnElement="Flow_neusenden">
+        <di:waypoint x="470" y="565" />
+        <di:waypoint x="470" y="830" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="478" y="719" width="63" height="14" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="Flow_0hwn7f3_di" bpmnElement="Flow_Erstattung">
+        <di:waypoint x="495" y="540" />
+        <di:waypoint x="590" y="540" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="507" y="522" width="51" height="14" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="Flow_0a9rzst_di" bpmnElement="Flow_0a9rzst">
+        <di:waypoint x="820" y="160" />
+        <di:waypoint x="1180" y="160" />
+        <di:waypoint x="1180" y="405" />
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="Flow_14jbtgw_di" bpmnElement="Flow_14jbtgw">
+        <di:waypoint x="1085" y="430" />
+        <di:waypoint x="1155" y="430" />
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="Flow_0zkq7z5_di" bpmnElement="Flow_0zkq7z5">
+        <di:waypoint x="970" y="320" />
+        <di:waypoint x="1060" y="320" />
+        <di:waypoint x="1060" y="405" />
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="Flow_0f171gg_di" bpmnElement="Flow_0f171gg">
+        <di:waypoint x="970" y="430" />
+        <di:waypoint x="1035" y="430" />
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="Flow_0t6w55x_di" bpmnElement="Flow_spenden">
+        <di:waypoint x="780" y="345" />
+        <di:waypoint x="780" y="430" />
+        <di:waypoint x="870" y="430" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="798" y="403" width="43" height="14" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="Flow_0zzjxrn_di" bpmnElement="Flow_vernichten">
+        <di:waypoint x="805" y="320" />
+        <di:waypoint x="870" y="320" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="812" y="302" width="51" height="14" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="Flow_0kgxxke_di" bpmnElement="Flow_0kgxxke">
+        <di:waypoint x="690" y="320" />
+        <di:waypoint x="755" y="320" />
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="Flow_01lf19r_di" bpmnElement="Flow_01lf19r">
+        <di:waypoint x="530" y="320" />
+        <di:waypoint x="590" y="320" />
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="Flow_0rsh9gw_di" bpmnElement="Flow_beschaedigt">
+        <di:waypoint x="350" y="255" />
+        <di:waypoint x="350" y="320" />
+        <di:waypoint x="430" y="320" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="362" y="285" width="55" height="27" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="Flow_1ffiujj_di" bpmnElement="Flow_unbeschaedigt">
+        <di:waypoint x="350" y="205" />
+        <di:waypoint x="350" y="160" />
+        <di:waypoint x="720" y="160" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="505" y="166" width="55" height="27" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="Flow_1gu0k49_di" bpmnElement="Flow_1gu0k49">
+        <di:waypoint x="260" y="402" />
+        <di:waypoint x="260" y="540" />
+        <di:waypoint x="300" y="540" />
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="Flow_0eh02jo_di" bpmnElement="Flow_0eh02jo">
+        <di:waypoint x="260" y="352" />
+        <di:waypoint x="260" y="230" />
+        <di:waypoint x="325" y="230" />
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="Flow_0emcbml_di" bpmnElement="Flow_Start">
+        <di:waypoint x="188" y="377" />
+        <di:waypoint x="235" y="377" />
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="Retoure_Start">
+        <dc:Bounds x="152" y="359" width="36" height="36" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="Gateway_0pbw15b_di" bpmnElement="Gateway_Parallel_Lager_Neusendung">
+        <dc:Bounds x="235" y="352" width="50" height="50" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="Gateway_12gz2vz_di" bpmnElement="Gateway_Beschaedigt" isMarkerVisible="true">
+        <dc:Bounds x="325" y="205" width="50" height="50" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="Gateway_1baqz4f_di" bpmnElement="Gateway_Neusendung" isMarkerVisible="true">
+        <dc:Bounds x="445" y="515" width="50" height="50" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="Activity_1l943g0_di" bpmnElement="Warendaten_erfassen">
+        <dc:Bounds x="430" y="280" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="Activity_0axy9lw_di" bpmnElement="Vernichtung_ermitteln">
+        <dc:Bounds x="590" y="280" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="Gateway_0tcbgt9_di" bpmnElement="Gateway_Vernichtung" isMarkerVisible="true">
+        <dc:Bounds x="755" y="295" width="50" height="50" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="Gateway_1usozh0_di" bpmnElement="Gateway_Vernichtung_Close" isMarkerVisible="true">
+        <dc:Bounds x="1035" y="405" width="50" height="50" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="Gateway_0nb41va_di" bpmnElement="Gateway_Beschaedigt_Close" isMarkerVisible="true">
+        <dc:Bounds x="1155" y="405" width="50" height="50" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="Activity_1obx3f0_di" bpmnElement="Ware_vernichten">
+        <dc:Bounds x="870" y="280" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="Activity_0swadmc_di" bpmnElement="Ware_spenden">
+        <dc:Bounds x="870" y="390" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="Activity_0jhtgen_di" bpmnElement="Erstattung">
+        <dc:Bounds x="970" y="500" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="Activity_0dpq7jh_di" bpmnElement="Manuelle_Pruefung">
+        <dc:Bounds x="420" y="830" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="Activity_0fnre3x_di" bpmnElement="Warennummer_ermitteln">
+        <dc:Bounds x="590" y="830" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="Activity_01orosg_di" bpmnElement="Paket_packen">
+        <dc:Bounds x="870" y="830" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="Activity_0sg307t_di" bpmnElement="Paket_pruefen">
+        <dc:Bounds x="1060" y="830" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="Gateway_0wlcnif_di" bpmnElement="Gateway_Einpackung_Fehlerhaft" isMarkerVisible="true">
+        <dc:Bounds x="1245" y="845" width="50" height="50" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="Gateway_0pa451i_di" bpmnElement="Gateway_Einpackung_Fehlerhaft_Closed" isMarkerVisible="true">
+        <dc:Bounds x="735" y="845" width="50" height="50" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="Gateway_0hqss9s_di" bpmnElement="Gateway_Neusendung_Closed" isMarkerVisible="true">
+        <dc:Bounds x="1505" y="635" width="50" height="50" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="Gateway_05633xf_di" bpmnElement="Gateway_Parallel_Lager_Neusendung_Closed">
+        <dc:Bounds x="1606" y="635" width="50" height="50" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="Event_1ihgrip_di" bpmnElement="Retoure_Ende">
+        <dc:Bounds x="1705" y="642" width="36" height="36" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="Activity_1ma1os5_di" bpmnElement="Paket_senden">
+        <dc:Bounds x="1400" y="830" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="Activity_1p3me1t_di" bpmnElement="Ware_einsortieren">
+        <dc:Bounds x="720" y="120" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="Gateway_0bffnik_di" bpmnElement="Gateway_Auspacken" isMarkerVisible="true">
+        <dc:Bounds x="1125" y="675" width="50" height="50" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="Gateway_14evkap_di" bpmnElement="Gateway_14evkap" isMarkerVisible="true">
+        <dc:Bounds x="855" y="675" width="50" height="50" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="Activity_1t8f6i7_di" bpmnElement="Finanzdaten_ermitteln">
+        <dc:Bounds x="590" y="500" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="Activity_1gpa5a1_di" bpmnElement="Ware_auspacken_luxus">
+        <dc:Bounds x="960" y="610" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="Activity_1xfsrap_di" bpmnElement="Ware_auspacken_normal">
+        <dc:Bounds x="960" y="710" width="100" height="80" />
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape id="Activity_1l3qzwt_di" bpmnElement="Kundendaten_ermitteln">
+        <dc:Bounds x="300" y="500" width="100" height="80" />
+      </bpmndi:BPMNShape>
+    </bpmndi:BPMNPlane>
+  </bpmndi:BPMNDiagram>
+</bpmn:definitions>
diff --git a/OnlineSchuhDemo/src/test/java/de/sample/onlineschuhdemo/Testcollection-old.bpmn-testgen b/OnlineSchuhDemo/src/test/java/de/sample/onlineschuhdemo/Testcollection-old.bpmn-testgen
new file mode 100644
index 0000000..cf3d825
--- /dev/null
+++ b/OnlineSchuhDemo/src/test/java/de/sample/onlineschuhdemo/Testcollection-old.bpmn-testgen
@@ -0,0 +1,168 @@
+BPMNDiagram process
+with testpackage "de.sample.onlineschuhdemo" with bpmn "retoure.bpmn" with key "Retoure" with dmn : [ "\\schuh_vernichtung_spende.dmn" ] with embedded : [ "\\forms\\warendaten-erfassen-form.html" ] ;
+
+Loop Loop0
+starts with "Gateway_Einpackung_Fehlerhaft"
+follows by "Gateway_Auspacken"
+ends with "Gateway_Einpackung_Fehlerhaft_Closed"
+has complexity 2 passed : [ 0 , 1 ] ;
+
+FlowElement Retoure_Start : StartEvent with inputVariables : [ kundennummer , erstattung , beschaedigt ] ;
+FlowElement Flow_Start : SequenceFlow ;
+FlowElement Gateway_Parallel_Lager_Neusendung : Gateway ;
+FlowElement Flow_0eh02jo : SequenceFlow ;
+FlowElement Gateway_Beschaedigt : Gateway ;
+FlowElement Flow_unbeschaedigt : SequenceFlow ;
+FlowElement Ware_einsortieren : ManualTask ;
+FlowElement Flow_0a9rzst : SequenceFlow ;
+FlowElement Gateway_Beschaedigt_Close : Gateway ;
+FlowElement Flow_1c2tfla : SequenceFlow ;
+FlowElement Flow_1gu0k49 : SequenceFlow ;
+FlowElement Kundendaten_ermitteln : ServiceTask with external : customer ;
+FlowElement Flow_0iibopi : SequenceFlow ;
+FlowElement Gateway_Neusendung : Gateway ;
+FlowElement Flow_Erstattung : SequenceFlow with expression : "#{erstattung}" ;
+FlowElement Finanzdaten_ermitteln : ServiceTask with external : financial with hardcoded inputs : [ serviceIdentifier = "getData" ] ;
+FlowElement Flow_Erstattung_Datenermittlung : SequenceFlow ;
+FlowElement Erstattung : ServiceTask with external : financial with hardcoded inputs : [ serviceIdentifier = "refund" ] ;
+FlowElement Flow_Erstattung_abgeschlossen : SequenceFlow ;
+FlowElement Gateway_Neusendung_Closed : Gateway ;
+FlowElement Flow_0m33odz : SequenceFlow ;
+FlowElement Gateway_Parallel_Lager_Neusendung_Closed : Gateway ;
+FlowElement Flow_Ende : SequenceFlow ;
+FlowElement Retoure_Ende : EndEvent ;
+FlowElement Flow_neusenden : SequenceFlow ;
+FlowElement Manuelle_Pruefung : UserTask ;
+FlowElement Flow_0u77zm0 : SequenceFlow ;
+FlowElement Warennummer_ermitteln : ServiceTask with delegate : "warennummer" ;
+FlowElement Flow_03ubi3l : SequenceFlow ;
+FlowElement Gateway_Einpackung_Fehlerhaft_Closed : Gateway ;
+FlowElement Flow_006t3wo : SequenceFlow ;
+FlowElement Paket_packen : UserTask with inputVariables : [ pakettyp ] ;
+FlowElement Flow_0bhr7g8 : SequenceFlow ;
+FlowElement Paket_pruefen : UserTask with inputVariables : [ paket ] ;
+FlowElement Flow_1n6o3h6 : SequenceFlow ;
+FlowElement Gateway_Einpackung_Fehlerhaft : Gateway ;
+FlowElement Flow_paket_okay : SequenceFlow ;
+FlowElement Paket_senden : UserTask ;
+FlowElement Flow_0u4n4gn : SequenceFlow ;
+FlowElement Flow_fehlerhaft_eingepackt : SequenceFlow with expression : "#{paket==false}" ;
+FlowElement Gateway_Auspacken : Gateway ;
+FlowElement Flow_normal_auspacken : SequenceFlow with expression : "#{pakettyp==\"Normalverpackung\"}" ;
+FlowElement Ware_auspacken_normal : ManualTask ;
+FlowElement Flow_0d8lhxo : SequenceFlow ;
+FlowElement Gateway_14evkap : Gateway ;
+FlowElement Flow_1bnro90 : SequenceFlow ;
+FlowElement Flow_luxus_auspacken : SequenceFlow with expression : "#{pakettyp==\"Luxusverpackung\"}" ;
+FlowElement Ware_auspacken_luxus : ManualTask ;
+FlowElement Flow_04tyvq1 : SequenceFlow ;
+FlowElement Flow_beschaedigt : SequenceFlow with expression : "#{beschaedigt == true}" ;
+FlowElement Warendaten_erfassen : UserTask with inputVariables : [ marke , preis ] ;
+FlowElement Flow_01lf19r : SequenceFlow ;
+FlowElement Vernichtung_ermitteln : BusinessRuleTask ;
+FlowElement Flow_0kgxxke : SequenceFlow ;
+FlowElement Gateway_Vernichtung : Gateway ;
+FlowElement Flow_vernichten : SequenceFlow with expression : "#{vernichten == true}" ;
+FlowElement Ware_vernichten : UserTask ;
+FlowElement Flow_0zkq7z5 : SequenceFlow ;
+FlowElement Gateway_Vernichtung_Close : Gateway ;
+FlowElement Flow_14jbtgw : SequenceFlow ;
+FlowElement Flow_spenden : SequenceFlow with expression : "#{vernichten == false}" ;
+FlowElement Ware_spenden : UserTask ;
+FlowElement Flow_0f171gg : SequenceFlow ;
+
+String kundennummer with proposals : [ ] ;
+String marke with proposals : [ "Luxury Foot" , "Simply Shoe" , "Shoe One" ] ;
+String iban with proposals : [ ] ;
+String vorname with proposals : [ ] ;
+String nachname with proposals : [ ] ;
+String pakettyp with proposals : [ "Normalverpackung" , "Luxusverpackung" ] ;
+String emailGesendet with proposals : [ ] ;
+String firstname with proposals : [ ] ;
+String lastname with proposals : [ ] ;
+String ibanRefund with proposals : [ ] ;
+String confirmationEmailSent with proposals : [ ] ;
+String serviceIdentifier with proposals : [ "getData" , "refund" ] ;
+Integer preis with proposals : [ 350 , 349 , 70 , 71 ] ;
+Boolean erstattung with proposals : [ true , false ] ;
+Boolean paket with proposals : [ true , false ] ;
+Boolean beschaedigt with proposals : [ true , false ] ;
+
+ExternalTopic customer ;
+ExternalTopic financial ;
+
+Flow Flow_0 for process
+with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
+without elements : [ Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Flow_spenden , Ware_spenden , Flow_0f171gg ] ;
+Flow Flow_1 for process
+with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
+without elements : [ Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Flow_spenden , Ware_spenden , Flow_0f171gg ] ;
+Flow Flow_2 for process
+with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
+without elements : [ Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Flow_spenden , Ware_spenden , Flow_0f171gg ] ;
+Flow Flow_3 for process
+with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Gateway_14evkap , Flow_1bnro90 , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
+without elements : [ Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Flow_spenden , Ware_spenden , Flow_0f171gg ] ;
+Flow Flow_4 for process
+with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
+without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_spenden , Ware_spenden , Flow_0f171gg ] ;
+Flow Flow_5 for process
+with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
+without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_spenden , Ware_spenden , Flow_0f171gg ] ;
+Flow Flow_6 for process
+with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
+without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_spenden , Ware_spenden , Flow_0f171gg ] ;
+Flow Flow_7 for process
+with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Gateway_14evkap , Flow_1bnro90 , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
+without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Flow_spenden , Ware_spenden , Flow_0f171gg ] ;
+Flow Flow_8 for process
+with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_spenden , Ware_spenden , Flow_0f171gg , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
+without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 ] ;
+Flow Flow_9 for process
+with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_spenden , Ware_spenden , Flow_0f171gg , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
+without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 ] ;
+Flow Flow_10 for process
+with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_spenden , Ware_spenden , Flow_0f171gg , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
+without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 ] ;
+Flow Flow_11 for process
+with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_spenden , Ware_spenden , Flow_0f171gg , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Gateway_14evkap , Flow_1bnro90 , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
+without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 ] ;
+
+DelegateMock Warennummer_ermitteln for Warennummer_ermitteln with delegate "de.sample.onlineschuhdemo.externalaccess.WarennummerErmittelnDelegate" with manual "de.sample.onlineschuhdemo.externalaccess.LagerService" by setter "setLagerService" ;
+
+ExternalServiceMock customerProvider for topic customer
+with rule : if [ kundennummer == "C-123A456" ] set [ firstname = "Max" , lastname = "Mustermann" ] ,
+with rule : if [ kundennummer == "C-987A654" ] set [ firstname = "Erika" , lastname = "Mustermann" ] ;
+
+ExternalServiceMock financialMock for topic financial
+with rule : if [ serviceIdentifier == "getData" , kundennummer == "C-123A456" ] set [ ibanRefund = "DE12345678900000123456" ] ,
+with rule : if [ serviceIdentifier == "getData" , kundennummer == "C-987A654" ] set [ ibanRefund = "DE12345678900000987654" ] ,
+with rule : if [ serviceIdentifier == "refund" , iban == "DE12345678900000123456" ] set [ confirmationEmailSent = "Nein" ] ,
+with rule : if [ serviceIdentifier == "refund" ] set [ confirmationEmailSent = "Ja" ] ;
+
+Test normalverpackungAuspacken for Flow_2
+with variables for Retoure_Start : [ kundennummer = "C-123A456" , erstattung = false , beschaedigt = false ] ,
+with variables for Paket_packen : [ pakettyp = "Normalverpackung" ] ,
+with variables for Paket_pruefen : [ paket = false ] ,
+with variables for Paket_packen : [ pakettyp = "Luxusverpackung" ] ,
+with variables for Paket_pruefen : [ paket = true ]
+with check : [ kundennummer == "C-123A456" , vorname == "Max" , nachname == "Mustermann" , erstattung == false , beschaedigt == false ]
+with mocks : [ Warennummer_ermitteln , customerProvider ] ;
+
+Test vernichtenErstattung for Flow_4
+with variables for Retoure_Start : [ kundennummer = "C-123A456" , erstattung = true , beschaedigt = true ] ,
+with variables for Warendaten_erfassen : [ marke = "Luxury Foot" , preis = 350 ]
+with check : [ kundennummer == "C-123A456" , marke == "Luxury Foot" , iban == "DE12345678900000123456" , vorname == "Max" , nachname == "Mustermann" , emailGesendet == "Nein" , erstattung == true , beschaedigt == true ]
+with mocks : [ financialMock , customerProvider ] ;
+
+Test casetill1 for Flow_0
+with variables for Retoure_Start : [ kundennummer = "123" , erstattung = true , beschaedigt = true ]
+with check : [ kundennummer == "123" , marke == "wer" , iban == "DE80123084556" , vorname == "till" , nachname == "Brinkhus" , pakettyp == "Normalverpackung" , emailGesendet == "Ja" , firstname == "Till" , lastname == "Brinkhus" , ibanRefund == "DE80123084556" , confirmationEmailSent == "Ja" , serviceIdentifier == "getData" , preis == 1234 , erstattung == true , paket == true , beschaedigt == false ]
+with mocks : [ financialMock , customerProvider ] ;
+
+Test casetill2 for Flow_0
+with variables for Retoure_Start : [ kundennummer = "12345" , erstattung = true , beschaedigt = true ]
+with mocks : [ financialMock , customerProvider ] ;
+
+Test TestHenninh for Flow_1
+with mocks : [ Warennummer_ermitteln , customerProvider ] ;
diff --git a/OnlineSchuhDemo/src/test/java/de/sample/onlineschuhdemo/Testcollection.bpmn-testgen b/OnlineSchuhDemo/src/test/java/de/sample/onlineschuhdemo/Testcollection.bpmn-testgen
index 4cc8a59..8b1f8b5 100644
--- a/OnlineSchuhDemo/src/test/java/de/sample/onlineschuhdemo/Testcollection.bpmn-testgen
+++ b/OnlineSchuhDemo/src/test/java/de/sample/onlineschuhdemo/Testcollection.bpmn-testgen
@@ -1,165 +1,168 @@
-BPMNDiagram process
-with testpackage "de.sample.onlineschuhdemo" with bpmn "retoure.bpmn" with key "Retoure" with dmn : [ "\\schuh_vernichtung_spende.dmn" ] with embedded : [ "\\forms\\warendaten-erfassen-form.html" ] ;
-
-Loop Loop0
-starts with "Gateway_Einpackung_Fehlerhaft"
-follows by "Gateway_Auspacken"
-ends with "Gateway_Einpackung_Fehlerhaft_Closed"
-has complexity 2 passed : [ 0 , 1 ] ;
-
-FlowElement Retoure_Start : StartEvent with inputVariables : [ kundennummer , erstattung , beschaedigt ] ;
-FlowElement Flow_Start : SequenceFlow ;
-FlowElement Gateway_Parallel_Lager_Neusendung : Gateway ;
-FlowElement Flow_0eh02jo : SequenceFlow ;
-FlowElement Gateway_Beschaedigt : Gateway ;
-FlowElement Flow_unbeschaedigt : SequenceFlow ;
-FlowElement Ware_einsortieren : ManualTask ;
-FlowElement Flow_0a9rzst : SequenceFlow ;
-FlowElement Gateway_Beschaedigt_Close : Gateway ;
-FlowElement Flow_1c2tfla : SequenceFlow ;
-FlowElement Flow_1gu0k49 : SequenceFlow ;
-FlowElement Kundendaten_ermitteln : ServiceTask with external : customer ;
-FlowElement Flow_0iibopi : SequenceFlow ;
-FlowElement Gateway_Neusendung : Gateway ;
-FlowElement Flow_Erstattung : SequenceFlow with expression : "#{erstattung}" ;
-FlowElement Finanzdaten_ermitteln : ServiceTask with external : financial with hardcoded inputs : [ serviceIdentifier = "getData" ] ;
-FlowElement Flow_Erstattung_Datenermittlung : SequenceFlow ;
-FlowElement Erstattung : ServiceTask with external : financial with hardcoded inputs : [ serviceIdentifier = "refund" ] ;
-FlowElement Flow_Erstattung_abgeschlossen : SequenceFlow ;
-FlowElement Gateway_Neusendung_Closed : Gateway ;
-FlowElement Flow_0m33odz : SequenceFlow ;
-FlowElement Gateway_Parallel_Lager_Neusendung_Closed : Gateway ;
-FlowElement Flow_Ende : SequenceFlow ;
-FlowElement Retoure_Ende : EndEvent ;
-FlowElement Flow_neusenden : SequenceFlow ;
-FlowElement Manuelle_Pruefung : UserTask ;
-FlowElement Flow_0u77zm0 : SequenceFlow ;
-FlowElement Warennummer_ermitteln : ServiceTask with delegate : "warennummer" ;
-FlowElement Flow_03ubi3l : SequenceFlow ;
-FlowElement Gateway_Einpackung_Fehlerhaft_Closed : Gateway ;
-FlowElement Flow_006t3wo : SequenceFlow ;
-FlowElement Paket_packen : UserTask with inputVariables : [ pakettyp ] ;
-FlowElement Flow_0bhr7g8 : SequenceFlow ;
-FlowElement Paket_pruefen : UserTask with inputVariables : [ paket ] ;
-FlowElement Flow_1n6o3h6 : SequenceFlow ;
-FlowElement Gateway_Einpackung_Fehlerhaft : Gateway ;
-FlowElement Flow_paket_okay : SequenceFlow ;
-FlowElement Paket_senden : UserTask ;
-FlowElement Flow_0u4n4gn : SequenceFlow ;
-FlowElement Flow_fehlerhaft_eingepackt : SequenceFlow with expression : "#{paket==false}" ;
-FlowElement Gateway_Auspacken : Gateway ;
-FlowElement Flow_normal_auspacken : SequenceFlow with expression : "#{pakettyp==\"Normalverpackung\"}" ;
-FlowElement Ware_auspacken_normal : ManualTask ;
-FlowElement Flow_0d8lhxo : SequenceFlow ;
-FlowElement Gateway_14evkap : Gateway ;
-FlowElement Flow_1bnro90 : SequenceFlow ;
-FlowElement Flow_luxus_auspacken : SequenceFlow with expression : "#{pakettyp==\"Luxusverpackung\"}" ;
-FlowElement Ware_auspacken_luxus : ManualTask ;
-FlowElement Flow_04tyvq1 : SequenceFlow ;
-FlowElement Flow_beschaedigt : SequenceFlow with expression : "#{beschaedigt == true}" ;
-FlowElement Warendaten_erfassen : UserTask with inputVariables : [ marke , preis ] ;
-FlowElement Flow_01lf19r : SequenceFlow ;
-FlowElement Vernichtung_ermitteln : BusinessRuleTask ;
-FlowElement Flow_0kgxxke : SequenceFlow ;
-FlowElement Gateway_Vernichtung : Gateway ;
-FlowElement Flow_vernichten : SequenceFlow with expression : "#{vernichten == true}" ;
-FlowElement Ware_vernichten : UserTask ;
-FlowElement Flow_0zkq7z5 : SequenceFlow ;
-FlowElement Gateway_Vernichtung_Close : Gateway ;
-FlowElement Flow_14jbtgw : SequenceFlow ;
-FlowElement Flow_spenden : SequenceFlow with expression : "#{vernichten == false}" ;
-FlowElement Ware_spenden : UserTask ;
-FlowElement Flow_0f171gg : SequenceFlow ;
-
-String kundennummer with proposals : [ ] ;
-String marke with proposals : [ "Luxury Foot" , "Simply Shoe" , "Shoe One" ] ;
-String iban with proposals : [ ] ;
-String vorname with proposals : [ ] ;
-String nachname with proposals : [ ] ;
-String pakettyp with proposals : [ "Normalverpackung" , "Luxusverpackung" ] ;
-String emailGesendet with proposals : [ ] ;
-String firstname with proposals : [ ] ;
-String lastname with proposals : [ ] ;
-String ibanRefund with proposals : [ ] ;
-String confirmationEmailSent with proposals : [ ] ;
-String serviceIdentifier with proposals : [ "getData" , "refund" ] ;
-Integer preis with proposals : [ 350 , 349 , 70 , 71 ] ;
-Boolean erstattung with proposals : [ true , false ] ;
-Boolean paket with proposals : [ true , false ] ;
-Boolean beschaedigt with proposals : [ true , false ] ;
-
-ExternalTopic customer ;
-ExternalTopic financial ;
-
-Flow Flow_0 for process
-with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
-without elements : [ Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Flow_spenden , Ware_spenden , Flow_0f171gg ] ;
-Flow Flow_1 for process
-with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
-without elements : [ Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Flow_spenden , Ware_spenden , Flow_0f171gg ] ;
-Flow Flow_2 for process
-with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
-without elements : [ Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Flow_spenden , Ware_spenden , Flow_0f171gg ] ;
-Flow Flow_3 for process
-with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Gateway_14evkap , Flow_1bnro90 , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
-without elements : [ Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Flow_spenden , Ware_spenden , Flow_0f171gg ] ;
-Flow Flow_4 for process
-with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
-without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_spenden , Ware_spenden , Flow_0f171gg ] ;
-Flow Flow_5 for process
-with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
-without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_spenden , Ware_spenden , Flow_0f171gg ] ;
-Flow Flow_6 for process
-with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
-without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_spenden , Ware_spenden , Flow_0f171gg ] ;
-Flow Flow_7 for process
-with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Gateway_14evkap , Flow_1bnro90 , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
-without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Flow_spenden , Ware_spenden , Flow_0f171gg ] ;
-Flow Flow_8 for process
-with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_spenden , Ware_spenden , Flow_0f171gg , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
-without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 ] ;
-Flow Flow_9 for process
-with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_spenden , Ware_spenden , Flow_0f171gg , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
-without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 ] ;
-Flow Flow_10 for process
-with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_spenden , Ware_spenden , Flow_0f171gg , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
-without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 ] ;
-Flow Flow_11 for process
-with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_spenden , Ware_spenden , Flow_0f171gg , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Gateway_14evkap , Flow_1bnro90 , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
-without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 ] ;
-
-DelegateMock Warennummer_ermitteln for Warennummer_ermitteln with delegate "de.sample.onlineschuhdemo.externalaccess.WarennummerErmittelnDelegate" with manual "de.sample.onlineschuhdemo.externalaccess.LagerService" by setter "setLagerService" ;
-
-ExternalServiceMock customerProvider for topic customer
-with rule : if [ kundennummer == "C-123A456" ] set [ firstname = "Max" , lastname = "Mustermann" ] ,
-with rule : if [ kundennummer == "C-987A654" ] set [ firstname = "Erika" , lastname = "Mustermann" ] ;
-
-ExternalServiceMock financialMock for topic financial
-with rule : if [ serviceIdentifier == "getData" , kundennummer == "C-123A456" ] set [ ibanRefund = "DE12345678900000123456" ] ,
-with rule : if [ serviceIdentifier == "getData" , kundennummer == "C-987A654" ] set [ ibanRefund = "DE12345678900000987654" ] ,
-with rule : if [ serviceIdentifier == "refund" , iban == "DE12345678900000123456" ] set [ confirmationEmailSent = "Nein" ] ,
-with rule : if [ serviceIdentifier == "refund" ] set [ confirmationEmailSent = "Ja" ] ;
-
-Test normalverpackungAuspacken for Flow_2
-with variables for Retoure_Start : [ kundennummer = "C-123A456" , erstattung = false , beschaedigt = false ] ,
-with variables for Paket_packen : [ pakettyp = "Normalverpackung" ] ,
-with variables for Paket_pruefen : [ paket = false ] ,
-with variables for Paket_packen : [ pakettyp = "Luxusverpackung" ] ,
-with variables for Paket_pruefen : [ paket = true ]
-with check : [ kundennummer == "C-123A456" , vorname == "Max" , nachname == "Mustermann" , erstattung == false , beschaedigt == false ]
-with mocks : [ Warennummer_ermitteln , customerProvider ] ;
-
-Test vernichtenErstattung for Flow_4
-with variables for Retoure_Start : [ kundennummer = "C-123A456" , erstattung = true , beschaedigt = true ] ,
-with variables for Warendaten_erfassen : [ marke = "Luxury Foot" , preis = 350 ]
-with check : [ kundennummer == "C-123A456" , marke == "Luxury Foot" , iban == "DE12345678900000123456" , vorname == "Max" , nachname == "Mustermann" , emailGesendet == "Nein" , erstattung == true , beschaedigt == true ]
-with mocks : [ financialMock , customerProvider ] ;
-
-Test casetill1 for Flow_0
-with variables for Retoure_Start : [ kundennummer = "123" , erstattung = true , beschaedigt = true ]
-with check : [ kundennummer == "123" , marke == "wer" , iban == "DE80123084556" , vorname == "till" , nachname == "Brinkhus" , pakettyp == "Normalverpackung" , emailGesendet == "Ja" , firstname == "Till" , lastname == "Brinkhus" , ibanRefund == "DE80123084556" , confirmationEmailSent == "Ja" , serviceIdentifier == "getData" , preis == 1234 , erstattung == true , paket == true , beschaedigt == false ]
-with mocks : [ financialMock , customerProvider ] ;
-
-Test casetill2 for Flow_0
-with variables for Retoure_Start : [ kundennummer = "12345" , erstattung = true , beschaedigt = true ]
-with mocks : [ financialMock , customerProvider ] ;
+BPMNDiagram process
+with testpackage "de.sample.onlineschuhdemo" with bpmn "retoure.bpmn" with key "Retoure" with dmn : [ "\\schuh_vernichtung_spende.dmn" ] with embedded : [ "\\forms\\warendaten-erfassen-form.html" ] ;
+
+Loop Loop0
+starts with "Gateway_Einpackung_Fehlerhaft"
+follows by "Gateway_Auspacken"
+ends with "Gateway_Einpackung_Fehlerhaft_Closed"
+has complexity 2 passed : [ 0 , 1 ] ;
+
+FlowElement Retoure_Start : StartEvent with inputVariables : [ kundennummer , erstattung , beschaedigt ] ;
+FlowElement Flow_Start : SequenceFlow ;
+FlowElement Gateway_Parallel_Lager_Neusendung : Gateway ;
+FlowElement Flow_0eh02jo : SequenceFlow ;
+FlowElement Gateway_Beschaedigt : Gateway ;
+FlowElement Flow_unbeschaedigt : SequenceFlow ;
+FlowElement Ware_einsortieren : ManualTask ;
+FlowElement Flow_0a9rzst : SequenceFlow ;
+FlowElement Gateway_Beschaedigt_Close : Gateway ;
+FlowElement Flow_1c2tfla : SequenceFlow ;
+FlowElement Flow_1gu0k49 : SequenceFlow ;
+FlowElement Kundendaten_ermitteln : ServiceTask with external : customer ;
+FlowElement Flow_0iibopi : SequenceFlow ;
+FlowElement Gateway_Neusendung : Gateway ;
+FlowElement Flow_Erstattung : SequenceFlow with expression : "#{erstattung}" ;
+FlowElement Finanzdaten_ermitteln : ServiceTask with external : financial with hardcoded inputs : [ serviceIdentifier = "getData" ] ;
+FlowElement Flow_Erstattung_Datenermittlung : SequenceFlow ;
+FlowElement Erstattung : ServiceTask with external : financial with hardcoded inputs : [ serviceIdentifier = "refund" ] ;
+FlowElement Flow_Erstattung_abgeschlossen : SequenceFlow ;
+FlowElement Gateway_Neusendung_Closed : Gateway ;
+FlowElement Flow_0m33odz : SequenceFlow ;
+FlowElement Gateway_Parallel_Lager_Neusendung_Closed : Gateway ;
+FlowElement Flow_Ende : SequenceFlow ;
+FlowElement Retoure_Ende : EndEvent ;
+FlowElement Flow_neusenden : SequenceFlow ;
+FlowElement Manuelle_Pruefung : UserTask ;
+FlowElement Flow_0u77zm0 : SequenceFlow ;
+FlowElement Warennummer_ermitteln : ServiceTask with delegate : "warennummer" ;
+FlowElement Flow_03ubi3l : SequenceFlow ;
+FlowElement Gateway_Einpackung_Fehlerhaft_Closed : Gateway ;
+FlowElement Flow_006t3wo : SequenceFlow ;
+FlowElement Paket_packen : UserTask with inputVariables : [ pakettyp ] ;
+FlowElement Flow_0bhr7g8 : SequenceFlow ;
+FlowElement Paket_pruefen : UserTask with inputVariables : [ paket ] ;
+FlowElement Flow_1n6o3h6 : SequenceFlow ;
+FlowElement Gateway_Einpackung_Fehlerhaft : Gateway ;
+FlowElement Flow_paket_okay : SequenceFlow ;
+FlowElement Paket_senden : UserTask ;
+FlowElement Flow_0u4n4gn : SequenceFlow ;
+FlowElement Flow_fehlerhaft_eingepackt : SequenceFlow with expression : "#{paket==false}" ;
+FlowElement Gateway_Auspacken : Gateway ;
+FlowElement Flow_normal_auspacken : SequenceFlow with expression : "#{pakettyp==\"Normalverpackung\"}" ;
+FlowElement Ware_auspacken_normal : ManualTask ;
+FlowElement Flow_0d8lhxo : SequenceFlow ;
+FlowElement Gateway_14evkap : Gateway ;
+FlowElement Flow_1bnro90 : SequenceFlow ;
+FlowElement Flow_luxus_auspacken : SequenceFlow with expression : "#{pakettyp==\"Luxusverpackung\"}" ;
+FlowElement Ware_auspacken_luxus : ManualTask ;
+FlowElement Flow_04tyvq1 : SequenceFlow ;
+FlowElement Flow_beschaedigt : SequenceFlow with expression : "#{beschaedigt == true}" ;
+FlowElement Warendaten_erfassen : UserTask with inputVariables : [ marke , preis ] ;
+FlowElement Flow_01lf19r : SequenceFlow ;
+FlowElement Vernichtung_ermitteln : BusinessRuleTask ;
+FlowElement Flow_0kgxxke : SequenceFlow ;
+FlowElement Gateway_Vernichtung : Gateway ;
+FlowElement Flow_vernichten : SequenceFlow with expression : "#{vernichten == true}" ;
+FlowElement Ware_vernichten : UserTask ;
+FlowElement Flow_0zkq7z5 : SequenceFlow ;
+FlowElement Gateway_Vernichtung_Close : Gateway ;
+FlowElement Flow_14jbtgw : SequenceFlow ;
+FlowElement Flow_spenden : SequenceFlow with expression : "#{vernichten == false}" ;
+FlowElement Ware_spenden : UserTask ;
+FlowElement Flow_0f171gg : SequenceFlow ;
+
+String kundennummer with proposals : [ ] ;
+String marke with proposals : [ "Luxury Foot" , "Simply Shoe" , "Shoe One" ] ;
+String iban with proposals : [ ] ;
+String vorname with proposals : [ ] ;
+String nachname with proposals : [ ] ;
+String pakettyp with proposals : [ "Normalverpackung" , "Luxusverpackung" ] ;
+String emailGesendet with proposals : [ ] ;
+String firstname with proposals : [ ] ;
+String lastname with proposals : [ ] ;
+String ibanRefund with proposals : [ ] ;
+String confirmationEmailSent with proposals : [ ] ;
+String serviceIdentifier with proposals : [ "getData" , "refund" ] ;
+Integer preis with proposals : [ 350 , 349 , 70 , 71 ] ;
+Boolean erstattung with proposals : [ true , false ] ;
+Boolean paket with proposals : [ true , false ] ;
+Boolean beschaedigt with proposals : [ true , false ] ;
+
+ExternalTopic customer ;
+ExternalTopic financial ;
+
+Flow Flow_0 for process
+with elements : [ Flow_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
+without elements : [ Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Flow_spenden , Ware_spenden , Flow_0f171gg ] ;
+Flow Flow_1 for process
+with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
+without elements : [ Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Flow_spenden , Ware_spenden , Flow_0f171gg ] ;
+Flow Flow_2 for process
+with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
+without elements : [ Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Flow_spenden , Ware_spenden , Flow_0f171gg ] ;
+Flow Flow_3 for process
+with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Gateway_14evkap , Flow_1bnro90 , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
+without elements : [ Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Flow_spenden , Ware_spenden , Flow_0f171gg ] ;
+Flow Flow_4 for process
+with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
+without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_spenden , Ware_spenden , Flow_0f171gg ] ;
+Flow Flow_5 for process
+with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
+without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_spenden , Ware_spenden , Flow_0f171gg ] ;
+Flow Flow_6 for process
+with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
+without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_spenden , Ware_spenden , Flow_0f171gg ] ;
+Flow Flow_7 for process
+with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Gateway_14evkap , Flow_1bnro90 , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
+without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Flow_spenden , Ware_spenden , Flow_0f171gg ] ;
+Flow Flow_8 for process
+with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_spenden , Ware_spenden , Flow_0f171gg , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
+without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 ] ;
+Flow Flow_9 for process
+with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_spenden , Ware_spenden , Flow_0f171gg , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
+without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 ] ;
+Flow Flow_10 for process
+with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_spenden , Ware_spenden , Flow_0f171gg , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
+without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 ] ;
+Flow Flow_11 for process
+with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_spenden , Ware_spenden , Flow_0f171gg , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Gateway_14evkap , Flow_1bnro90 , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ]
+without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 ] ;
+
+DelegateMock Warennummer_ermitteln for Warennummer_ermitteln with delegate "de.sample.onlineschuhdemo.externalaccess.WarennummerErmittelnDelegate" with manual "de.sample.onlineschuhdemo.externalaccess.LagerService" by setter "setLagerService" ;
+
+ExternalServiceMock customerProvider for topic customer
+with rule : if [ kundennummer == "C-123A456" ] set [ firstname = "Max" , lastname = "Mustermann" ] ,
+with rule : if [ kundennummer == "C-987A654" ] set [ firstname = "Erika" , lastname = "Mustermann" ] ;
+
+ExternalServiceMock financialMock for topic financial
+with rule : if [ serviceIdentifier == "getData" , kundennummer == "C-123A456" ] set [ ibanRefund = "DE12345678900000123456" ] ,
+with rule : if [ serviceIdentifier == "getData" , kundennummer == "C-987A654" ] set [ ibanRefund = "DE12345678900000987654" ] ,
+with rule : if [ serviceIdentifier == "refund" , iban == "DE12345678900000123456" ] set [ confirmationEmailSent = "Nein" ] ,
+with rule : if [ serviceIdentifier == "refund" ] set [ confirmationEmailSent = "Ja" ] ;
+
+Test normalverpackungAuspacken for Flow_2
+with variables for Retoure_Start : [ kundennummer = "C-123A456" , erstattung = false , beschaedigt = false ] ,
+with variables for Paket_packen : [ pakettyp = "Normalverpackung" ] ,
+with variables for Paket_pruefen : [ paket = false ] ,
+with variables for Paket_packen : [ pakettyp = "Luxusverpackung" ] ,
+with variables for Paket_pruefen : [ paket = true ]
+with check : [ kundennummer == "C-123A456" , vorname == "Max" , nachname == "Mustermann" , erstattung == false , beschaedigt == false ]
+with mocks : [ Warennummer_ermitteln , customerProvider ] ;
+
+Test vernichtenErstattung for Flow_4
+with variables for Retoure_Start : [ kundennummer = "C-123A456" , erstattung = true , beschaedigt = true ] ,
+with variables for Warendaten_erfassen : [ marke = "Luxury Foot" , preis = 350 ]
+with check : [ kundennummer == "C-123A456" , marke == "Luxury Foot" , iban == "DE12345678900000123456" , vorname == "Max" , nachname == "Mustermann" , emailGesendet == "Nein" , erstattung == true , beschaedigt == true ]
+with mocks : [ financialMock , customerProvider ] ;
+
+Test casetill1 for Flow_0
+with variables for Retoure_Start : [ kundennummer = "123" , erstattung = true , beschaedigt = true ]
+with check : [ kundennummer == "123" , marke == "wer" , iban == "DE80123084556" , vorname == "till" , nachname == "Brinkhus" , pakettyp == "Normalverpackung" , emailGesendet == "Ja" , firstname == "Till" , lastname == "Brinkhus" , ibanRefund == "DE80123084556" , confirmationEmailSent == "Ja" , serviceIdentifier == "getData" , preis == 1234 , erstattung == true , paket == true , beschaedigt == false ]
+with mocks : [ financialMock , customerProvider ] ;
+
+Test casetill2 for Flow_0
+with variables for Retoure_Start : [ kundennummer = "12345" , erstattung = true , beschaedigt = true ]
+with mocks : [ financialMock , customerProvider ] ;
+
+Test TestHenninh for Flow_1
+with mocks : [ Warennummer_ermitteln , customerProvider ] ;
diff --git a/OnlineSchuhDemo/testgen.json b/OnlineSchuhDemo/testgen.json
index e57c02b..7b2803e 100644
--- a/OnlineSchuhDemo/testgen.json
+++ b/OnlineSchuhDemo/testgen.json
@@ -4,7 +4,7 @@
     "testPath": "\\src\\test\\java\\de\\sample\\onlineschuhdemo\\",
     "modelPath": "\\src\\main\\resources",
     "embeddedFilePath": "\\src\\main\\webapp",
-    "projectRootPath": "C:\\Users\\tillb\\Desktop\\fe_projekt\\fe-pda-testing-tool\\OnlineSchuhDemo"
+    "projectRootPath": "D:\\VSProjects\\fe-pda-testing-tool\\OnlineSchuhDemo"
   },
   "bpmnFiles": [
     {
diff --git a/TestOnlineSchuh/.project b/TestOnlineSchuh/.project
new file mode 100644
index 0000000..f12c666
--- /dev/null
+++ b/TestOnlineSchuh/.project
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>OnlineSchuhDemo</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.wst.common.project.facet.core.builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.wst.validation.validationbuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
+		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+		<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+	</natures>
+</projectDescription>
diff --git a/TestOnlineSchuh/bin/.project b/TestOnlineSchuh/bin/.project
new file mode 100644
index 0000000..f12c666
--- /dev/null
+++ b/TestOnlineSchuh/bin/.project
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>OnlineSchuhDemo</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.wst.common.project.facet.core.builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.wst.validation.validationbuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
+		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+		<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+	</natures>
+</projectDescription>
diff --git a/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/prioritization/PrioritizationMetrics.java b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/prioritization/PrioritizationMetrics.java
new file mode 100644
index 0000000..f7ca7cf
--- /dev/null
+++ b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/prioritization/PrioritizationMetrics.java
@@ -0,0 +1,107 @@
+package de.fhmuenster.masterthesis.Testgenerator.prioritization;
+
+import java.util.List;
+
+import de.fhmuenster.masterthesis.serialization.TestgeneratorDSLSerializer;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Flow;
+import de.fhmuenster.masterthesis.testgeneratorDSL.FlowElementReference;
+import de.fhmuenster.masterthesis.testgeneratorDSL.Test;
+
+public class PrioritizationMetrics {
+		
+	public PrioritizationMetrics() {
+		
+	}
+	
+	/**
+	 * Metric 1 (m1)
+	 * 
+	 */
+	public void m1_flowAffected(List<Flow> newFlows, List<Flow> oldFlows) {
+		try
+		{
+			for(int i = 0; i < newFlows.size(); i++)
+			{
+				Flow newFlow = newFlows.get(i);
+				Flow oldFlow = oldFlows.get(i);
+				
+				StringBuilder sNewWith = new StringBuilder();
+				StringBuilder sOldWith = new StringBuilder();
+				
+				StringBuilder sNewWithout = new StringBuilder();
+				StringBuilder sOldWithout = new StringBuilder();
+				
+				// Building strings to compare the elements of each flow	
+				
+				// with Elements = [..]
+				for(FlowElementReference newRefWith : newFlow.getInclElements())
+					sNewWith.append(newRefWith.getRef().getName()).append(", ");
+				
+				for(FlowElementReference oldRefWith : oldFlow.getInclElements())
+					sOldWith.append(oldRefWith.getRef().getName()).append(", ");
+				
+				// without Elements = [..]			
+				for(FlowElementReference newRefWithout : newFlow.getExclElements())
+					sNewWithout.append(newRefWithout.getRef().getName()).append(", ");
+				
+				for(FlowElementReference oldRefWithout : oldFlow.getExclElements())
+					sOldWithout.append(oldRefWithout.getRef().getName()).append(", ");
+				
+				
+				// Console output
+				System.out.println("=========================================");
+				System.out.println("++ Comparing [NEW] Flow " + newFlow.getName() + " with [OLD] Flow " + oldFlow.getName() + " ++");
+				
+				// Included and excluded elements are the same
+				if(sNewWith.toString().equals(sOldWith.toString()) && sNewWithout.toString().equals(sOldWithout.toString()))
+					System.out.println("Equal");
+				else 
+				{
+					System.out.println("Not Equal");
+					
+					// Specify the differences in in/excluded elements
+					
+					if(!sNewWith.toString().equals(sOldWith.toString()))
+					{
+						System.out.println("Difference in [Included] Elements");
+						System.out.println("[NEW] Flow " + sNewWith.toString());
+						System.out.println("[OLD] Flow " + sOldWith.toString());
+					}
+					else if(!sNewWithout.toString().equals(sOldWithout.toString()))
+					{
+						System.out.println("Difference in [Excluded] Elements");
+						System.out.println("[NEW] Flow " + sNewWithout.toString());
+						System.out.println("[OLD] Flow " + sOldWithout.toString());
+					}
+				}
+			}
+		}
+		catch(Exception e)
+		{
+			e.printStackTrace();
+		}
+	}
+	
+	
+	
+	public void m2_testsAffected(TestgeneratorDSLSerializer newDSL, TestgeneratorDSLSerializer oldDSL) {
+		try 
+		{
+			List<Flow> newFlows = newDSL.getFlows();
+			List<Flow> oldFlows = oldDSL.getFlows();
+			
+			for(int i = 0; i < newFlows.size(); i++)
+			{				
+				List<Test> newTests = newDSL.getTestsForFlow(newFlows.get(i));
+				List<Test> oldTests = oldDSL.getTestsForFlow(oldFlows.get(i));
+								
+				//TODO
+			}
+						
+		}
+		catch(Exception e)
+		{
+			e.printStackTrace();
+		}		
+	}
+}
diff --git a/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/prioritization/PrioritizationService.java b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/prioritization/PrioritizationService.java
new file mode 100644
index 0000000..dc4e996
--- /dev/null
+++ b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/prioritization/PrioritizationService.java
@@ -0,0 +1,43 @@
+package de.fhmuenster.masterthesis.Testgenerator.prioritization;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import de.fhmuenster.masterthesis.Testgenerator.rest.mapper.ObjectMapper;
+import de.fhmuenster.masterthesis.Testgenerator.rest.service.flow.FlowService;
+import de.fhmuenster.masterthesis.Testgenerator.rest.service.project.ProjectService;
+import de.fhmuenster.masterthesis.Testgenerator.rest.service.test.TestService;
+import de.fhmuenster.masterthesis.serialization.TestgeneratorDSLSerializer;
+
+public class PrioritizationService {
+
+	private static final ObjectMapper MAPPER_FLOW = new ObjectMapper()
+			.withFlowConverter();
+	
+	@Autowired
+	private ProjectService projectService;
+	
+	@Autowired
+	private FlowService flowService;
+	
+	@Autowired
+	private TestService testService;
+
+	private PrioritizationMetrics metrics;
+	private TestgeneratorDSLSerializer oldDSL;
+	private TestgeneratorDSLSerializer newDSL;
+	
+	public PrioritizationService(TestgeneratorDSLSerializer oldDSL, TestgeneratorDSLSerializer newDSL) {
+		this.oldDSL = oldDSL;
+		this.newDSL = newDSL;
+		this.metrics = new PrioritizationMetrics();
+	}
+
+	public void prioritize() {
+		
+		// compare old and new flows
+		this.metrics.m1_flowAffected(newDSL.getFlows(), oldDSL.getFlows());	
+				
+		// compare old and new tests
+		this.metrics.m2_testsAffected(newDSL, oldDSL);
+	}
+		
+}
diff --git a/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/rest/service/change/ChangeController.java b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/rest/service/change/ChangeController.java
index dfdf51a..d8e85e6 100644
--- a/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/rest/service/change/ChangeController.java
+++ b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/rest/service/change/ChangeController.java
@@ -23,6 +23,7 @@ import org.springframework.web.servlet.config.annotation.EnableWebMvc;
 
 import de.fhmuenster.masterthesis.Testgenerator.migration.MigrationResultWrapper;
 import de.fhmuenster.masterthesis.Testgenerator.migration.MigrationService;
+import de.fhmuenster.masterthesis.Testgenerator.prioritization.PrioritizationService;
 import de.fhmuenster.masterthesis.Testgenerator.rest.dto.MigrationResultWrapperDTO;
 import de.fhmuenster.masterthesis.Testgenerator.rest.dto.BPMNFlowDTO;
 import de.fhmuenster.masterthesis.Testgenerator.rest.dto.BPMNFlowSetDTO;
@@ -112,7 +113,7 @@ public class ChangeController {
 //		System.out.println("old flow --------------------------------------------");
 
 		//für alte Flows
-		String pathOld = "C:\\Users\\tillb\\Desktop\\fe_projekt\\fe-pda-testing-tool\\OnlineSchuhDemo\\dsl_matching\\MatchingTestcollectionOld.bpmn-testgen";
+		String pathOld = "D:\\VSProjects\\fe-pda-testing-tool\\OnlineSchuhDemo\\dsl_matching\\MatchingTestcollectionOld.bpmn-testgen";
 		List<Flow> oldFlows = flowService.getOldFlows(pathOld);
 		List<BPMNFlowDTO> oldFlowDtos = MAPPER_FLOW.mapToList(oldFlows, BPMNFlowDTO.class);
 		
@@ -249,6 +250,38 @@ public class ChangeController {
 		}
 		
 		return migrationResultWrapperDTO;
+	}
+	
+	/**
+	 *	Function to map the restcall for the frontend. The function will run the prioritization service
+	 *	to prioritize the tests
+	 *	@author Tim Flicke, Henning Schmeink
+	 *	@return ?
+	 */
+	@RequestMapping(path = "/project/{projectId}/prioritization", method = RequestMethod.GET)
+	public void prioritization(@PathVariable(required = true) Long projectId) {
 		
+		Project project = projectService.getProjectForId(projectId);
+		Path testFilePath = ProjectDirectoryUtils.getTestspecificationPath(project.getProjectDirectories());
+				
+		// DSL-Dateien einlesen
+		Path newDSLFile = Paths.get(testFilePath.toString());
+		Path oldDSLFile = Paths.get(project.getProjectDirectories().resolveTestPath(), "Testcollection-old.bpmn-testgen");
+		
+		try {
+			
+			// TODO: Anpassen an das Versionierungskonzept
+			TestgeneratorDSLSerializer oldDSL = new TestgeneratorDSLSerializer(oldDSLFile.toString());
+			TestgeneratorDSLSerializer newDSL = new TestgeneratorDSLSerializer(newDSLFile.toString());	
+			
+			// PrioritizationService erzeugen anhand der alten und neuen DSL
+			PrioritizationService prioritizationService = new PrioritizationService(oldDSL, newDSL);
+			prioritizationService.prioritize();
+			
+		}
+		catch (Exception e) {
+			e.printStackTrace();
+		}
+
 	}
 }
diff --git a/testgenerator-web/testgenerator-web/src/app/app-routing.module.ts b/testgenerator-web/testgenerator-web/src/app/app-routing.module.ts
index 6b34003..a8cf4d2 100644
--- a/testgenerator-web/testgenerator-web/src/app/app-routing.module.ts
+++ b/testgenerator-web/testgenerator-web/src/app/app-routing.module.ts
@@ -17,6 +17,7 @@ import { LoopsComponent } from './components/loops/loops.component';
 import { LoopComponent } from './components/loop/loop.component';
 import { UpdateProjectComponent } from './components/update-project/update-project.component';
 import { MigrationOverviewComponent } from './migration-overview/migration-overview.component';
+import { PrioritizationOverviewComponent } from './prioritization-overview/prioritization-overview.component';
 
 
 const routes: Routes = [
@@ -36,6 +37,7 @@ const routes: Routes = [
       { path: 'project/:projectId/mocks/manual', component: NewManualMockComponent },
       { path: 'project/:projectId/mocks/manual/:mockId', component: NewManualMockComponent },
       { path: 'project/:projectId/update/migration', component: MigrationOverviewComponent },
+      { path: 'project/:projectId/update/prio', component: PrioritizationOverviewComponent },
       { path: 'project/:projectId/update', component: UpdateProjectComponent }, // new Update Component
       { path: 'impressum', component: ImprintComponent },
       { path: 'notfound', component: NotfoundComponent },
diff --git a/testgenerator-web/testgenerator-web/src/app/app.module.ts b/testgenerator-web/testgenerator-web/src/app/app.module.ts
index 0fe1530..ae5cb5c 100644
--- a/testgenerator-web/testgenerator-web/src/app/app.module.ts
+++ b/testgenerator-web/testgenerator-web/src/app/app.module.ts
@@ -31,6 +31,7 @@ import { LoopsComponent } from './components/loops/loops.component';
 import { LoopComponent } from './components/loop/loop.component';
 import { UpdateProjectComponent } from './components/update-project/update-project.component';
 import { MigrationOverviewComponent } from './migration-overview/migration-overview.component';
+import { PrioritizationOverviewComponent } from './prioritization-overview/prioritization-overview.component';
 
 @NgModule({
   declarations: [
@@ -58,7 +59,8 @@ import { MigrationOverviewComponent } from './migration-overview/migration-overv
     LoopsComponent,
     LoopComponent,
     UpdateProjectComponent,
-    MigrationOverviewComponent
+    MigrationOverviewComponent,
+    PrioritizationOverviewComponent
   ],
   imports: [
     BrowserModule,
diff --git a/testgenerator-web/testgenerator-web/src/app/components/update-project/update-project.component.html b/testgenerator-web/testgenerator-web/src/app/components/update-project/update-project.component.html
index 2bb01c0..ef94676 100644
--- a/testgenerator-web/testgenerator-web/src/app/components/update-project/update-project.component.html
+++ b/testgenerator-web/testgenerator-web/src/app/components/update-project/update-project.component.html
@@ -27,8 +27,8 @@
                 <a class="testgen-cardmenu testgen-card-basic" [routerLink]="['migration']">Migration starten</a>
             </div>
             <div class="col-md-6">
-                <button mdbBtn type="submit" (click)="parseFiles()" class="testgen-btn-rounded testgen-primary" rounded="true"
-                i18n="compare bpmn">@Henning parseFiles Testing-Button</button>
+                <button mdbBtn type="submit" (click)="callPrio()" class="testgen-btn-rounded testgen-primary" rounded="true"
+                i18n="prio bpmn">@Test Priorisierung</button>
             </div>
         </div>
     </div>
diff --git a/testgenerator-web/testgenerator-web/src/app/components/update-project/update-project.component.ts b/testgenerator-web/testgenerator-web/src/app/components/update-project/update-project.component.ts
index 27a3c95..6187586 100644
--- a/testgenerator-web/testgenerator-web/src/app/components/update-project/update-project.component.ts
+++ b/testgenerator-web/testgenerator-web/src/app/components/update-project/update-project.component.ts
@@ -104,6 +104,17 @@ export class UpdateProjectComponent implements OnInit {
     }
   }
 
+  // Testbutton Priorisierung
+  async callPrio() {
+    let message = await this.prio (this.actualProject)
+    console.log(message)
+  }
+
+  prio(projectId: number): Promise<string> {
+    const url = `${environment.apiBaseUrl}project/${projectId}/prioritization`;
+    return this.http.get(url, {responseType: 'text'}).toPromise();
+  }
+
   async loadDiagram() {
     try {
       let result = await this.fileService.getBackupBPMNDiagram(this.actualProject);
diff --git a/testgenerator-web/testgenerator-web/src/app/prioritization-overview/prioritization-overview.component.css b/testgenerator-web/testgenerator-web/src/app/prioritization-overview/prioritization-overview.component.css
new file mode 100644
index 0000000..e69de29
diff --git a/testgenerator-web/testgenerator-web/src/app/prioritization-overview/prioritization-overview.component.html b/testgenerator-web/testgenerator-web/src/app/prioritization-overview/prioritization-overview.component.html
new file mode 100644
index 0000000..690c7ac
--- /dev/null
+++ b/testgenerator-web/testgenerator-web/src/app/prioritization-overview/prioritization-overview.component.html
@@ -0,0 +1,2 @@
+<p>prioritization-overview works!</p>
+<p>TODO: Priorisierung</p>
\ No newline at end of file
diff --git a/testgenerator-web/testgenerator-web/src/app/prioritization-overview/prioritization-overview.component.spec.ts b/testgenerator-web/testgenerator-web/src/app/prioritization-overview/prioritization-overview.component.spec.ts
new file mode 100644
index 0000000..68bdccc
--- /dev/null
+++ b/testgenerator-web/testgenerator-web/src/app/prioritization-overview/prioritization-overview.component.spec.ts
@@ -0,0 +1,25 @@
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { PrioritizationOverviewComponent } from './prioritization-overview.component';
+
+describe('PrioritizationOverviewComponent', () => {
+  let component: PrioritizationOverviewComponent;
+  let fixture: ComponentFixture<PrioritizationOverviewComponent>;
+
+  beforeEach(async(() => {
+    TestBed.configureTestingModule({
+      declarations: [ PrioritizationOverviewComponent ]
+    })
+    .compileComponents();
+  }));
+
+  beforeEach(() => {
+    fixture = TestBed.createComponent(PrioritizationOverviewComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});
diff --git a/testgenerator-web/testgenerator-web/src/app/prioritization-overview/prioritization-overview.component.ts b/testgenerator-web/testgenerator-web/src/app/prioritization-overview/prioritization-overview.component.ts
new file mode 100644
index 0000000..05f03d2
--- /dev/null
+++ b/testgenerator-web/testgenerator-web/src/app/prioritization-overview/prioritization-overview.component.ts
@@ -0,0 +1,15 @@
+import { Component, OnInit } from '@angular/core';
+
+@Component({
+  selector: 'app-prioritization-overview',
+  templateUrl: './prioritization-overview.component.html',
+  styleUrls: ['./prioritization-overview.component.css']
+})
+export class PrioritizationOverviewComponent implements OnInit {
+
+  constructor() { }
+
+  ngOnInit(): void {
+  }
+
+}
-- 
GitLab