diff --git a/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/MatchingTestcollectionOld.java b/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/MatchingTestcollectionOld.java new file mode 100644 index 0000000000000000000000000000000000000000..c4f1a978faa718fe8a0f2c403380dcf79e1c1819 --- /dev/null +++ b/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/MatchingTestcollectionOld.java @@ -0,0 +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)); // + + } +} diff --git a/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/migration/MigrationService.java b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/migration/MigrationService.java index 220ae098bb81d0b559c35515420bb58167abbde1..0550da4951fc8d77e47b8359725ab8470609c3bd 100644 --- a/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/migration/MigrationService.java +++ b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/migration/MigrationService.java @@ -24,9 +24,11 @@ import de.fhmuenster.masterthesis.testgeneratorDSL.Flow; import de.fhmuenster.masterthesis.testgeneratorDSL.FlowElement; import de.fhmuenster.masterthesis.testgeneratorDSL.FlowElementReference; import de.fhmuenster.masterthesis.testgeneratorDSL.ManualTaskFlowElement; +import de.fhmuenster.masterthesis.testgeneratorDSL.MockReference; import de.fhmuenster.masterthesis.testgeneratorDSL.UserTaskFlowElement; import de.fhmuenster.masterthesis.testgeneratorDSL.SequenceFlowElement; import de.fhmuenster.masterthesis.testgeneratorDSL.ServiceTaskFlowElement; +import de.fhmuenster.masterthesis.testgeneratorDSL.TestgeneratorDSLFactory; import de.fhmuenster.masterthesis.testgeneratorDSL.BusinessRuleTaskFlowElement; import de.fhmuenster.masterthesis.testgeneratorDSL.Flag; import de.fhmuenster.masterthesis.utils.TestgeneratorDSLUtils; @@ -66,18 +68,29 @@ public class MigrationService { + " mit Status: " + fcw.getMigrationResult().getPriority()); try { + //"maximalen" Flag-Wert noch ermitteln, jetzt erstmal nur YELLOW als Standard newDSL.getFlow(fcw.getFlow().getName()).setFlag(Flag.YELLOW); -// List<FlowElement> flowElement = newDSL.getFlowElements(); -// for(FlowElement fe : flowElement ) { -// fe.setFlag(Flag.GREEN); -// } -// List<FlowElementReference> fers = newDSL.getFlow(fcw.getFlow().getName()).getInclElements(); -// -// for(FlowElementReference fer : fers) { -// fer.setFlag(Flag.GREEN); -// System.out.println(fer.getRef().getName()); -// } + EList<FlowElementReference> inclElements = newDSL.getFlow(fcw.getFlow().getName()).getInclElements(); + + for(FlowElementReference elementReference : inclElements) { + if(elementReference.getRef().getName().equals(fcw.getFlowElement().getName())) { + elementReference.setFlag(this.convertMigrationResultToFlag(fcw.getMigrationResult().getStatus())); + } + } + + //fers.clear(); + //fers.addAll(fers); + + //newDSL.updateInclElements(fers); + + //fcw.getFlow().getInclElements().addAll(newDSL.updateInclElements(fers, fcw.getFlow().getName())); + + + + + //fcw.getFlow().getInclElements().addAll(newDSL.updateInclElements(fers, fcw.getFlow().getName())); + //newDSL.updateInclElements(fers, fcw.getFlow().getName()); //newDSL.getFlow(fcw.getFlow().getName()).getInclElements().clear(); //newDSL.getFlow(fcw.getFlow().getName()).getInclElements().replaceAll(fers); @@ -196,6 +209,19 @@ public class MigrationService { } } + private Flag convertMigrationResultToFlag(MigrationResultStatus status) { + switch(status) { + case GREEN: + return Flag.GREEN; + case YELLOW: + return Flag.YELLOW; + case RED: + return Flag.RED; + default: + return Flag.GREEN; + } + } + public MigrationResultWrapperDTO convertMigrationResultWrapper(MigrationResultWrapper wrapper) { MigrationResultWrapperDTO dto = new MigrationResultWrapperDTO(); dto = wrapper.convertToDTO();