diff --git a/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/BusinessRuleTasks.java b/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/BusinessRuleTasks.java index 619251c2b9cda8f61650ad81e71bab0f6bb18da0..8097235e8e0a38f2fead8fcdc20db24625d32e3b 100644 --- a/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/BusinessRuleTasks.java +++ b/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/BusinessRuleTasks.java @@ -2,5 +2,6 @@ package de.sample.onlineschuhdemo; public class BusinessRuleTasks { + public static final String VERNICHTUNG_ERMITTELN = "Vernichtung_ermitteln"; } diff --git a/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/Events.java b/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/Events.java index c4f28e00edcae2d21bf63c4ed430a1576ef78e16..a9f4ad86aa7840bfaa380f997f420d32344ccccf 100644 --- a/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/Events.java +++ b/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/Events.java @@ -2,5 +2,7 @@ package de.sample.onlineschuhdemo; public class Events { + public static final String RETOURE_START = "Retoure_Start"; + public static final String RETOURE_ENDE = "Retoure_Ende"; } diff --git a/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/ExternalServiceMockProvider.java b/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/ExternalServiceMockProvider.java index 530b895c9bae5ba89b2222298eb110e84288fc29..8b5705933198f4d2d513b866cb698ca64491e81f 100644 --- a/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/ExternalServiceMockProvider.java +++ b/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/ExternalServiceMockProvider.java @@ -5,5 +5,47 @@ import java.util.Map; public class ExternalServiceMockProvider { + private static final String VAR_KUNDENNUMMER = "kundennummer"; + private static final String VAR_FIRSTNAME = "firstname"; + private static final String VAR_LASTNAME = "lastname"; + private static final String VAR_SERVICEIDENTIFIER = "serviceIdentifier"; + private static final String VAR_IBAN = "iban"; + private static final String VAR_IBANREFUND = "ibanRefund"; + private static final String VAR_CONFIRMATIONEMAILSENT = "confirmationEmailSent"; + public static final Map<String, Object> customerProvider(Map<String, Object> input) { + Map<String, Object> output = new HashMap<String, Object>(); + + String kundennummer = (String) input.get(VAR_KUNDENNUMMER); + + if("C-123A456".equals(kundennummer)) { + output.put(VAR_FIRSTNAME, "Max"); + output.put(VAR_LASTNAME, "Mustermann"); + } else if("C-987A654".equals(kundennummer)) { + output.put(VAR_FIRSTNAME, "Erika"); + output.put(VAR_LASTNAME, "Mustermann"); + } + + return output; + } + + public static final Map<String, Object> financialMock(Map<String, Object> input) { + Map<String, Object> output = new HashMap<String, Object>(); + + String serviceIdentifier = (String) input.get(VAR_SERVICEIDENTIFIER); + String kundennummer = (String) input.get(VAR_KUNDENNUMMER); + String iban = (String) input.get(VAR_IBAN); + + if("getData".equals(serviceIdentifier) && "C-123A456".equals(kundennummer)) { + output.put(VAR_IBANREFUND, "DE12345678900000123456"); + } else if("getData".equals(serviceIdentifier) && "C-987A654".equals(kundennummer)) { + output.put(VAR_IBANREFUND, "DE12345678900000987654"); + } else if("refund".equals(serviceIdentifier) && "DE12345678900000123456".equals(iban)) { + output.put(VAR_CONFIRMATIONEMAILSENT, "Nein"); + } else if("refund".equals(serviceIdentifier)) { + output.put(VAR_CONFIRMATIONEMAILSENT, "Ja"); + } + + return output; + } } diff --git a/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/Gateways.java b/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/Gateways.java index 2c44e5ef966505600a482db4abbd685881f0ea29..454a04a272136efe6bec37adb5db18cdf3930149 100644 --- a/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/Gateways.java +++ b/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/Gateways.java @@ -2,5 +2,17 @@ package de.sample.onlineschuhdemo; public class Gateways { + public static final String GATEWAY_PARALLEL_LAGER_NEUSENDUNG = "Gateway_Parallel_Lager_Neusendung"; + public static final String GATEWAY_BESCHAEDIGT = "Gateway_Beschaedigt"; + public static final String GATEWAY_BESCHAEDIGT_CLOSE = "Gateway_Beschaedigt_Close"; + public static final String GATEWAY_NEUSENDUNG = "Gateway_Neusendung"; + public static final String GATEWAY_NEUSENDUNG_CLOSED = "Gateway_Neusendung_Closed"; + public static final String GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED = "Gateway_Parallel_Lager_Neusendung_Closed"; + public static final String GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED = "Gateway_Einpackung_Fehlerhaft_Closed"; + public static final String GATEWAY_EINPACKUNG_FEHLERHAFT = "Gateway_Einpackung_Fehlerhaft"; + public static final String GATEWAY_AUSPACKEN = "Gateway_Auspacken"; + public static final String GATEWAY_14EVKAP = "Gateway_14evkap"; + public static final String GATEWAY_VERNICHTUNG = "Gateway_Vernichtung"; + public static final String GATEWAY_VERNICHTUNG_CLOSE = "Gateway_Vernichtung_Close"; } diff --git a/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/ManualTasks.java b/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/ManualTasks.java index 582c06cb90cabe2f6b819d40833ed4535801b877..ac22bea9a8ef059ec8b51fbfb5ddcfcc66bad3c5 100644 --- a/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/ManualTasks.java +++ b/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/ManualTasks.java @@ -2,5 +2,8 @@ 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 new file mode 100644 index 0000000000000000000000000000000000000000..d12572e23371f2aa42a9b3b402f4705c38ff8046 --- /dev/null +++ b/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/MatchingTestcollectionOld.java @@ -0,0 +1,874 @@ +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() { + + assertThat(processInstance) // + .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(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(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(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(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(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/ServiceTasks.java b/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/ServiceTasks.java index 2f839b1b7b8f65378335d46e814804c6b04a5e98..ca0efb4ad1c65d23f463dbe88ae6dd3fef28d94a 100644 --- a/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/ServiceTasks.java +++ b/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/ServiceTasks.java @@ -2,5 +2,9 @@ package de.sample.onlineschuhdemo; public class ServiceTasks { + public static final String WARENNUMMER_ERMITTELN = "Warennummer_ermitteln"; + public static final String KUNDENDATEN_ERMITTELN = "Kundendaten_ermitteln"; + public static final String FINANZDATEN_ERMITTELN = "Finanzdaten_ermitteln"; + public static final String ERSTATTUNG = "Erstattung"; } 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 0000000000000000000000000000000000000000..fcfc89b210c7ee3e4e861f567464984d341cbaad --- /dev/null +++ b/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/Testcollection-old.java @@ -0,0 +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-old { + + @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-gen/de/sample/onlineschuhdemo/Testcollection.java b/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/Testcollection.java deleted file mode 100644 index 8d7f962063ca45a9f4f4901995a92d9b385ccb9e..0000000000000000000000000000000000000000 --- a/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/Testcollection.java +++ /dev/null @@ -1,39 +0,0 @@ -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 { - - @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/UserTasks.java b/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/UserTasks.java index c905f884af846d1993a7c159e3a8546a96495e0d..893a2de2722c939b2591eea69925e88c3f0f57d9 100644 --- a/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/UserTasks.java +++ b/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/UserTasks.java @@ -2,5 +2,12 @@ package de.sample.onlineschuhdemo; public class UserTasks { + public static final String MANUELLE_PRUEFUNG = "Manuelle_Pruefung"; + public static final String PAKET_PACKEN = "Paket_packen"; + public static final String PAKET_PRUEFEN = "Paket_pruefen"; + public static final String PAKET_SENDEN = "Paket_senden"; + public static final String WARENDATEN_ERFASSEN = "Warendaten_erfassen"; + public static final String WARE_VERNICHTEN = "Ware_vernichten"; + public static final String WARE_SPENDEN = "Ware_spenden"; } diff --git a/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/bpmn/data/BPMNFormFields.java b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/bpmn/data/BPMNFormFields.java index a1c98a6fae0c729554103996132acf4ac598134c..345ede5f886d82a3f20f9899b787a3d29775695a 100644 --- a/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/bpmn/data/BPMNFormFields.java +++ b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/bpmn/data/BPMNFormFields.java @@ -51,7 +51,6 @@ public class BPMNFormFields { variableFieldMap.put(formField.getCamundaLabel(), variableFields); } - //FYI: Hier vllt. für Contstraints in Zukunft interessant public HashMap<String, List<BPMNFieldConstraint>> getVariableConstraints() { return variableConstraints; } 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..c9059e689ef4d1c42637b1d9f561081a4851972e 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 @@ -67,16 +67,14 @@ public class MigrationService { try { 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()); -// } + + + List<FlowElementReference> fers = newDSL.getFlow(fcw.getFlow().getName()).getInclElements(); + + for(FlowElementReference fer : fers) { + fer.setFlag(Flag.GREEN); + System.out.println(fer.getRef().getName()); + } //newDSL.getFlow(fcw.getFlow().getName()).getInclElements().clear(); //newDSL.getFlow(fcw.getFlow().getName()).getInclElements().replaceAll(fers); diff --git a/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/rest/dto/FlowElementEnhancedDTO.java b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/rest/dto/FlowElementEnhancedDTO.java index 1959c0222dc839e444a8e4617d0519bf92e9f346..9fb0e27f454ec70e63cbcffd47b24649114af3fc 100644 --- a/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/rest/dto/FlowElementEnhancedDTO.java +++ b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/rest/dto/FlowElementEnhancedDTO.java @@ -6,7 +6,6 @@ public class FlowElementEnhancedDTO { private String name; private List<String> inputVariables; - private List<String> outputVariables; public FlowElementEnhancedDTO() { } @@ -26,12 +25,4 @@ public class FlowElementEnhancedDTO { public void setInputVariables(List<String> inputVariables) { this.inputVariables = inputVariables; } - - public List<String> getOutputVariables() { - return outputVariables; - } - - public void setOutputVariables(List<String> outputVariables) { - this.outputVariables = outputVariables; - } } diff --git a/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/rest/service/test/TestService.java b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/rest/service/test/TestService.java index 39ad188bd92e815f2f25ee4c1e10e16669da70f9..e6fe4a57bb2cab56f8181d7cadcce4f298e688ce 100644 --- a/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/rest/service/test/TestService.java +++ b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/rest/service/test/TestService.java @@ -352,40 +352,23 @@ public class TestService { BPMNIOParameters bpmnIOParameters, List<ExternalTopic> externalTopics) { if (flowElement instanceof StartEvent) { - List<Variable> startVariables = filterFlowElementVariables(variables, + List<Variable> inputVariables = filterFlowElementVariables(variables, formFields.getVariablesForTask(flowElement.getId())); - return TestgeneratorDSLObjectCreator.createStartFlowElement(flowElement.getId(), startVariables); -// List<String> inputVariableNames = new ArrayList<>(); -// inputVariableNames.addAll(bpmnIOParameters.getInputVariables(flowElement.getId())); -// List<String> outputVariableNames = new ArrayList<>(); -// outputVariableNames.addAll(bpmnIOParameters.getOutputVariables(flowElement.getId())); -// System.out.println("Output " + outputVariableNames.size() + " Input " + inputVariableNames.size()); -// List<Variable> inputVariables = filterFlowElementVariables(variables, inputVariableNames); -// List<Variable> outputVariables = filterFlowElementVariables(variables, outputVariableNames); -// return TestgeneratorDSLObjectCreator.createStartFlowElement(flowElement.getId(), inputVariables, outputVariables); + return TestgeneratorDSLObjectCreator.createStartFlowElement(flowElement.getId(), inputVariables); } else if (flowElement instanceof EndEvent) { return TestgeneratorDSLObjectCreator.createEndFlowElement(flowElement.getId()); } else if (flowElement instanceof Gateway) { return TestgeneratorDSLObjectCreator.createGatewayFlowElement(flowElement.getId()); } else if (flowElement instanceof UserTask) { List<String> inputVariableNames = new ArrayList<>(); - inputVariableNames.addAll(bpmnIOParameters.getInputVariables(flowElement.getId())); - List<String> outputVariableNames = new ArrayList<>(); - outputVariableNames.addAll(bpmnIOParameters.getOutputVariables(flowElement.getId())); - System.out.println("Output " + outputVariableNames.size() + " Input " + inputVariableNames.size()); + inputVariableNames.addAll(bpmnIOParameters.getOutputVariables(flowElement.getId())); + inputVariableNames.addAll(formFields.getVariablesForTask(flowElement.getId())); + List<Variable> inputVariables = filterFlowElementVariables(variables, inputVariableNames); - List<Variable> outputVariables = filterFlowElementVariables(variables, outputVariableNames); - return TestgeneratorDSLObjectCreator.createUserTaskFlowElement(flowElement.getId(), inputVariables, outputVariables, flowElement.getName()); + return TestgeneratorDSLObjectCreator.createUserTaskFlowElement(flowElement.getId(), inputVariables, flowElement.getName()); } else if (flowElement instanceof ManualTask) { - List<String> inputVariableNames = new ArrayList<>(); - inputVariableNames.addAll(bpmnIOParameters.getInputVariables(flowElement.getId())); - List<String> outputVariableNames = new ArrayList<>(); - outputVariableNames.addAll(bpmnIOParameters.getOutputVariables(flowElement.getId())); - System.out.println("Output " + outputVariableNames.size() + " Input " + inputVariableNames.size()); - List<Variable> inputVariables = filterFlowElementVariables(variables, inputVariableNames); - List<Variable> outputVariables = filterFlowElementVariables(variables, outputVariableNames); - return TestgeneratorDSLObjectCreator.createManualTaskFlowElement(flowElement.getId(), inputVariables, outputVariables, flowElement.getName()); + return TestgeneratorDSLObjectCreator.createManualTaskFlowElement(flowElement.getId(), flowElement.getName()); } else if (flowElement instanceof ScriptTask) { return TestgeneratorDSLObjectCreator.createScriptTaskFlowElement(flowElement.getId(), flowElement.getName()); } else if (flowElement instanceof BusinessRuleTask) { @@ -403,14 +386,8 @@ public class TestService { } else if (externalTopic != null) { List<VariableDeclaration> hardcodedVariables = BPMNParseUtils.getHardcodedVariables(flowElement.getId(), variables, bpmnIOParameters); - List<String> inputVariableNames = new ArrayList<>(); - inputVariableNames.addAll(bpmnIOParameters.getInputVariables(flowElement.getId())); - List<String> outputVariableNames = new ArrayList<>(); - outputVariableNames.addAll(bpmnIOParameters.getOutputVariables(flowElement.getId())); - List<Variable> inputVariables = filterFlowElementVariables(variables, inputVariableNames); - List<Variable> outputVariables = filterFlowElementVariables(variables, outputVariableNames); return TestgeneratorDSLObjectCreator.createExternalServiceTaskFlowElement(flowElement.getId(), - externalTopic, hardcodedVariables, flowElement.getName(), inputVariables, outputVariables); + externalTopic, hardcodedVariables, flowElement.getName()); } else { throw new IncompleteFlowElementException(flowElement.getId()); } diff --git a/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/utils/BPMNParseUtils.java b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/utils/BPMNParseUtils.java index a96fb6eb15892de0f0c2c4027807f8d11402818d..3da523422f7f99702af7a192c660e5ef62e545e1 100644 --- a/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/utils/BPMNParseUtils.java +++ b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/utils/BPMNParseUtils.java @@ -6,7 +6,6 @@ import java.nio.file.Paths; import java.util.ArrayList; import java.util.HashMap; import java.util.List; -import java.util.Map; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -142,32 +141,8 @@ public class BPMNParseUtils { public static List<Variable> getVariables(BPMNFormFields formFields, HashMap<String, BPMNTestdata<? extends Object>> variableTestdata, BPMNIOParameters bpmnIOParameters) { - System.out.println("============================================"); - System.out.println("INSIDE VARIABLES"); - HashMap<String, List<String>> inputList = bpmnIOParameters.getInputParameters(); - HashMap<String, List<String>> outputList = bpmnIOParameters.getOutputParameters(); - List<String> hardcodedList = bpmnIOParameters.getHardcodedInputParameters(); - - List<String> test = new ArrayList<String>(); - System.out.println("Input Keys: "); - for(Map.Entry<String, List<String>> entry : inputList.entrySet()) { - test.addAll(entry.getValue()); - System.out.println(entry.getKey() + " " + entry.getKey().getClass()); - } - System.out.println("Input values: "); - for(String test2 : test) { - System.out.println(test2 + " " + test2.getClass()); - } - System.out.println("Output Keys: "); - for(Map.Entry<String, List<String>> entry : outputList.entrySet()) { - test.addAll(entry.getValue()); - System.out.println(entry.getKey() + " " + entry.getKey().getClass()); - } - System.out.println("Output values: "); - for(String test2 : test) { - System.out.println(test2 + " " + test2.getClass()); - } List<Variable> variables = new ArrayList<>(); + List<StringVariable> stringVariables = Stream.concat(Stream.concat(// formFields.getStringVariables().stream(), // bpmnIOParameters.getVariables().stream()), // @@ -176,12 +151,12 @@ public class BPMNParseUtils { .map(s -> TestgeneratorDSLObjectCreator.createStringVariable(s, getProposals(s, variableTestdata.get(s), String.class))) // .collect(Collectors.toList()); // - // List<StringVariable> stringVariables = formFields.getStringVariables().stream() // // .map(s -> TestgeneratorDSLObjectCreator.createStringVariable(s, // getProposals(s, variableTestdata.get(s), String.class))) // // .collect(Collectors.toList()); + List<IntVariable> longVariables = Stream.concat( // formFields.getLongVariables().stream(), // bpmnIOParameters.getHardcodedInputParametersLong().stream() // @@ -189,6 +164,7 @@ public class BPMNParseUtils { .map(i -> TestgeneratorDSLObjectCreator.createIntVariable(i, getIntProposals(i, variableTestdata.get(i)))) // .collect(Collectors.toList()); + List<BooleanVariable> booleanVariables = Stream.concat(// formFields.getBooleanVariables().stream(), // bpmnIOParameters.getHardcodedInputParametersBoolean().stream() // @@ -196,13 +172,11 @@ public class BPMNParseUtils { .map(b -> TestgeneratorDSLObjectCreator.createBooleanVariable(b, getProposals(b, variableTestdata.get(b), Boolean.class))) // .collect(Collectors.toList()); + variables.addAll(stringVariables); variables.addAll(longVariables); variables.addAll(booleanVariables); - for(Variable var: variables) { - System.out.println(var.getName()); - } - System.out.println("============================================"); + return variables; } @@ -283,10 +257,7 @@ public class BPMNParseUtils { .map(entry -> VariableConverter.getVariableDeclaration(variables, entry.getKey(), entry.getValue())) // .forEach(variableDeclaration -> hardcodedVariables.add(variableDeclaration)); // } - System.out.println("================"); - for(VariableDeclaration var: hardcodedVariables) { - System.out.println(var.getClass()); - } + return hardcodedVariables; } }