diff --git a/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/ManualTasks.java b/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/ManualTasks.java index c508bd1fbcd5689596486a20b62fda7e71ecb361..ac22bea9a8ef059ec8b51fbfb5ddcfcc66bad3c5 100644 --- a/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/ManualTasks.java +++ b/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/ManualTasks.java @@ -1,9 +1,9 @@ -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"; - -} +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/Testcollection-old.java b/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/Testcollection-old.java index fcfc89b210c7ee3e4e861f567464984d341cbaad..94c502e2cd7c99ab20e2216f5b5f17ed0312287d 100644 --- a/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/Testcollection-old.java +++ b/OnlineSchuhDemo/src-gen/de/sample/onlineschuhdemo/Testcollection-old.java @@ -13,9 +13,6 @@ 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; @@ -30,22 +27,6 @@ public class Testcollection-old { @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(); @@ -54,1081 +35,5 @@ public class Testcollection-old { @Before public void setup() { init(rule.getProcessEngine()); - - LagerService lagerService = new LagerService(); - - WarennummerErmittelnDelegate warennummerErmittelnDelegate = new WarennummerErmittelnDelegate(); - warennummerErmittelnDelegate.setLagerService(lagerService); - - Mocks.register("warennummer", warennummerErmittelnDelegate); - } - - @Test - @Deployment(resources = {"retoure.bpmn", "\\schuh_vernichtung_spende.dmn"}) - public void normalverpackungAuspacken() { - - ProcessInstance processInstance = runtimeService() // - .startProcessInstanceByKey("Retoure", withVariables(VAR_BESCHAEDIGT, false, VAR_ERSTATTUNG, false, VAR_KUNDENNUMMER, "C-123A456")); // - - assertThat(processInstance) // - .isStarted() // - .hasPassed(Events.RETOURE_START) // - .hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT) // - .hasPassed(ManualTasks.WARE_EINSORTIEREN) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) // - .hasNotPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) // - .hasNotPassed(Gateways.GATEWAY_NEUSENDUNG) // - .hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) // - .hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) // - .hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) // - .hasNotPassed(UserTasks.PAKET_PACKEN) // - .hasNotPassed(UserTasks.PAKET_PRUEFEN) // - .hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) // - .hasNotPassed(Gateways.GATEWAY_AUSPACKEN) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) // - .hasNotPassed(Gateways.GATEWAY_14EVKAP) // - .hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) // - .hasNotPassed(UserTasks.PAKET_PACKEN) // - .hasNotPassed(UserTasks.PAKET_PRUEFEN) // - .hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) // - .hasNotPassed(UserTasks.PAKET_SENDEN) // - .hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) // - .hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) // - .hasNotPassed(Events.RETOURE_ENDE) // - .hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) // - .hasNotPassed(ServiceTasks.ERSTATTUNG) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) // - .hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) // - .hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) // - .hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) // - .hasNotPassed(UserTasks.WARE_VERNICHTEN) // - .hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) // - .hasNotPassed(UserTasks.WARE_SPENDEN) // - .isNotEnded(); // - - Map<String, Object> variableSnapshot0 = runtimeService() // - .getVariables(processInstance.getId()); // - List<LockedExternalTask> lockedTasks0 = lockTasks("customer"); - complete(getLockedTask(lockedTasks0, ServiceTasks.KUNDENDATEN_ERMITTELN), ExternalServiceMockProvider.customerProvider(variableSnapshot0)); - - assertThat(processInstance) // - .hasPassed(Events.RETOURE_START) // - .hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT) // - .hasPassed(ManualTasks.WARE_EINSORTIEREN) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) // - .hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) // - .hasPassed(Gateways.GATEWAY_NEUSENDUNG) // - .hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) // - .hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) // - .hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) // - .hasNotPassed(UserTasks.PAKET_PACKEN) // - .hasNotPassed(UserTasks.PAKET_PRUEFEN) // - .hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) // - .hasNotPassed(Gateways.GATEWAY_AUSPACKEN) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) // - .hasNotPassed(Gateways.GATEWAY_14EVKAP) // - .hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) // - .hasNotPassed(UserTasks.PAKET_PACKEN) // - .hasNotPassed(UserTasks.PAKET_PRUEFEN) // - .hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) // - .hasNotPassed(UserTasks.PAKET_SENDEN) // - .hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) // - .hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) // - .hasNotPassed(Events.RETOURE_ENDE) // - .hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) // - .hasNotPassed(ServiceTasks.ERSTATTUNG) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) // - .hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) // - .hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) // - .hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) // - .hasNotPassed(UserTasks.WARE_VERNICHTEN) // - .hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) // - .hasNotPassed(UserTasks.WARE_SPENDEN) // - .isNotEnded(); // - - complete(task(UserTasks.MANUELLE_PRUEFUNG)); - - assertThat(processInstance) // - .hasPassed(Events.RETOURE_START) // - .hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT) // - .hasPassed(ManualTasks.WARE_EINSORTIEREN) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) // - .hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) // - .hasPassed(Gateways.GATEWAY_NEUSENDUNG) // - .hasPassed(UserTasks.MANUELLE_PRUEFUNG) // - .hasPassed(ServiceTasks.WARENNUMMER_ERMITTELN) // - .hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) // - .hasNotPassed(UserTasks.PAKET_PACKEN) // - .hasNotPassed(UserTasks.PAKET_PRUEFEN) // - .hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) // - .hasNotPassed(Gateways.GATEWAY_AUSPACKEN) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) // - .hasNotPassed(Gateways.GATEWAY_14EVKAP) // - .hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) // - .hasNotPassed(UserTasks.PAKET_PACKEN) // - .hasNotPassed(UserTasks.PAKET_PRUEFEN) // - .hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) // - .hasNotPassed(UserTasks.PAKET_SENDEN) // - .hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) // - .hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) // - .hasNotPassed(Events.RETOURE_ENDE) // - .hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) // - .hasNotPassed(ServiceTasks.ERSTATTUNG) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) // - .hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) // - .hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) // - .hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) // - .hasNotPassed(UserTasks.WARE_VERNICHTEN) // - .hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) // - .hasNotPassed(UserTasks.WARE_SPENDEN) // - .isNotEnded(); // - - complete(task(UserTasks.PAKET_PACKEN), withVariables(VAR_PAKETTYP, "Normalverpackung")); - - assertThat(processInstance) // - .hasPassed(Events.RETOURE_START) // - .hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT) // - .hasPassed(ManualTasks.WARE_EINSORTIEREN) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) // - .hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) // - .hasPassed(Gateways.GATEWAY_NEUSENDUNG) // - .hasPassed(UserTasks.MANUELLE_PRUEFUNG) // - .hasPassed(ServiceTasks.WARENNUMMER_ERMITTELN) // - .hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) // - .hasPassed(UserTasks.PAKET_PACKEN) // - .hasNotPassed(UserTasks.PAKET_PRUEFEN) // - .hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) // - .hasNotPassed(Gateways.GATEWAY_AUSPACKEN) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) // - .hasNotPassed(Gateways.GATEWAY_14EVKAP) // - .hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) // - .hasPassed(UserTasks.PAKET_PACKEN) // - .hasNotPassed(UserTasks.PAKET_PRUEFEN) // - .hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) // - .hasNotPassed(UserTasks.PAKET_SENDEN) // - .hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) // - .hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) // - .hasNotPassed(Events.RETOURE_ENDE) // - .hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) // - .hasNotPassed(ServiceTasks.ERSTATTUNG) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) // - .hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) // - .hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) // - .hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) // - .hasNotPassed(UserTasks.WARE_VERNICHTEN) // - .hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) // - .hasNotPassed(UserTasks.WARE_SPENDEN) // - .isNotEnded(); // - - complete(task(UserTasks.PAKET_PRUEFEN), withVariables(VAR_PAKET, false)); - - assertThat(processInstance) // - .hasPassed(Events.RETOURE_START) // - .hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT) // - .hasPassed(ManualTasks.WARE_EINSORTIEREN) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) // - .hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) // - .hasPassed(Gateways.GATEWAY_NEUSENDUNG) // - .hasPassed(UserTasks.MANUELLE_PRUEFUNG) // - .hasPassed(ServiceTasks.WARENNUMMER_ERMITTELN) // - .hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) // - .hasPassed(UserTasks.PAKET_PACKEN) // - .hasPassed(UserTasks.PAKET_PRUEFEN) // - .hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) // - .hasPassed(Gateways.GATEWAY_AUSPACKEN) // - .hasPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) // - .hasPassed(Gateways.GATEWAY_14EVKAP) // - .hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) // - .hasPassed(UserTasks.PAKET_PACKEN) // - .hasPassed(UserTasks.PAKET_PRUEFEN) // - .hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) // - .hasNotPassed(UserTasks.PAKET_SENDEN) // - .hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) // - .hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) // - .hasNotPassed(Events.RETOURE_ENDE) // - .hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) // - .hasNotPassed(ServiceTasks.ERSTATTUNG) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) // - .hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) // - .hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) // - .hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) // - .hasNotPassed(UserTasks.WARE_VERNICHTEN) // - .hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) // - .hasNotPassed(UserTasks.WARE_SPENDEN) // - .isNotEnded(); // - - complete(task(UserTasks.PAKET_PACKEN), withVariables(VAR_PAKETTYP, "Luxusverpackung")); - - assertThat(processInstance) // - .hasPassed(Events.RETOURE_START) // - .hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT) // - .hasPassed(ManualTasks.WARE_EINSORTIEREN) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) // - .hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) // - .hasPassed(Gateways.GATEWAY_NEUSENDUNG) // - .hasPassed(UserTasks.MANUELLE_PRUEFUNG) // - .hasPassed(ServiceTasks.WARENNUMMER_ERMITTELN) // - .hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) // - .hasPassed(UserTasks.PAKET_PACKEN) // - .hasPassed(UserTasks.PAKET_PRUEFEN) // - .hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) // - .hasPassed(Gateways.GATEWAY_AUSPACKEN) // - .hasPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) // - .hasPassed(Gateways.GATEWAY_14EVKAP) // - .hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) // - .hasPassed(UserTasks.PAKET_PACKEN) // - .hasPassed(UserTasks.PAKET_PRUEFEN) // - .hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) // - .hasNotPassed(UserTasks.PAKET_SENDEN) // - .hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) // - .hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) // - .hasNotPassed(Events.RETOURE_ENDE) // - .hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) // - .hasNotPassed(ServiceTasks.ERSTATTUNG) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) // - .hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) // - .hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) // - .hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) // - .hasNotPassed(UserTasks.WARE_VERNICHTEN) // - .hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) // - .hasNotPassed(UserTasks.WARE_SPENDEN) // - .isNotEnded(); // - - complete(task(UserTasks.PAKET_PRUEFEN), withVariables(VAR_PAKET, true)); - - assertThat(processInstance) // - .hasPassed(Events.RETOURE_START) // - .hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT) // - .hasPassed(ManualTasks.WARE_EINSORTIEREN) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) // - .hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) // - .hasPassed(Gateways.GATEWAY_NEUSENDUNG) // - .hasPassed(UserTasks.MANUELLE_PRUEFUNG) // - .hasPassed(ServiceTasks.WARENNUMMER_ERMITTELN) // - .hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) // - .hasPassed(UserTasks.PAKET_PACKEN) // - .hasPassed(UserTasks.PAKET_PRUEFEN) // - .hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) // - .hasPassed(Gateways.GATEWAY_AUSPACKEN) // - .hasPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) // - .hasPassed(Gateways.GATEWAY_14EVKAP) // - .hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) // - .hasPassed(UserTasks.PAKET_PACKEN) // - .hasPassed(UserTasks.PAKET_PRUEFEN) // - .hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) // - .hasNotPassed(UserTasks.PAKET_SENDEN) // - .hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) // - .hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) // - .hasNotPassed(Events.RETOURE_ENDE) // - .hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) // - .hasNotPassed(ServiceTasks.ERSTATTUNG) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) // - .hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) // - .hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) // - .hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) // - .hasNotPassed(UserTasks.WARE_VERNICHTEN) // - .hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) // - .hasNotPassed(UserTasks.WARE_SPENDEN) // - .isNotEnded(); // - - complete(task(UserTasks.PAKET_SENDEN)); - - assertThat(processInstance) // - .hasPassed(Events.RETOURE_START) // - .hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT) // - .hasPassed(ManualTasks.WARE_EINSORTIEREN) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) // - .hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) // - .hasPassed(Gateways.GATEWAY_NEUSENDUNG) // - .hasPassed(UserTasks.MANUELLE_PRUEFUNG) // - .hasPassed(ServiceTasks.WARENNUMMER_ERMITTELN) // - .hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) // - .hasPassed(UserTasks.PAKET_PACKEN) // - .hasPassed(UserTasks.PAKET_PRUEFEN) // - .hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) // - .hasPassed(Gateways.GATEWAY_AUSPACKEN) // - .hasPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) // - .hasPassed(Gateways.GATEWAY_14EVKAP) // - .hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) // - .hasPassed(UserTasks.PAKET_PACKEN) // - .hasPassed(UserTasks.PAKET_PRUEFEN) // - .hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) // - .hasPassed(UserTasks.PAKET_SENDEN) // - .hasPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) // - .hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) // - .hasPassed(Events.RETOURE_ENDE) // - .hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) // - .hasNotPassed(ServiceTasks.ERSTATTUNG) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) // - .hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) // - .hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) // - .hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) // - .hasNotPassed(UserTasks.WARE_VERNICHTEN) // - .hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) // - .hasNotPassed(UserTasks.WARE_SPENDEN) // - .isEnded() // - .variables() // - .contains(entry(VAR_KUNDENNUMMER, "C-123A456"), entry(VAR_VORNAME, "Max"), entry(VAR_ERSTATTUNG, false), entry(VAR_NACHNAME, "Mustermann"), entry(VAR_BESCHAEDIGT, false)); // - - } - - @Test - @Deployment(resources = {"retoure.bpmn", "\\schuh_vernichtung_spende.dmn"}) - public void vernichtenErstattung() { - - ProcessInstance processInstance = runtimeService() // - .startProcessInstanceByKey("Retoure", withVariables(VAR_BESCHAEDIGT, true, VAR_ERSTATTUNG, true, VAR_KUNDENNUMMER, "C-123A456")); // - - assertThat(processInstance) // - .isStarted() // - .hasPassed(Events.RETOURE_START) // - .hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT) // - .hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) // - .hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) // - .hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) // - .hasNotPassed(UserTasks.WARE_VERNICHTEN) // - .hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) // - .hasNotPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) // - .hasNotPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) // - .hasNotPassed(Gateways.GATEWAY_NEUSENDUNG) // - .hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) // - .hasNotPassed(ServiceTasks.ERSTATTUNG) // - .hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) // - .hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) // - .hasNotPassed(Events.RETOURE_ENDE) // - .hasNotPassed(ManualTasks.WARE_EINSORTIEREN) // - .hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) // - .hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) // - .hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) // - .hasNotPassed(UserTasks.PAKET_PACKEN) // - .hasNotPassed(UserTasks.PAKET_PRUEFEN) // - .hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) // - .hasNotPassed(UserTasks.PAKET_SENDEN) // - .hasNotPassed(Gateways.GATEWAY_AUSPACKEN) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) // - .hasNotPassed(Gateways.GATEWAY_14EVKAP) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) // - .hasNotPassed(UserTasks.WARE_SPENDEN) // - .isNotEnded(); // - - complete(task(UserTasks.WARENDATEN_ERFASSEN), withVariables(VAR_MARKE, "Luxury Foot", VAR_PREIS, 350)); - - assertThat(processInstance) // - .hasPassed(Events.RETOURE_START) // - .hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT) // - .hasPassed(UserTasks.WARENDATEN_ERFASSEN) // - .hasPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) // - .hasPassed(Gateways.GATEWAY_VERNICHTUNG) // - .hasNotPassed(UserTasks.WARE_VERNICHTEN) // - .hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) // - .hasNotPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) // - .hasNotPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) // - .hasNotPassed(Gateways.GATEWAY_NEUSENDUNG) // - .hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) // - .hasNotPassed(ServiceTasks.ERSTATTUNG) // - .hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) // - .hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) // - .hasNotPassed(Events.RETOURE_ENDE) // - .hasNotPassed(ManualTasks.WARE_EINSORTIEREN) // - .hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) // - .hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) // - .hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) // - .hasNotPassed(UserTasks.PAKET_PACKEN) // - .hasNotPassed(UserTasks.PAKET_PRUEFEN) // - .hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) // - .hasNotPassed(UserTasks.PAKET_SENDEN) // - .hasNotPassed(Gateways.GATEWAY_AUSPACKEN) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) // - .hasNotPassed(Gateways.GATEWAY_14EVKAP) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) // - .hasNotPassed(UserTasks.WARE_SPENDEN) // - .isNotEnded(); // - - complete(task(UserTasks.WARE_VERNICHTEN)); - - assertThat(processInstance) // - .hasPassed(Events.RETOURE_START) // - .hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT) // - .hasPassed(UserTasks.WARENDATEN_ERFASSEN) // - .hasPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) // - .hasPassed(Gateways.GATEWAY_VERNICHTUNG) // - .hasPassed(UserTasks.WARE_VERNICHTEN) // - .hasPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) // - .hasNotPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) // - .hasNotPassed(Gateways.GATEWAY_NEUSENDUNG) // - .hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) // - .hasNotPassed(ServiceTasks.ERSTATTUNG) // - .hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) // - .hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) // - .hasNotPassed(Events.RETOURE_ENDE) // - .hasNotPassed(ManualTasks.WARE_EINSORTIEREN) // - .hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) // - .hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) // - .hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) // - .hasNotPassed(UserTasks.PAKET_PACKEN) // - .hasNotPassed(UserTasks.PAKET_PRUEFEN) // - .hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) // - .hasNotPassed(UserTasks.PAKET_SENDEN) // - .hasNotPassed(Gateways.GATEWAY_AUSPACKEN) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) // - .hasNotPassed(Gateways.GATEWAY_14EVKAP) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) // - .hasNotPassed(UserTasks.WARE_SPENDEN) // - .isNotEnded(); // - - Map<String, Object> variableSnapshot0 = runtimeService() // - .getVariables(processInstance.getId()); // - List<LockedExternalTask> lockedTasks0 = lockTasks("customer"); - complete(getLockedTask(lockedTasks0, ServiceTasks.KUNDENDATEN_ERMITTELN), ExternalServiceMockProvider.customerProvider(variableSnapshot0)); - - assertThat(processInstance) // - .hasPassed(Events.RETOURE_START) // - .hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT) // - .hasPassed(UserTasks.WARENDATEN_ERFASSEN) // - .hasPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) // - .hasPassed(Gateways.GATEWAY_VERNICHTUNG) // - .hasPassed(UserTasks.WARE_VERNICHTEN) // - .hasPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) // - .hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) // - .hasPassed(Gateways.GATEWAY_NEUSENDUNG) // - .hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) // - .hasNotPassed(ServiceTasks.ERSTATTUNG) // - .hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) // - .hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) // - .hasNotPassed(Events.RETOURE_ENDE) // - .hasNotPassed(ManualTasks.WARE_EINSORTIEREN) // - .hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) // - .hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) // - .hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) // - .hasNotPassed(UserTasks.PAKET_PACKEN) // - .hasNotPassed(UserTasks.PAKET_PRUEFEN) // - .hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) // - .hasNotPassed(UserTasks.PAKET_SENDEN) // - .hasNotPassed(Gateways.GATEWAY_AUSPACKEN) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) // - .hasNotPassed(Gateways.GATEWAY_14EVKAP) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) // - .hasNotPassed(UserTasks.WARE_SPENDEN) // - .isNotEnded(); // - - Map<String, Object> variableSnapshot1 = runtimeService() // - .getVariables(processInstance.getId()); // - variableSnapshot1.put(VAR_SERVICEIDENTIFIER, "getData"); - List<LockedExternalTask> lockedTasks1 = lockTasks(lockedTasks0, "financial"); - complete(getLockedTask(lockedTasks1, ServiceTasks.FINANZDATEN_ERMITTELN), ExternalServiceMockProvider.financialMock(variableSnapshot1)); - - assertThat(processInstance) // - .hasPassed(Events.RETOURE_START) // - .hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT) // - .hasPassed(UserTasks.WARENDATEN_ERFASSEN) // - .hasPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) // - .hasPassed(Gateways.GATEWAY_VERNICHTUNG) // - .hasPassed(UserTasks.WARE_VERNICHTEN) // - .hasPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) // - .hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) // - .hasPassed(Gateways.GATEWAY_NEUSENDUNG) // - .hasPassed(ServiceTasks.FINANZDATEN_ERMITTELN) // - .hasNotPassed(ServiceTasks.ERSTATTUNG) // - .hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) // - .hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) // - .hasNotPassed(Events.RETOURE_ENDE) // - .hasNotPassed(ManualTasks.WARE_EINSORTIEREN) // - .hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) // - .hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) // - .hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) // - .hasNotPassed(UserTasks.PAKET_PACKEN) // - .hasNotPassed(UserTasks.PAKET_PRUEFEN) // - .hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) // - .hasNotPassed(UserTasks.PAKET_SENDEN) // - .hasNotPassed(Gateways.GATEWAY_AUSPACKEN) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) // - .hasNotPassed(Gateways.GATEWAY_14EVKAP) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) // - .hasNotPassed(UserTasks.WARE_SPENDEN) // - .isNotEnded(); // - - Map<String, Object> variableSnapshot2 = runtimeService() // - .getVariables(processInstance.getId()); // - variableSnapshot2.put(VAR_SERVICEIDENTIFIER, "refund"); - List<LockedExternalTask> lockedTasks2 = lockTasks(lockedTasks1, "financial"); - complete(getLockedTask(lockedTasks2, ServiceTasks.ERSTATTUNG), ExternalServiceMockProvider.financialMock(variableSnapshot2)); - - assertThat(processInstance) // - .hasPassed(Events.RETOURE_START) // - .hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT) // - .hasPassed(UserTasks.WARENDATEN_ERFASSEN) // - .hasPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) // - .hasPassed(Gateways.GATEWAY_VERNICHTUNG) // - .hasPassed(UserTasks.WARE_VERNICHTEN) // - .hasPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) // - .hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) // - .hasPassed(Gateways.GATEWAY_NEUSENDUNG) // - .hasPassed(ServiceTasks.FINANZDATEN_ERMITTELN) // - .hasPassed(ServiceTasks.ERSTATTUNG) // - .hasPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) // - .hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) // - .hasPassed(Events.RETOURE_ENDE) // - .hasNotPassed(ManualTasks.WARE_EINSORTIEREN) // - .hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) // - .hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) // - .hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) // - .hasNotPassed(UserTasks.PAKET_PACKEN) // - .hasNotPassed(UserTasks.PAKET_PRUEFEN) // - .hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) // - .hasNotPassed(UserTasks.PAKET_SENDEN) // - .hasNotPassed(Gateways.GATEWAY_AUSPACKEN) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) // - .hasNotPassed(Gateways.GATEWAY_14EVKAP) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) // - .hasNotPassed(UserTasks.WARE_SPENDEN) // - .isEnded() // - .variables() // - .contains(entry(VAR_KUNDENNUMMER, "C-123A456"), entry(VAR_EMAILGESENDET, "Nein"), entry(VAR_MARKE, "Luxury Foot"), entry(VAR_IBAN, "DE12345678900000123456"), entry(VAR_VORNAME, "Max"), entry(VAR_ERSTATTUNG, true), entry(VAR_NACHNAME, "Mustermann"), entry(VAR_BESCHAEDIGT, true)); // - - } - - @Test - @Deployment(resources = {"retoure.bpmn", "\\schuh_vernichtung_spende.dmn"}) - public void casetill1() { - - ProcessInstance processInstance = runtimeService() // - .startProcessInstanceByKey("Retoure", withVariables(VAR_BESCHAEDIGT, true, VAR_ERSTATTUNG, true, VAR_KUNDENNUMMER, "123")); // - - assertThat(processInstance) // - .isStarted() // - .hasPassed(Events.RETOURE_START) // - .hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT) // - .hasPassed(ManualTasks.WARE_EINSORTIEREN) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) // - .hasNotPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) // - .hasNotPassed(Gateways.GATEWAY_NEUSENDUNG) // - .hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) // - .hasNotPassed(ServiceTasks.ERSTATTUNG) // - .hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) // - .hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) // - .hasNotPassed(Events.RETOURE_ENDE) // - .hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) // - .hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) // - .hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) // - .hasNotPassed(UserTasks.PAKET_PACKEN) // - .hasNotPassed(UserTasks.PAKET_PRUEFEN) // - .hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) // - .hasNotPassed(UserTasks.PAKET_SENDEN) // - .hasNotPassed(Gateways.GATEWAY_AUSPACKEN) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) // - .hasNotPassed(Gateways.GATEWAY_14EVKAP) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) // - .hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) // - .hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) // - .hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) // - .hasNotPassed(UserTasks.WARE_VERNICHTEN) // - .hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) // - .hasNotPassed(UserTasks.WARE_SPENDEN) // - .isNotEnded(); // - - Map<String, Object> variableSnapshot0 = runtimeService() // - .getVariables(processInstance.getId()); // - List<LockedExternalTask> lockedTasks0 = lockTasks("customer"); - complete(getLockedTask(lockedTasks0, ServiceTasks.KUNDENDATEN_ERMITTELN), ExternalServiceMockProvider.customerProvider(variableSnapshot0)); - - assertThat(processInstance) // - .hasPassed(Events.RETOURE_START) // - .hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT) // - .hasPassed(ManualTasks.WARE_EINSORTIEREN) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) // - .hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) // - .hasPassed(Gateways.GATEWAY_NEUSENDUNG) // - .hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) // - .hasNotPassed(ServiceTasks.ERSTATTUNG) // - .hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) // - .hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) // - .hasNotPassed(Events.RETOURE_ENDE) // - .hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) // - .hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) // - .hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) // - .hasNotPassed(UserTasks.PAKET_PACKEN) // - .hasNotPassed(UserTasks.PAKET_PRUEFEN) // - .hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) // - .hasNotPassed(UserTasks.PAKET_SENDEN) // - .hasNotPassed(Gateways.GATEWAY_AUSPACKEN) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) // - .hasNotPassed(Gateways.GATEWAY_14EVKAP) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) // - .hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) // - .hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) // - .hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) // - .hasNotPassed(UserTasks.WARE_VERNICHTEN) // - .hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) // - .hasNotPassed(UserTasks.WARE_SPENDEN) // - .isNotEnded(); // - - Map<String, Object> variableSnapshot1 = runtimeService() // - .getVariables(processInstance.getId()); // - variableSnapshot1.put(VAR_SERVICEIDENTIFIER, "getData"); - List<LockedExternalTask> lockedTasks1 = lockTasks(lockedTasks0, "financial"); - complete(getLockedTask(lockedTasks1, ServiceTasks.FINANZDATEN_ERMITTELN), ExternalServiceMockProvider.financialMock(variableSnapshot1)); - - assertThat(processInstance) // - .hasPassed(Events.RETOURE_START) // - .hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT) // - .hasPassed(ManualTasks.WARE_EINSORTIEREN) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) // - .hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) // - .hasPassed(Gateways.GATEWAY_NEUSENDUNG) // - .hasPassed(ServiceTasks.FINANZDATEN_ERMITTELN) // - .hasNotPassed(ServiceTasks.ERSTATTUNG) // - .hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) // - .hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) // - .hasNotPassed(Events.RETOURE_ENDE) // - .hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) // - .hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) // - .hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) // - .hasNotPassed(UserTasks.PAKET_PACKEN) // - .hasNotPassed(UserTasks.PAKET_PRUEFEN) // - .hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) // - .hasNotPassed(UserTasks.PAKET_SENDEN) // - .hasNotPassed(Gateways.GATEWAY_AUSPACKEN) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) // - .hasNotPassed(Gateways.GATEWAY_14EVKAP) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) // - .hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) // - .hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) // - .hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) // - .hasNotPassed(UserTasks.WARE_VERNICHTEN) // - .hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) // - .hasNotPassed(UserTasks.WARE_SPENDEN) // - .isNotEnded(); // - - Map<String, Object> variableSnapshot2 = runtimeService() // - .getVariables(processInstance.getId()); // - variableSnapshot2.put(VAR_SERVICEIDENTIFIER, "refund"); - List<LockedExternalTask> lockedTasks2 = lockTasks(lockedTasks1, "financial"); - complete(getLockedTask(lockedTasks2, ServiceTasks.ERSTATTUNG), ExternalServiceMockProvider.financialMock(variableSnapshot2)); - - assertThat(processInstance) // - .hasPassed(Events.RETOURE_START) // - .hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT) // - .hasPassed(ManualTasks.WARE_EINSORTIEREN) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) // - .hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) // - .hasPassed(Gateways.GATEWAY_NEUSENDUNG) // - .hasPassed(ServiceTasks.FINANZDATEN_ERMITTELN) // - .hasPassed(ServiceTasks.ERSTATTUNG) // - .hasPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) // - .hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) // - .hasPassed(Events.RETOURE_ENDE) // - .hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) // - .hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) // - .hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) // - .hasNotPassed(UserTasks.PAKET_PACKEN) // - .hasNotPassed(UserTasks.PAKET_PRUEFEN) // - .hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) // - .hasNotPassed(UserTasks.PAKET_SENDEN) // - .hasNotPassed(Gateways.GATEWAY_AUSPACKEN) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) // - .hasNotPassed(Gateways.GATEWAY_14EVKAP) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) // - .hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) // - .hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) // - .hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) // - .hasNotPassed(UserTasks.WARE_VERNICHTEN) // - .hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) // - .hasNotPassed(UserTasks.WARE_SPENDEN) // - .isEnded() // - .variables() // - .contains(entry(VAR_IBANREFUND, "DE80123084556"), entry(VAR_FIRSTNAME, "Till"), entry(VAR_VORNAME, "till"), entry(VAR_LASTNAME, "Brinkhus"), entry(VAR_SERVICEIDENTIFIER, "getData"), entry(VAR_BESCHAEDIGT, false), entry(VAR_KUNDENNUMMER, "123"), entry(VAR_EMAILGESENDET, "Ja"), entry(VAR_PREIS, 1234), entry(VAR_MARKE, "wer"), entry(VAR_IBAN, "DE80123084556"), entry(VAR_ERSTATTUNG, true), entry(VAR_CONFIRMATIONEMAILSENT, "Ja"), entry(VAR_NACHNAME, "Brinkhus"), entry(VAR_PAKETTYP, "Normalverpackung"), entry(VAR_PAKET, true)); // - - } - - @Test - @Deployment(resources = {"retoure.bpmn", "\\schuh_vernichtung_spende.dmn"}) - public void casetill2() { - - ProcessInstance processInstance = runtimeService() // - .startProcessInstanceByKey("Retoure", withVariables(VAR_BESCHAEDIGT, true, VAR_ERSTATTUNG, true, VAR_KUNDENNUMMER, "12345")); // - - assertThat(processInstance) // - .isStarted() // - .hasPassed(Events.RETOURE_START) // - .hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT) // - .hasPassed(ManualTasks.WARE_EINSORTIEREN) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) // - .hasNotPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) // - .hasNotPassed(Gateways.GATEWAY_NEUSENDUNG) // - .hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) // - .hasNotPassed(ServiceTasks.ERSTATTUNG) // - .hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) // - .hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) // - .hasNotPassed(Events.RETOURE_ENDE) // - .hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) // - .hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) // - .hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) // - .hasNotPassed(UserTasks.PAKET_PACKEN) // - .hasNotPassed(UserTasks.PAKET_PRUEFEN) // - .hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) // - .hasNotPassed(UserTasks.PAKET_SENDEN) // - .hasNotPassed(Gateways.GATEWAY_AUSPACKEN) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) // - .hasNotPassed(Gateways.GATEWAY_14EVKAP) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) // - .hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) // - .hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) // - .hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) // - .hasNotPassed(UserTasks.WARE_VERNICHTEN) // - .hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) // - .hasNotPassed(UserTasks.WARE_SPENDEN) // - .isNotEnded(); // - - Map<String, Object> variableSnapshot0 = runtimeService() // - .getVariables(processInstance.getId()); // - List<LockedExternalTask> lockedTasks0 = lockTasks("customer"); - complete(getLockedTask(lockedTasks0, ServiceTasks.KUNDENDATEN_ERMITTELN), ExternalServiceMockProvider.customerProvider(variableSnapshot0)); - - assertThat(processInstance) // - .hasPassed(Events.RETOURE_START) // - .hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT) // - .hasPassed(ManualTasks.WARE_EINSORTIEREN) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) // - .hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) // - .hasPassed(Gateways.GATEWAY_NEUSENDUNG) // - .hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) // - .hasNotPassed(ServiceTasks.ERSTATTUNG) // - .hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) // - .hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) // - .hasNotPassed(Events.RETOURE_ENDE) // - .hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) // - .hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) // - .hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) // - .hasNotPassed(UserTasks.PAKET_PACKEN) // - .hasNotPassed(UserTasks.PAKET_PRUEFEN) // - .hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) // - .hasNotPassed(UserTasks.PAKET_SENDEN) // - .hasNotPassed(Gateways.GATEWAY_AUSPACKEN) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) // - .hasNotPassed(Gateways.GATEWAY_14EVKAP) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) // - .hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) // - .hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) // - .hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) // - .hasNotPassed(UserTasks.WARE_VERNICHTEN) // - .hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) // - .hasNotPassed(UserTasks.WARE_SPENDEN) // - .isNotEnded(); // - - Map<String, Object> variableSnapshot1 = runtimeService() // - .getVariables(processInstance.getId()); // - variableSnapshot1.put(VAR_SERVICEIDENTIFIER, "getData"); - List<LockedExternalTask> lockedTasks1 = lockTasks(lockedTasks0, "financial"); - complete(getLockedTask(lockedTasks1, ServiceTasks.FINANZDATEN_ERMITTELN), ExternalServiceMockProvider.financialMock(variableSnapshot1)); - - assertThat(processInstance) // - .hasPassed(Events.RETOURE_START) // - .hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT) // - .hasPassed(ManualTasks.WARE_EINSORTIEREN) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) // - .hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) // - .hasPassed(Gateways.GATEWAY_NEUSENDUNG) // - .hasPassed(ServiceTasks.FINANZDATEN_ERMITTELN) // - .hasNotPassed(ServiceTasks.ERSTATTUNG) // - .hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) // - .hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) // - .hasNotPassed(Events.RETOURE_ENDE) // - .hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) // - .hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) // - .hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) // - .hasNotPassed(UserTasks.PAKET_PACKEN) // - .hasNotPassed(UserTasks.PAKET_PRUEFEN) // - .hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) // - .hasNotPassed(UserTasks.PAKET_SENDEN) // - .hasNotPassed(Gateways.GATEWAY_AUSPACKEN) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) // - .hasNotPassed(Gateways.GATEWAY_14EVKAP) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) // - .hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) // - .hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) // - .hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) // - .hasNotPassed(UserTasks.WARE_VERNICHTEN) // - .hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) // - .hasNotPassed(UserTasks.WARE_SPENDEN) // - .isNotEnded(); // - - Map<String, Object> variableSnapshot2 = runtimeService() // - .getVariables(processInstance.getId()); // - variableSnapshot2.put(VAR_SERVICEIDENTIFIER, "refund"); - List<LockedExternalTask> lockedTasks2 = lockTasks(lockedTasks1, "financial"); - complete(getLockedTask(lockedTasks2, ServiceTasks.ERSTATTUNG), ExternalServiceMockProvider.financialMock(variableSnapshot2)); - - assertThat(processInstance) // - .hasPassed(Events.RETOURE_START) // - .hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT) // - .hasPassed(ManualTasks.WARE_EINSORTIEREN) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) // - .hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) // - .hasPassed(Gateways.GATEWAY_NEUSENDUNG) // - .hasPassed(ServiceTasks.FINANZDATEN_ERMITTELN) // - .hasPassed(ServiceTasks.ERSTATTUNG) // - .hasPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) // - .hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) // - .hasPassed(Events.RETOURE_ENDE) // - .hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) // - .hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) // - .hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) // - .hasNotPassed(UserTasks.PAKET_PACKEN) // - .hasNotPassed(UserTasks.PAKET_PRUEFEN) // - .hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) // - .hasNotPassed(UserTasks.PAKET_SENDEN) // - .hasNotPassed(Gateways.GATEWAY_AUSPACKEN) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) // - .hasNotPassed(Gateways.GATEWAY_14EVKAP) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) // - .hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) // - .hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) // - .hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) // - .hasNotPassed(UserTasks.WARE_VERNICHTEN) // - .hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) // - .hasNotPassed(UserTasks.WARE_SPENDEN) // - .isEnded(); // - - } - - @Test - @Deployment(resources = {"retoure.bpmn", "\\schuh_vernichtung_spende.dmn"}) - public void TestHenninh() { - - ProcessInstance processInstance = runtimeService() // - .startProcessInstanceByKey("Retoure"); // - - assertThat(processInstance) // - .isStarted() // - .hasPassed(Events.RETOURE_START) // - .hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT) // - .hasPassed(ManualTasks.WARE_EINSORTIEREN) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) // - .hasNotPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) // - .hasNotPassed(Gateways.GATEWAY_NEUSENDUNG) // - .hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) // - .hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) // - .hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) // - .hasNotPassed(UserTasks.PAKET_PACKEN) // - .hasNotPassed(UserTasks.PAKET_PRUEFEN) // - .hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) // - .hasNotPassed(UserTasks.PAKET_SENDEN) // - .hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) // - .hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) // - .hasNotPassed(Events.RETOURE_ENDE) // - .hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) // - .hasNotPassed(ServiceTasks.ERSTATTUNG) // - .hasNotPassed(Gateways.GATEWAY_AUSPACKEN) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) // - .hasNotPassed(Gateways.GATEWAY_14EVKAP) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) // - .hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) // - .hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) // - .hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) // - .hasNotPassed(UserTasks.WARE_VERNICHTEN) // - .hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) // - .hasNotPassed(UserTasks.WARE_SPENDEN) // - .isNotEnded(); // - - Map<String, Object> variableSnapshot0 = runtimeService() // - .getVariables(processInstance.getId()); // - List<LockedExternalTask> lockedTasks0 = lockTasks("customer"); - complete(getLockedTask(lockedTasks0, ServiceTasks.KUNDENDATEN_ERMITTELN), ExternalServiceMockProvider.customerProvider(variableSnapshot0)); - - assertThat(processInstance) // - .hasPassed(Events.RETOURE_START) // - .hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT) // - .hasPassed(ManualTasks.WARE_EINSORTIEREN) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) // - .hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) // - .hasPassed(Gateways.GATEWAY_NEUSENDUNG) // - .hasNotPassed(UserTasks.MANUELLE_PRUEFUNG) // - .hasNotPassed(ServiceTasks.WARENNUMMER_ERMITTELN) // - .hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) // - .hasNotPassed(UserTasks.PAKET_PACKEN) // - .hasNotPassed(UserTasks.PAKET_PRUEFEN) // - .hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) // - .hasNotPassed(UserTasks.PAKET_SENDEN) // - .hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) // - .hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) // - .hasNotPassed(Events.RETOURE_ENDE) // - .hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) // - .hasNotPassed(ServiceTasks.ERSTATTUNG) // - .hasNotPassed(Gateways.GATEWAY_AUSPACKEN) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) // - .hasNotPassed(Gateways.GATEWAY_14EVKAP) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) // - .hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) // - .hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) // - .hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) // - .hasNotPassed(UserTasks.WARE_VERNICHTEN) // - .hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) // - .hasNotPassed(UserTasks.WARE_SPENDEN) // - .isNotEnded(); // - - complete(task(UserTasks.MANUELLE_PRUEFUNG)); - - assertThat(processInstance) // - .hasPassed(Events.RETOURE_START) // - .hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT) // - .hasPassed(ManualTasks.WARE_EINSORTIEREN) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) // - .hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) // - .hasPassed(Gateways.GATEWAY_NEUSENDUNG) // - .hasPassed(UserTasks.MANUELLE_PRUEFUNG) // - .hasPassed(ServiceTasks.WARENNUMMER_ERMITTELN) // - .hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) // - .hasNotPassed(UserTasks.PAKET_PACKEN) // - .hasNotPassed(UserTasks.PAKET_PRUEFEN) // - .hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) // - .hasNotPassed(UserTasks.PAKET_SENDEN) // - .hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) // - .hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) // - .hasNotPassed(Events.RETOURE_ENDE) // - .hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) // - .hasNotPassed(ServiceTasks.ERSTATTUNG) // - .hasNotPassed(Gateways.GATEWAY_AUSPACKEN) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) // - .hasNotPassed(Gateways.GATEWAY_14EVKAP) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) // - .hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) // - .hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) // - .hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) // - .hasNotPassed(UserTasks.WARE_VERNICHTEN) // - .hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) // - .hasNotPassed(UserTasks.WARE_SPENDEN) // - .isNotEnded(); // - - complete(task(UserTasks.PAKET_PACKEN)); - - assertThat(processInstance) // - .hasPassed(Events.RETOURE_START) // - .hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT) // - .hasPassed(ManualTasks.WARE_EINSORTIEREN) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) // - .hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) // - .hasPassed(Gateways.GATEWAY_NEUSENDUNG) // - .hasPassed(UserTasks.MANUELLE_PRUEFUNG) // - .hasPassed(ServiceTasks.WARENNUMMER_ERMITTELN) // - .hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) // - .hasPassed(UserTasks.PAKET_PACKEN) // - .hasNotPassed(UserTasks.PAKET_PRUEFEN) // - .hasNotPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) // - .hasNotPassed(UserTasks.PAKET_SENDEN) // - .hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) // - .hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) // - .hasNotPassed(Events.RETOURE_ENDE) // - .hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) // - .hasNotPassed(ServiceTasks.ERSTATTUNG) // - .hasNotPassed(Gateways.GATEWAY_AUSPACKEN) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) // - .hasNotPassed(Gateways.GATEWAY_14EVKAP) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) // - .hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) // - .hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) // - .hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) // - .hasNotPassed(UserTasks.WARE_VERNICHTEN) // - .hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) // - .hasNotPassed(UserTasks.WARE_SPENDEN) // - .isNotEnded(); // - - complete(task(UserTasks.PAKET_PRUEFEN)); - - assertThat(processInstance) // - .hasPassed(Events.RETOURE_START) // - .hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT) // - .hasPassed(ManualTasks.WARE_EINSORTIEREN) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) // - .hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) // - .hasPassed(Gateways.GATEWAY_NEUSENDUNG) // - .hasPassed(UserTasks.MANUELLE_PRUEFUNG) // - .hasPassed(ServiceTasks.WARENNUMMER_ERMITTELN) // - .hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) // - .hasPassed(UserTasks.PAKET_PACKEN) // - .hasPassed(UserTasks.PAKET_PRUEFEN) // - .hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) // - .hasNotPassed(UserTasks.PAKET_SENDEN) // - .hasNotPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) // - .hasNotPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) // - .hasNotPassed(Events.RETOURE_ENDE) // - .hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) // - .hasNotPassed(ServiceTasks.ERSTATTUNG) // - .hasNotPassed(Gateways.GATEWAY_AUSPACKEN) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) // - .hasNotPassed(Gateways.GATEWAY_14EVKAP) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) // - .hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) // - .hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) // - .hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) // - .hasNotPassed(UserTasks.WARE_VERNICHTEN) // - .hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) // - .hasNotPassed(UserTasks.WARE_SPENDEN) // - .isNotEnded(); // - - complete(task(UserTasks.PAKET_SENDEN)); - - assertThat(processInstance) // - .hasPassed(Events.RETOURE_START) // - .hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT) // - .hasPassed(ManualTasks.WARE_EINSORTIEREN) // - .hasPassed(Gateways.GATEWAY_BESCHAEDIGT_CLOSE) // - .hasPassed(ServiceTasks.KUNDENDATEN_ERMITTELN) // - .hasPassed(Gateways.GATEWAY_NEUSENDUNG) // - .hasPassed(UserTasks.MANUELLE_PRUEFUNG) // - .hasPassed(ServiceTasks.WARENNUMMER_ERMITTELN) // - .hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT_CLOSED) // - .hasPassed(UserTasks.PAKET_PACKEN) // - .hasPassed(UserTasks.PAKET_PRUEFEN) // - .hasPassed(Gateways.GATEWAY_EINPACKUNG_FEHLERHAFT) // - .hasPassed(UserTasks.PAKET_SENDEN) // - .hasPassed(Gateways.GATEWAY_NEUSENDUNG_CLOSED) // - .hasPassed(Gateways.GATEWAY_PARALLEL_LAGER_NEUSENDUNG_CLOSED) // - .hasPassed(Events.RETOURE_ENDE) // - .hasNotPassed(ServiceTasks.FINANZDATEN_ERMITTELN) // - .hasNotPassed(ServiceTasks.ERSTATTUNG) // - .hasNotPassed(Gateways.GATEWAY_AUSPACKEN) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_NORMAL) // - .hasNotPassed(Gateways.GATEWAY_14EVKAP) // - .hasNotPassed(ManualTasks.WARE_AUSPACKEN_LUXUS) // - .hasNotPassed(UserTasks.WARENDATEN_ERFASSEN) // - .hasNotPassed(BusinessRuleTasks.VERNICHTUNG_ERMITTELN) // - .hasNotPassed(Gateways.GATEWAY_VERNICHTUNG) // - .hasNotPassed(UserTasks.WARE_VERNICHTEN) // - .hasNotPassed(Gateways.GATEWAY_VERNICHTUNG_CLOSE) // - .hasNotPassed(UserTasks.WARE_SPENDEN) // - .isEnded(); // - } } diff --git a/OnlineSchuhDemo/src/main/resources/backup/MatchingTestcollectionOld.bpmn-testgen b/OnlineSchuhDemo/src/main/resources/backup/MatchingTestcollectionOld.bpmn-testgen new file mode 100644 index 0000000000000000000000000000000000000000..573d0905a7227d2d6dcfc94565f5346c053e65dc --- /dev/null +++ b/OnlineSchuhDemo/src/main/resources/backup/MatchingTestcollectionOld.bpmn-testgen @@ -0,0 +1,165 @@ +BPMNDiagram process +with testpackage "de.sample.onlineschuhdemo" with bpmn "retoure.bpmn" with key "Retoure" with dmn : [ "\\schuh_vernichtung_spende.dmn" ] with embedded : [ "\\forms\\warendaten-erfassen-form.html" ] ; + +Loop Loop0 +starts with "Gateway_Einpackung_Fehlerhaft" +follows by "Gateway_Auspacken" +ends with "Gateway_Einpackung_Fehlerhaft_Closed" +has complexity 2 passed : [ 0 , 1 ] ; + +FlowElement Retoure_Start : StartEvent with inputVariables : [ kundennummer , erstattung , beschaedigt ] ; +FlowElement Flow_Start : SequenceFlow ; +FlowElement Gateway_Parallel_Lager_Neusendung : Gateway ; +FlowElement Flow_0eh02jo : SequenceFlow ; +FlowElement Gateway_Beschaedigt : Gateway ; +FlowElement Flow_unbeschaedigt : SequenceFlow ; +FlowElement Ware_einsortieren : ManualTask ; +FlowElement Flow_0a9rzst : SequenceFlow ; +FlowElement New_Task_1 : ManualTask ; +FlowElement Flow_New_1 : SequenceFlow ; +FlowElement Gateway_Beschaedigt_Close : Gateway ; +FlowElement Flow_1c2tfla : SequenceFlow ; +FlowElement Flow_1gu0k49 : SequenceFlow ; +FlowElement Kundendaten_ermitteln : ServiceTask with external : customer ; +FlowElement Flow_0iibopi : SequenceFlow ; +FlowElement Gateway_Neusendung : Gateway ; +FlowElement Flow_Erstattung : SequenceFlow with expression : "#{erstattung}" ; +FlowElement Finanzdaten_ermitteln : ServiceTask with external : financial with hardcoded inputs : [ serviceIdentifier = "getData" ] ; +FlowElement Flow_Erstattung_Datenermittlung : SequenceFlow ; +FlowElement Erstattung : ServiceTask with external : financial with hardcoded inputs : [ serviceIdentifier = "refund" ] ; +FlowElement Flow_Erstattung_abgeschlossen : SequenceFlow ; +FlowElement New_Task_2 : ManualTask ; +FlowElement New_Flow_2 : ManualTask ; +FlowElement Gateway_Neusendung_Closed : Gateway ; +FlowElement Flow_0m33odz : SequenceFlow ; +FlowElement Gateway_Parallel_Lager_Neusendung_Closed : Gateway ; +FlowElement Flow_Ende : SequenceFlow ; +FlowElement Retoure_Ende : EndEvent ; +FlowElement Flow_neusenden : SequenceFlow ; +FlowElement Manuelle_Pruefung : UserTask ; +FlowElement Flow_0u77zm0 : SequenceFlow ; +FlowElement Warennummer_ermitteln : ServiceTask with delegate : "warennummer" ; +FlowElement Flow_03ubi3l : SequenceFlow ; +FlowElement Gateway_Einpackung_Fehlerhaft_Closed : Gateway ; +FlowElement Flow_006t3wo : SequenceFlow ; +FlowElement Paket_packen : UserTask with inputVariables : [ pakettyp ] ; +FlowElement Flow_0bhr7g8 : SequenceFlow ; +FlowElement Paket_pruefen : UserTask with inputVariables : [ paket ] ; +FlowElement Flow_1n6o3h6 : SequenceFlow ; +FlowElement Gateway_Einpackung_Fehlerhaft : Gateway ; +FlowElement Flow_paket_okay : SequenceFlow ; +FlowElement Paket_senden : UserTask ; +FlowElement Flow_0u4n4gn : SequenceFlow ; +FlowElement Flow_fehlerhaft_eingepackt : SequenceFlow with expression : "#{paket==false}" ; +FlowElement Gateway_Auspacken : Gateway ; +FlowElement Flow_normal_auspacken : SequenceFlow with expression : "#{pakettyp==\"Normalverpackung\"}" ; +FlowElement Ware_auspacken_normal : ManualTask ; +FlowElement Flow_0d8lhxo : SequenceFlow ; +FlowElement Gateway_14evkap : Gateway ; +FlowElement Flow_1bnro90 : SequenceFlow ; +FlowElement Flow_luxus_auspacken : SequenceFlow with expression : "#{pakettyp==\"Luxusverpackung\"}" ; +FlowElement Ware_auspacken_luxus : ManualTask ; +FlowElement Flow_04tyvq1 : SequenceFlow ; +FlowElement Flow_beschaedigt : SequenceFlow with expression : "#{beschaedigt == true}" ; +FlowElement Warendaten_erfassen : UserTask with inputVariables : [ marke , preis ] ; +FlowElement Flow_01lf19r : SequenceFlow ; +FlowElement Vernichtung_ermitteln : BusinessRuleTask ; +FlowElement Flow_0kgxxke : SequenceFlow ; +FlowElement Gateway_Vernichtung : Gateway ; +FlowElement Flow_vernichten : SequenceFlow with expression : "#{vernichten == true}" ; +FlowElement Ware_vernichten : UserTask ; +FlowElement Flow_0zkq7z5 : SequenceFlow ; +FlowElement Gateway_Vernichtung_Close : Gateway ; +FlowElement Flow_14jbtgw : SequenceFlow ; +FlowElement Flow_spenden : SequenceFlow with expression : "#{vernichten == false}" ; +FlowElement Ware_spenden : UserTask ; +FlowElement Flow_0f171gg : SequenceFlow ; + +String kundennummer with proposals : [ ] ; +String marke with proposals : [ "Luxury Foot" , "Simply Shoe" , "Shoe One" ] ; +String iban with proposals : [ ] ; +String vorname with proposals : [ ] ; +String nachname with proposals : [ ] ; +String pakettyp with proposals : [ "Normalverpackung" , "Luxusverpackung" ] ; +String emailGesendet with proposals : [ ] ; +String firstname with proposals : [ ] ; +String lastname with proposals : [ ] ; +String ibanRefund with proposals : [ ] ; +String confirmationEmailSent with proposals : [ ] ; +String serviceIdentifier with proposals : [ "getData" , "refund" ] ; +Integer preis with proposals : [ 350 , 349 , 70 , 71 ] ; +Boolean erstattung with proposals : [ true , false ] ; +Boolean paket with proposals : [ true , false ] ; +Boolean beschaedigt with proposals : [ true , false ] ; + +ExternalTopic customer ; +ExternalTopic financial ; + +Flow Flow_0 for process +with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , New_Task_1 , Flow_New_1 , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ] +without elements : [ Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , New_Task_2 , New_Flow_2 , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Flow_spenden , Ware_spenden , Flow_0f171gg ] ; +Flow Flow_1 for process +with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , New_Task_1 , Flow_New_1 , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ] +without elements : [ Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , New_Task_2 , New_Flow_2 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Flow_spenden , Ware_spenden , Flow_0f171gg ] ; +Flow Flow_2 for process +with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , New_Task_1 , Flow_New_1 , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Gateway_14evkap , Flow_1bnro90 , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ] +without elements : [ Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , New_Task_2 , New_Flow_2 , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Flow_spenden , Ware_spenden , Flow_0f171gg ] ; +Flow Flow_3 for process +with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , New_Task_1 , Flow_New_1 , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , New_Task_2 , New_Flow_2 , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ] +without elements : [ Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Flow_spenden , Ware_spenden , Flow_0f171gg ] ; +Flow Flow_4 for process +with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , New_Task_2 , New_Flow_2 , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ] +without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , New_Task_1 , Flow_New_1 , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_spenden , Ware_spenden , Flow_0f171gg ] ; +Flow Flow_5 for process +with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ] +without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , New_Task_1 , Flow_New_1 , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , New_Task_2 , New_Flow_2 , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_spenden , Ware_spenden , Flow_0f171gg ] ; +Flow Flow_6 for process +with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ] +without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , New_Task_1 , Flow_New_1 , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , New_Task_2 , New_Flow_2 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_spenden , Ware_spenden , Flow_0f171gg ] ; +Flow Flow_7 for process +with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Gateway_14evkap , Flow_1bnro90 , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ] +without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , New_Task_1 , Flow_New_1 , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , New_Task_2 , New_Flow_2 , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Flow_spenden , Ware_spenden , Flow_0f171gg ] ; +Flow Flow_8 for process +with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_spenden , Ware_spenden , Flow_0f171gg , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ] +without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , New_Task_1 , Flow_New_1 , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , New_Task_2 , New_Flow_2 , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 ] ; +Flow Flow_9 for process +with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_spenden , Ware_spenden , Flow_0f171gg , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , New_Task_2 , New_Flow_2 , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ] +without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , New_Task_1 , Flow_New_1 , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 ] ; +Flow Flow_10 for process +with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_spenden , Ware_spenden , Flow_0f171gg , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Gateway_14evkap , Flow_1bnro90 , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ] +without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , New_Task_1 , Flow_New_1 , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , New_Task_2 , New_Flow_2 , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 ] ; +Flow Flow_11 for process +with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_spenden , Ware_spenden , Flow_0f171gg , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ] +without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , New_Task_1 , Flow_New_1 , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , New_Task_2 , New_Flow_2 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 ] ; + +DelegateMock Warennummer_ermitteln for Warennummer_ermitteln with delegate "de.sample.onlineschuhdemo.externalaccess.WarennummerErmittelnDelegate" with manual "de.sample.onlineschuhdemo.externalaccess.LagerService" by setter "setLagerService" ; + +ExternalServiceMock customerProvider for topic customer +with rule : if [ kundennummer == "C-123A456" ] set [ firstname = "Max" , lastname = "Mustermann" ] , +with rule : if [ kundennummer == "C-987A654" ] set [ firstname = "Erika" , lastname = "Mustermann" ] ; + +ExternalServiceMock financialMock for topic financial +with rule : if [ serviceIdentifier == "getData" , kundennummer == "C-123A456" ] set [ ibanRefund = "DE12345678900000123456" ] , +with rule : if [ serviceIdentifier == "getData" , kundennummer == "C-987A654" ] set [ ibanRefund = "DE12345678900000987654" ] , +with rule : if [ serviceIdentifier == "refund" , iban == "DE12345678900000123456" ] set [ confirmationEmailSent = "Nein" ] , +with rule : if [ serviceIdentifier == "refund" ] set [ confirmationEmailSent = "Ja" ] ; + +Test normalverpackungAuspacken for Flow_2 +with variables for Retoure_Start : [ kundennummer = "C-123A456" , erstattung = false , beschaedigt = false ] , +with variables for Paket_packen : [ pakettyp = "Normalverpackung" ] , +with variables for Paket_pruefen : [ paket = false ] , +with variables for Paket_packen : [ pakettyp = "Luxusverpackung" ] , +with variables for Paket_pruefen : [ paket = true ] +with check : [ kundennummer == "C-123A456" , vorname == "Max" , nachname == "Mustermann" , erstattung == false , beschaedigt == false ] +with mocks : [ Warennummer_ermitteln , customerProvider ] ; + +Test vernichtenErstattung for Flow_4 +with variables for Retoure_Start : [ kundennummer = "C-123A456" , erstattung = true , beschaedigt = true ] , +with variables for Warendaten_erfassen : [ marke = "Luxury Foot" , preis = 350 ] +with check : [ kundennummer == "C-123A456" , marke == "Luxury Foot" , iban == "DE12345678900000123456" , vorname == "Max" , nachname == "Mustermann" , emailGesendet == "Nein" , erstattung == true , beschaedigt == true ] +with mocks : [ financialMock , customerProvider ] ; + +Test casetill1 for Flow_0 +with variables for Retoure_Start : [ kundennummer = "123" , erstattung = true , beschaedigt = true ] +with check : [ kundennummer == "123" , marke == "wer" , iban == "DE80123084556" , vorname == "till" , nachname == "Brinkhus" , pakettyp == "Normalverpackung" , emailGesendet == "Ja" , firstname == "Till" , lastname == "Brinkhus" , ibanRefund == "DE80123084556" , confirmationEmailSent == "Ja" , serviceIdentifier == "getData" , preis == 1234 , erstattung == true , paket == true , beschaedigt == false ] +with mocks : [ financialMock , customerProvider ] ; diff --git a/OnlineSchuhDemo/src/test/java/de/sample/onlineschuhdemo/Testcollection.bpmn-testgen b/OnlineSchuhDemo/src/test/java/de/sample/onlineschuhdemo/Testcollection.bpmn-testgen index 73d060453e51cca8edfe8aa4454936aa79b71e78..65994425d9c27d22074eb744bf7875cab7b95d99 100644 --- a/OnlineSchuhDemo/src/test/java/de/sample/onlineschuhdemo/Testcollection.bpmn-testgen +++ b/OnlineSchuhDemo/src/test/java/de/sample/onlineschuhdemo/Testcollection.bpmn-testgen @@ -1,149 +1,174 @@ -BPMNDiagram process -with testpackage "de.sample.onlineschuhdemo" with bpmn "retoure.bpmn" with key "Retoure" with dmn : [ "\\schuh_vernichtung_spende.dmn" ] with embedded : [ "\\forms\\warendaten-erfassen-form.html" ] ; - -Loop Loop0 -starts with "Gateway_Einpackung_Fehlerhaft" -follows by "Gateway_Auspacken" -ends with "Gateway_Einpackung_Fehlerhaft_Closed" -has complexity 2 passed : [ 0 , 1 ] ; - -FlowElement Retoure_Start : StartEvent with inputVariables : [ kundennummer , erstattung , beschaedigt ] ; -FlowElement Flow_Start : SequenceFlow ; -FlowElement Gateway_Parallel_Lager_Neusendung : Gateway ; -FlowElement Flow_0eh02jo : SequenceFlow ; -FlowElement Gateway_Beschaedigt : Gateway ; -FlowElement Flow_unbeschaedigt : SequenceFlow ; -FlowElement Ware_einsortieren : ManualTask ; -FlowElement Flow_0a9rzst : SequenceFlow ; -FlowElement Gateway_Beschaedigt_Close : Gateway ; -FlowElement Flow_1c2tfla : SequenceFlow ; -FlowElement Flow_1gu0k49 : SequenceFlow ; -FlowElement Kundendaten_ermitteln : ServiceTask with external : customer ; -FlowElement Flow_0iibopi : SequenceFlow ; -FlowElement Gateway_Neusendung : Gateway ; -FlowElement Flow_Erstattung : SequenceFlow with expression : "#{erstattung}" ; -FlowElement Finanzdaten_ermitteln : ServiceTask with external : financial with hardcoded inputs : [ serviceIdentifier = "getData" ] ; -FlowElement Flow_Erstattung_Datenermittlung : SequenceFlow ; -FlowElement Erstattung : ServiceTask with external : financial with hardcoded inputs : [ serviceIdentifier = "refund" ] ; -FlowElement Flow_Erstattung_abgeschlossen : SequenceFlow ; -FlowElement Gateway_Neusendung_Closed : Gateway ; -FlowElement Flow_0m33odz : SequenceFlow ; -FlowElement Gateway_Parallel_Lager_Neusendung_Closed : Gateway ; -FlowElement Flow_Ende : SequenceFlow ; -FlowElement Retoure_Ende : EndEvent ; -FlowElement Flow_neusenden : SequenceFlow ; -FlowElement Manuelle_Pruefung : UserTask ; -FlowElement Flow_0u77zm0 : SequenceFlow ; -FlowElement Warennummer_ermitteln : ServiceTask with delegate : "warennummer" ; -FlowElement Flow_03ubi3l : SequenceFlow ; -FlowElement Gateway_Einpackung_Fehlerhaft_Closed : Gateway ; -FlowElement Flow_006t3wo : SequenceFlow ; -FlowElement Paket_packen : UserTask with inputVariables : [ pakettyp ] ; -FlowElement Flow_0bhr7g8 : SequenceFlow ; -FlowElement Paket_pruefen : UserTask with inputVariables : [ paket ] ; -FlowElement Flow_1n6o3h6 : SequenceFlow ; -FlowElement Gateway_Einpackung_Fehlerhaft : Gateway ; -FlowElement Flow_paket_okay : SequenceFlow ; -FlowElement Paket_senden : UserTask ; -FlowElement Flow_0u4n4gn : SequenceFlow ; -FlowElement Flow_fehlerhaft_eingepackt : SequenceFlow with expression : "#{paket==false}" ; -FlowElement Gateway_Auspacken : Gateway ; -FlowElement Flow_normal_auspacken : SequenceFlow with expression : "#{pakettyp==\"Normalverpackung\"}" ; -FlowElement Ware_auspacken_normal : ManualTask ; -FlowElement Flow_0d8lhxo : SequenceFlow ; -FlowElement Gateway_14evkap : Gateway ; -FlowElement Flow_1bnro90 : SequenceFlow ; -FlowElement Flow_luxus_auspacken : SequenceFlow with expression : "#{pakettyp==\"Luxusverpackung\"}" ; -FlowElement Ware_auspacken_luxus : ManualTask ; -FlowElement Flow_04tyvq1 : SequenceFlow ; -FlowElement Flow_beschaedigt : SequenceFlow with expression : "#{beschaedigt == true}" ; -FlowElement Warendaten_erfassen : UserTask with inputVariables : [ marke , preis ] ; -FlowElement Flow_01lf19r : SequenceFlow ; -FlowElement Vernichtung_ermitteln : BusinessRuleTask ; -FlowElement Flow_0kgxxke : SequenceFlow ; -FlowElement Gateway_Vernichtung : Gateway ; -FlowElement Flow_vernichten : SequenceFlow with expression : "#{vernichten == true}" ; -FlowElement Ware_vernichten : UserTask ; -FlowElement Flow_0zkq7z5 : SequenceFlow ; -FlowElement Gateway_Vernichtung_Close : Gateway ; -FlowElement Flow_14jbtgw : SequenceFlow ; -FlowElement Flow_spenden : SequenceFlow with expression : "#{vernichten == false}" ; -FlowElement Ware_spenden : UserTask ; -FlowElement Flow_0f171gg : SequenceFlow ; - -String kundennummer with proposals : [ ] ; -String marke with proposals : [ "Luxury Foot" , "Simply Shoe" , "Shoe One" ] ; -String iban with proposals : [ ] ; -String vorname with proposals : [ ] ; -String nachname with proposals : [ ] ; -String pakettyp with proposals : [ "Normalverpackung" , "Luxusverpackung" ] ; -String emailGesendet with proposals : [ ] ; -String firstname with proposals : [ ] ; -String lastname with proposals : [ ] ; -String ibanRefund with proposals : [ ] ; -String confirmationEmailSent with proposals : [ ] ; -String serviceIdentifier with proposals : [ "getData" , "refund" ] ; -Integer preis with proposals : [ 350 , 349 , 70 , 71 ] ; -Boolean erstattung with proposals : [ true , false ] ; -Boolean paket with proposals : [ true , false ] ; -Boolean beschaedigt with proposals : [ true , false ] ; - -ExternalTopic customer ; -ExternalTopic financial ; - -Flow Flow_0 for process -with elements : [ Flow_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ] -without elements : [ Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Flow_spenden , Ware_spenden , Flow_0f171gg ] ; -Flow Flow_1 for process -with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ] -without elements : [ Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Flow_spenden , Ware_spenden , Flow_0f171gg ] ; -Flow Flow_2 for process -with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ] -without elements : [ Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Flow_spenden , Ware_spenden , Flow_0f171gg ] ; -Flow Flow_3 for process -with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Gateway_14evkap , Flow_1bnro90 , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ] -without elements : [ Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Flow_spenden , Ware_spenden , Flow_0f171gg ] ; -Flow Flow_4 for process -with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ] -without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_spenden , Ware_spenden , Flow_0f171gg ] ; -Flow Flow_5 for process -with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ] -without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_spenden , Ware_spenden , Flow_0f171gg ] ; -Flow Flow_6 for process -with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ] -without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_spenden , Ware_spenden , Flow_0f171gg ] ; -Flow Flow_7 for process -with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Gateway_14evkap , Flow_1bnro90 , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ] -without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Flow_spenden , Ware_spenden , Flow_0f171gg ] ; -Flow Flow_8 for process -with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_spenden , Ware_spenden , Flow_0f171gg , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ] -without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 ] ; -Flow Flow_9 for process -with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_spenden , Ware_spenden , Flow_0f171gg , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ] -without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 ] ; -Flow Flow_10 for process -with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_spenden , Ware_spenden , Flow_0f171gg , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ] -without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 ] ; -Flow Flow_11 for process -with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_spenden , Ware_spenden , Flow_0f171gg , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Gateway_14evkap , Flow_1bnro90 , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ] -without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 ] ; - -DelegateMock Warennummer_ermitteln for Warennummer_ermitteln with delegate "de.sample.onlineschuhdemo.externalaccess.WarennummerErmittelnDelegate" with manual "de.sample.onlineschuhdemo.externalaccess.LagerService" by setter "setLagerService" ; - -ExternalServiceMock customerProvider for topic customer -with rule : if [ kundennummer == "C-123A456" ] set [ firstname = "Max" , lastname = "Mustermann" ] , -with rule : if [ kundennummer == "C-987A654" ] set [ firstname = "Erika" , lastname = "Mustermann" ] ; - -ExternalServiceMock financialMock for topic financial -with rule : if [ serviceIdentifier == "getData" , kundennummer == "C-123A456" ] set [ ibanRefund = "DE12345678900000123456" ] , -with rule : if [ serviceIdentifier == "getData" , kundennummer == "C-987A654" ] set [ ibanRefund = "DE12345678900000987654" ] , -with rule : if [ serviceIdentifier == "refund" , iban == "DE12345678900000123456" ] set [ confirmationEmailSent = "Nein" ] , -with rule : if [ serviceIdentifier == "refund" ] set [ confirmationEmailSent = "Ja" ] ; - -Test TestHenning for Flow_0 -with priority 104 -with check : [ kundennummer == "123123123312" ] with mocks : [ financialMock , customerProvider ] ; - -Test Test2 for Flow_1 -with priority 2 -with variables for Retoure_Start : [ kundennummer = "123132" ] with mocks : [ Warennummer_ermitteln , customerProvider ] ; +BPMNDiagram process +with testpackage "de.sample.onlineschuhdemo" with bpmn "retoure.bpmn" with key "Retoure" with dmn : [ "\\schuh_vernichtung_spende.dmn" ] with embedded : [ "\\forms\\warendaten-erfassen-form.html" ] ; + +Loop Loop0 +starts with "Gateway_Einpackung_Fehlerhaft" +follows by "Gateway_Auspacken" +ends with "Gateway_Einpackung_Fehlerhaft_Closed" +has complexity 2 passed : [ 0 , 1 ] ; + +FlowElement Retoure_Start : StartEvent with inputVariables : [ kundennummer , erstattung , beschaedigt ] ; +FlowElement Flow_Start : SequenceFlow ; +FlowElement Gateway_Parallel_Lager_Neusendung : Gateway ; +FlowElement Flow_0eh02jo : SequenceFlow ; +FlowElement Gateway_Beschaedigt : Gateway ; +FlowElement Flow_unbeschaedigt : SequenceFlow ; +FlowElement Ware_einsortieren : ManualTask ; +FlowElement Flow_0a9rzst : SequenceFlow ; +FlowElement Gateway_Beschaedigt_Close : Gateway ; +FlowElement Flow_1c2tfla : SequenceFlow ; +FlowElement Flow_1gu0k49 : SequenceFlow ; +FlowElement Kundendaten_ermitteln : ServiceTask with external : customer ; +FlowElement Flow_0iibopi : SequenceFlow ; +FlowElement Gateway_Neusendung : Gateway ; +FlowElement Flow_Erstattung : SequenceFlow with expression : "#{erstattung}" ; +FlowElement Finanzdaten_ermitteln : ServiceTask with external : financial with hardcoded inputs : [ serviceIdentifier = "getData" ] ; +FlowElement Flow_Erstattung_Datenermittlung : SequenceFlow ; +FlowElement Erstattung : ServiceTask with external : financial with hardcoded inputs : [ serviceIdentifier = "refund" ] ; +FlowElement Flow_Erstattung_abgeschlossen : SequenceFlow ; +FlowElement Gateway_Neusendung_Closed : Gateway ; +FlowElement Flow_0m33odz : SequenceFlow ; +FlowElement Gateway_Parallel_Lager_Neusendung_Closed : Gateway ; +FlowElement Flow_Ende : SequenceFlow ; +FlowElement Retoure_Ende : EndEvent ; +FlowElement Flow_neusenden : SequenceFlow ; +FlowElement Manuelle_Pruefung : UserTask ; +FlowElement Flow_0u77zm0 : SequenceFlow ; +FlowElement Warennummer_ermitteln : ServiceTask with delegate : "warennummer" ; +FlowElement Flow_03ubi3l : SequenceFlow ; +FlowElement Gateway_Einpackung_Fehlerhaft_Closed : Gateway ; +FlowElement Flow_006t3wo : SequenceFlow ; +FlowElement Paket_packen : UserTask with inputVariables : [ pakettyp ] ; +FlowElement Flow_0bhr7g8 : SequenceFlow ; +FlowElement Paket_pruefen : UserTask with inputVariables : [ paket ] ; +FlowElement Flow_1n6o3h6 : SequenceFlow ; +FlowElement Gateway_Einpackung_Fehlerhaft : Gateway ; +FlowElement Flow_paket_okay : SequenceFlow ; +FlowElement Paket_senden : UserTask ; +FlowElement Flow_0u4n4gn : SequenceFlow ; +FlowElement Flow_fehlerhaft_eingepackt : SequenceFlow with expression : "#{paket==false}" ; +FlowElement Gateway_Auspacken : Gateway ; +FlowElement Flow_normal_auspacken : SequenceFlow with expression : "#{pakettyp==\"Normalverpackung\"}" ; +FlowElement Ware_auspacken_normal : ManualTask ; +FlowElement Flow_0d8lhxo : SequenceFlow ; +FlowElement Gateway_14evkap : Gateway ; +FlowElement Flow_1bnro90 : SequenceFlow ; +FlowElement Flow_luxus_auspacken : SequenceFlow with expression : "#{pakettyp==\"Luxusverpackung\"}" ; +FlowElement Ware_auspacken_luxus : ManualTask ; +FlowElement Flow_04tyvq1 : SequenceFlow ; +FlowElement Flow_beschaedigt : SequenceFlow with expression : "#{beschaedigt == true}" ; +FlowElement Warendaten_erfassen : UserTask with inputVariables : [ marke , preis ] ; +FlowElement Flow_01lf19r : SequenceFlow ; +FlowElement Vernichtung_ermitteln : BusinessRuleTask ; +FlowElement Flow_0kgxxke : SequenceFlow ; +FlowElement Gateway_Vernichtung : Gateway ; +FlowElement Flow_vernichten : SequenceFlow with expression : "#{vernichten == true}" ; +FlowElement Ware_vernichten : UserTask ; +FlowElement Flow_0zkq7z5 : SequenceFlow ; +FlowElement Gateway_Vernichtung_Close : Gateway ; +FlowElement Flow_14jbtgw : SequenceFlow ; +FlowElement Flow_spenden : SequenceFlow with expression : "#{vernichten == false}" ; +FlowElement Ware_spenden : UserTask ; +FlowElement Flow_0f171gg : SequenceFlow ; + +String kundennummer with proposals : [ ] ; +String marke with proposals : [ "Luxury Foot" , "Simply Shoe" , "Shoe One" ] ; +String iban with proposals : [ ] ; +String vorname with proposals : [ ] ; +String nachname with proposals : [ ] ; +String pakettyp with proposals : [ "Normalverpackung" , "Luxusverpackung" ] ; +String emailGesendet with proposals : [ ] ; +String firstname with proposals : [ ] ; +String lastname with proposals : [ ] ; +String ibanRefund with proposals : [ ] ; +String confirmationEmailSent with proposals : [ ] ; +String serviceIdentifier with proposals : [ "getData" , "refund" ] ; +Integer preis with proposals : [ 350 , 349 , 70 , 71 ] ; +Boolean erstattung with proposals : [ true , false ] ; +Boolean paket with proposals : [ true , false ] ; +Boolean beschaedigt with proposals : [ true , false ] ; + +ExternalTopic customer ; +ExternalTopic financial ; + +Flow Flow_0 for process +with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ] +without elements : [ Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Flow_spenden , Ware_spenden , Flow_0f171gg ] ; +Flow Flow_1 for process +with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ] +without elements : [ Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Flow_spenden , Ware_spenden , Flow_0f171gg ] ; +Flow Flow_2 for process +with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ] +without elements : [ Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Flow_spenden , Ware_spenden , Flow_0f171gg ] ; +Flow Flow_3 for process +with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Gateway_14evkap , Flow_1bnro90 , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ] +without elements : [ Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Flow_spenden , Ware_spenden , Flow_0f171gg ] ; +Flow Flow_4 for process +with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ] +without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_spenden , Ware_spenden , Flow_0f171gg ] ; +Flow Flow_5 for process +with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ] +without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_spenden , Ware_spenden , Flow_0f171gg ] ; +Flow Flow_6 for process +with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ] +without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_spenden , Ware_spenden , Flow_0f171gg ] ; +Flow Flow_7 for process +with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Gateway_14evkap , Flow_1bnro90 , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ] +without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Flow_spenden , Ware_spenden , Flow_0f171gg ] ; +Flow Flow_8 for process +with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_spenden , Ware_spenden , Flow_0f171gg , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ] +without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 ] ; +Flow Flow_9 for process +with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_spenden , Ware_spenden , Flow_0f171gg , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ] +without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 ] ; +Flow Flow_10 for process +with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_spenden , Ware_spenden , Flow_0f171gg , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ] +without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 ] ; +Flow Flow_11 for process +with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_spenden , Ware_spenden , Flow_0f171gg , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Gateway_14evkap , Flow_1bnro90 , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ] +without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 ] ; +Flow Flow_12 for process +with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_spenden , Ware_spenden , Flow_0f171gg , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ] +without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , New_Task_1 , Flow_New_1 , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , New_Task_2 , New_Flow_2 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 ] ; +Flow Flow_13 for process +with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_spenden , Ware_spenden , Flow_0f171gg , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Gateway_14evkap , Flow_1bnro90 , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ] +without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , New_Task_1 , Flow_New_1 , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , New_Task_2 , New_Flow_2 , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 ] ; +Flow Flow_14 for process +with elements : [ Retoure_Start , Flow_Start , Gateway_Parallel_Lager_Neusendung , Flow_0eh02jo , Gateway_Beschaedigt , Flow_beschaedigt , Warendaten_erfassen , Flow_01lf19r , Vernichtung_ermitteln , Flow_0kgxxke , Gateway_Vernichtung , Flow_vernichten , Ware_vernichten , Flow_0zkq7z5 , Gateway_Vernichtung_Close , Flow_14jbtgw , Gateway_Beschaedigt_Close , Flow_1c2tfla , Flow_1gu0k49 , Kundendaten_ermitteln , Flow_0iibopi , Gateway_Neusendung , Flow_neusenden , Manuelle_Pruefung , Flow_0u77zm0 , Warennummer_ermitteln , Flow_03ubi3l , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_fehlerhaft_eingepackt , Gateway_Auspacken , Flow_luxus_auspacken , Ware_auspacken_luxus , Flow_04tyvq1 , Gateway_14evkap , Flow_1bnro90 , Gateway_Einpackung_Fehlerhaft_Closed , Flow_006t3wo , Paket_packen , Flow_0bhr7g8 , Paket_pruefen , Flow_1n6o3h6 , Gateway_Einpackung_Fehlerhaft , Flow_paket_okay , Paket_senden , Flow_0u4n4gn , Gateway_Neusendung_Closed , Flow_0m33odz , Gateway_Parallel_Lager_Neusendung_Closed , Flow_Ende , Retoure_Ende ] +without elements : [ Flow_unbeschaedigt , Ware_einsortieren , Flow_0a9rzst , New_Task_1 , Flow_New_1 , Flow_Erstattung , Finanzdaten_ermitteln , Flow_Erstattung_Datenermittlung , Erstattung , Flow_Erstattung_abgeschlossen , New_Task_2 , New_Flow_2 , Flow_normal_auspacken , Ware_auspacken_normal , Flow_0d8lhxo , Flow_spenden , Ware_spenden , Flow_0f171gg ] ; + +DelegateMock Warennummer_ermitteln for Warennummer_ermitteln with delegate "de.sample.onlineschuhdemo.externalaccess.WarennummerErmittelnDelegate" with manual "de.sample.onlineschuhdemo.externalaccess.LagerService" by setter "setLagerService" ; + +ExternalServiceMock customerProvider for topic customer +with rule : if [ kundennummer == "C-123A456" ] set [ firstname = "Max" , lastname = "Mustermann" ] , +with rule : if [ kundennummer == "C-987A654" ] set [ firstname = "Erika" , lastname = "Mustermann" ] ; + +ExternalServiceMock financialMock for topic financial +with rule : if [ serviceIdentifier == "getData" , kundennummer == "C-123A456" ] set [ ibanRefund = "DE12345678900000123456" ] , +with rule : if [ serviceIdentifier == "getData" , kundennummer == "C-987A654" ] set [ ibanRefund = "DE12345678900000987654" ] , +with rule : if [ serviceIdentifier == "refund" , iban == "DE12345678900000123456" ] set [ confirmationEmailSent = "Nein" ] , +with rule : if [ serviceIdentifier == "refund" ] set [ confirmationEmailSent = "Ja" ] ; + +Test normalverpackungAuspacken for Flow_2 +with variables for Retoure_Start : [ kundennummer = "C-123A456" , erstattung = false , beschaedigt = false ] , +with variables for Paket_packen : [ pakettyp = "Normalverpackung" ] , +with variables for Paket_pruefen : [ paket = false ] , +with variables for Paket_packen : [ pakettyp = "Luxusverpackung" ] , +with variables for Paket_pruefen : [ paket = true ] +with check : [ kundennummer == "C-123A456" , vorname == "Max" , nachname == "Mustermann" , erstattung == false , beschaedigt == false ] +with mocks : [ Warennummer_ermitteln , customerProvider ] ; + +Test vernichtenErstattung for Flow_4 +with variables for Retoure_Start : [ kundennummer = "C-123A456" , erstattung = true , beschaedigt = true ] , +with variables for Warendaten_erfassen : [ marke = "Luxury Foot" , preis = 350 ] +with check : [ kundennummer == "C-123A456" , marke == "Luxury Foot" , iban == "DE12345678900000123456" , vorname == "Max" , nachname == "Mustermann" , emailGesendet == "Nein" , erstattung == true , beschaedigt == true ] +with mocks : [ financialMock , customerProvider ] ; + +Test casetill1 for Flow_0 +with variables for Retoure_Start : [ kundennummer = "123" , erstattung = true , beschaedigt = true ] +with check : [ kundennummer == "123" , marke == "wer" , iban == "DE80123084556" , vorname == "till" , nachname == "Brinkhus" , pakettyp == "Normalverpackung" , emailGesendet == "Ja" , firstname == "Till" , lastname == "Brinkhus" , ibanRefund == "DE80123084556" , confirmationEmailSent == "Ja" , serviceIdentifier == "getData" , preis == 1234 , erstattung == true , paket == true , beschaedigt == false ] +with mocks : [ financialMock , customerProvider ] ; + +Test casetill2 for Flow_0 +with variables for Retoure_Start : [ kundennummer = "12345" , erstattung = true , beschaedigt = true ] +with mocks : [ financialMock , customerProvider ] ; diff --git a/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/migration/FlowChangeWrapper.java b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/migration/FlowChangeWrapper.java index 43f943a5600510924a3ae4bcd34980c30865f714..49ec4494b987f3686213daa7b6c04ec4392e0115 100644 --- a/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/migration/FlowChangeWrapper.java +++ b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/migration/FlowChangeWrapper.java @@ -87,9 +87,9 @@ public class FlowChangeWrapper { dto.setFlowElement(flowElementDTO); MigrationResultDTO migrationResultDTO = new MigrationResultDTO(); - migrationResultDTO.setPriority(this.getMigrationResult().getPriority()); migrationResultDTO.setPriority(this.getMigrationResult().getPriority()); + migrationResultDTO.setStatus(this.getMigrationResult().getStatus().name()); dto.setMigrationResult(migrationResultDTO); 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 70a08eb15dfb97e85900d48314f111b932019775..aea5bf6112604eeb16715674ed1e0287ad7bd20a 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 @@ -9,9 +9,13 @@ import javax.annotation.PostConstruct; import org.eclipse.emf.common.util.BasicEList; import org.eclipse.emf.common.util.EList; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import de.fhmuenster.masterthesis.Testgenerator.rest.dto.MigrationResultWrapperDTO; +import de.fhmuenster.masterthesis.Testgenerator.rest.service.change.ChangeService; +import de.fhmuenster.masterthesis.Testgenerator.rest.service.test.TestService; +import de.fhmuenster.masterthesis.Testgenerator.yaml.MigrationResultStatus; import de.fhmuenster.masterthesis.Testgenerator.yaml.MigrationYaml; import de.fhmuenster.masterthesis.Testgenerator.yaml.YamlReader; import de.fhmuenster.masterthesis.serialization.TestgeneratorDSLSerializer; @@ -33,6 +37,9 @@ public class MigrationService { private MigrationYaml yaml; + @Autowired + private ChangeService changeService; + public MigrationService() { } @@ -47,8 +54,6 @@ public class MigrationService { MigrationResultWrapper migrationResultWrapper = new MigrationResultWrapper(); List<FlowChangeWrapper> result = new ArrayList<>(); - //oldDSL.getVariables().get(0). - // 1. Schritt: Prüfen, ob in einem Flow neue Elemente hinzugekommen sind List<FlowChangeWrapper> activityAddActionResults = detectActivityAddActions(oldDSL.getFlows(), newDSL.getFlows()); transferResultsToCorrespondingCategory(migrationResultWrapper, activityAddActionResults); @@ -64,10 +69,20 @@ public class MigrationService { private List<FlowChangeWrapper> detectActivityAddActions(List<Flow> oldFlows, List<Flow> newFlows) { List<FlowChangeWrapper> result = new ArrayList<>(); + + //Flow Matching + Flow [][] matchingFlows = this.changeService.compareFlows(newFlows, oldFlows); + + for(int i=0; i < matchingFlows.length; i++) { + result.addAll(compareFlowsForAddAction(matchingFlows[i][1], matchingFlows[i][0])); + } + //Flows miteinander vergleichen + /* for(int i=0; i < oldFlows.size(); i++) { result.addAll(compareFlowsForAddAction(oldFlows.get(i), newFlows.get(i))); } + */ return result; } @@ -95,12 +110,22 @@ public class MigrationService { for(FlowElementReference e : addedFlowElements) { if(e.getRef() instanceof ManualTaskFlowElement) { - result.add(new FlowChangeWrapper(newFlow, ActionType.ACTIVITY_ADD_MANUAL_TASK, - e.getRef(), yaml.getActivity().getAdd().getManualTask())); + FlowChangeWrapper fcw = new FlowChangeWrapper(newFlow, ActionType.ACTIVITY_ADD_MANUAL_TASK, + e.getRef(), yaml.getActivity().getAdd().getManualTask()); + if(fcw.getMigrationResult().getPriority() == null) { + fcw.getMigrationResult().setPriority(this.loadGlobalPriority(fcw.getMigrationResult().getStatus(), yaml)); + } + + result.add(fcw); } if(e.getRef() instanceof UserTaskFlowElement) { - result.add(new FlowChangeWrapper(newFlow, ActionType.ACTIVITY_ADD_USER_TASK, - e.getRef(), yaml.getActivity().getAdd().getManualTask())); + FlowChangeWrapper fcw = new FlowChangeWrapper(newFlow, ActionType.ACTIVITY_ADD_USER_TASK, + e.getRef(), yaml.getActivity().getAdd().getUserTask()); + if(fcw.getMigrationResult().getPriority() == null) { + fcw.getMigrationResult().setPriority(this.loadGlobalPriority(fcw.getMigrationResult().getStatus(), yaml)); + } + + result.add(fcw); } if(e.getRef() instanceof BusinessRuleTaskFlowElement) { BusinessRuleTaskFlowElement element = (BusinessRuleTaskFlowElement) e.getRef(); @@ -153,4 +178,24 @@ public class MigrationService { return dto; } + + private Integer loadGlobalPriority(MigrationResultStatus status, MigrationYaml yaml) { + Integer globalPriority = 0; + switch(status) { + case GREEN: + globalPriority = yaml.getConfiguration().getGreen(); + break; + case YELLOW: + globalPriority = yaml.getConfiguration().getYellow(); + break; + case RED: + globalPriority = yaml.getConfiguration().getRed(); + break; + default: + globalPriority = yaml.getConfiguration().getGreen(); + break; + } + + return globalPriority; + } } diff --git a/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/rest/service/change/ChangeController.java b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/rest/service/change/ChangeController.java index a2959a3aa7ea83f1c3693dc3f47b1e74774e9ef1..847feecf0a5bef497a8e008bf799bd9224ca1f9d 100644 --- a/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/rest/service/change/ChangeController.java +++ b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/rest/service/change/ChangeController.java @@ -4,8 +4,10 @@ import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; +import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; +import java.nio.file.StandardCopyOption; import java.util.List; import java.util.Map; import java.util.Map.Entry; @@ -38,6 +40,8 @@ import de.fhmuenster.masterthesis.serialization.TestgeneratorDSLSerializer; import de.fhmuenster.masterthesis.Testgenerator.rest.service.test.TestService; import de.fhmuenster.masterthesis.Testgenerator.utils.ProjectDirectoryUtils; import de.fhmuenster.masterthesis.serialization.TestgeneratorDSLSerializer; +import de.fhmuenster.masterthesis.services.TestgeneratorDSLGrammarAccess.FlowElements; +import de.fhmuenster.masterthesis.testgeneratorDSL.BPMNReference; import de.fhmuenster.masterthesis.testgeneratorDSL.Flow; import de.fhmuenster.masterthesis.testgeneratorDSL.FlowElement; import de.fhmuenster.masterthesis.testgeneratorDSL.FlowElementReference; @@ -53,59 +57,21 @@ public class ChangeController { @Autowired private FlowService flowService; @Autowired - private TestService testService; - + private ChangeService changeService; @Autowired private MigrationService migrationService; + @Autowired + private TestService testService; @RequestMapping(path = "/project/{projectId}/match", method = RequestMethod.GET) - public String getNewFlows(@PathVariable(required = true) Long projectId) { + public void getNewFlows(@PathVariable(required = true) Long projectId) { - boolean success = true; - List <List<String>> newFlowsElements = new ArrayList<List<String>>(); - List <List<String>> oldFlowsElements = new ArrayList<List<String>>(); - - //neue Flow ist erste Element, alte Flow zweite - List <List<String>> matchingFlows = new ArrayList<List<String>>(); - - -// String[] keywords = { "Flow Flow_", "with elements", "without elements"}; -// try { -// BufferedReader reader = new BufferedReader(new FileReader("C:\\Users\\tillb\\Desktop\\fe_projekt\\fe-pda-testing-tool\\OnlineSchuhDemo\\dsl_matching\\Testcollection1.bpmn-testgen")); -// String line = reader.readLine(); -// while(line !=null) -// { -// for(int i = 0 ; i<keywords.length;i++){ -// if(line.startsWith(keywords[i])){ -// System.out.println(line); -// } -// } -// line=reader.readLine(); -// } -// } catch (Exception ex) { -// System.out.println(ex.getMessage()); -// } Project projectForId = projectService.getProjectForId(projectId); - //speichern von neuen Flow Elementen aller Flows + //speichern aller neuen Flows + List<Flow> newFlows = flowService.getFlows(projectForId.getProjectDirectories()); - List<Flow> newFlows = flowService.getFlows(projectForId.getProjectDirectories()); - List<BPMNFlowDTO> newFlowDtos = MAPPER_FLOW.mapToList(newFlows, BPMNFlowDTO.class); - - System.out.println("neu:"); - - //for Schleife durchläuft alle Flows - for (int i= 0; i<newFlowDtos.size(); i++) { - List<String> currentFlow = new ArrayList<String>(); - currentFlow.add("Flow_"+i); - - //for Schleife durchläuft alle Flow-Elemente - for(FlowElementDTO flowElement : newFlowDtos.get(i).getFlowElements()){ - currentFlow.add(flowElement.getId()); - } - newFlowsElements.add(currentFlow); - } // System.out.println("new: " +newFlowsElements); @@ -115,112 +81,17 @@ public class ChangeController { //für alte Flows String pathOld = "D:\\VSProjects\\fe-pda-testing-tool\\OnlineSchuhDemo\\dsl_matching\\MatchingTestcollectionOld.bpmn-testgen"; List<Flow> oldFlows = flowService.getOldFlows(pathOld); - List<BPMNFlowDTO> oldFlowDtos = MAPPER_FLOW.mapToList(oldFlows, BPMNFlowDTO.class); - //for Schleife durchläuft alle alten Flows - for (int i= 0; i<oldFlowDtos.size(); i++) { - List<String> currentFlow = new ArrayList<String>(); - currentFlow.add("Flow_"+i); - - //for Schleife durchläuft alle Flow-Elemente - for(FlowElementDTO flowElement : oldFlowDtos.get(i).getFlowElements()){ - currentFlow.add(flowElement.getId()); - } - oldFlowsElements.add(currentFlow); - } -// System.out.println("old :"+ oldFlowsElements); - -// System.out.println("alt:"); -// for(FlowElementReference e : oldFlows.get(0).getInclElements()){ -// System.out.println(e.getRef().getName()); -// } - - matchingFlows = compareFlows(newFlowsElements, oldFlowsElements); - System.out.println(matchingFlows); - return "false"; - } - - private List<List<String>> compareFlows(List<List<String>> newFlowsElements, List<List<String>> oldFlowsElements) { - - - List <Integer> checkedFlowsOld = new ArrayList <Integer>(); - - List <String> checkedElements = new ArrayList <String>(); - - - //an Stelle [x][0] ist neuer Flow, [x][1] alter Flow, [x][2] Gemeinsamkeiten, [x][3] Unterschiede - String [][] matchingFlows = new String [newFlowsElements.size()][4]; - - - int currentNewFlow = 0; - - for (List newFlow: newFlowsElements) { - - int currentOldFlow = 0; - - - for (List oldFlow: oldFlowsElements) { - int similarities = 0; - int differences = 0; - - if(checkedFlowsOld.contains(currentOldFlow)); - - else { - - for (Object newFlowElement: newFlow) { - if((newFlowElement.toString().contains("Flow_"+currentNewFlow)&& newFlowElement.toString().length()==6) || checkedElements.contains(newFlowElement.toString())) {} - - else { - for (Object oldFlowElement: oldFlow) { - - if((oldFlowElement.toString().contains("Flow_"+currentOldFlow)&& oldFlowElement.toString().length()==6) || checkedElements.contains(oldFlowElement.toString())) {} - - else { - if(newFlowElement.equals(oldFlowElement)) { - similarities++; - checkedElements.add(newFlowElement.toString()); - - } - - } - } - } - } - } - //berechnen der Elemente, die aus dem alten und neuen Flow nicht zueinander gepasst haben - differences = oldFlow.size()-similarities + newFlow.size()-similarities; - -// System.out.println("Neuer Flow: "+ currentNewFlow+ " ; alter Flow: "+currentOldFlow+" ; similarities: "+similarities + " ; difference: "+ differences); - - // falls aktuell übprüfte Flow alt und neu Kombination die meisten Gemeinsamkeiten haben oder noch nichts in matchingFlows gespeichert wurde - if(matchingFlows[currentNewFlow][2]==null || Integer.parseInt(matchingFlows[currentNewFlow][2])<similarities || - (Integer.parseInt(matchingFlows[currentNewFlow][2])==similarities && Integer.parseInt(matchingFlows[currentNewFlow][3])> differences)) { - -// System.out.println(currentNewFlow +" "+ currentOldFlow +" "+ similarities+ " "+ differences); - - matchingFlows[currentNewFlow][0] = "Flow_"+currentNewFlow; - matchingFlows[currentNewFlow][1] = "Flow_"+currentOldFlow; - matchingFlows[currentNewFlow][2] = Integer.toString(similarities); - matchingFlows[currentNewFlow][3] = Integer.toString(differences); -// System.out.println("checked: "+checkedElements + " "+ checkedElements.size()); - - } - checkedElements = new ArrayList <String>(); - - currentOldFlow++; - - } - - currentNewFlow++; - } - - for (int i=0; i<newFlowsElements.size();i++) { - System.out.println(matchingFlows[i][0]+" "+matchingFlows[i][1]+" "+matchingFlows[i][2]+" "+matchingFlows[i][3]); - + Flow [][] matchingFlows = changeService.compareFlows(newFlows, oldFlows); +// for (int i=0; i<newFlows.size();i++) { +// System.out.println(matchingFlows[i][0]+" "+matchingFlows[i][1]); +// +// } } - return null; - } + + + @RequestMapping(path = "/project/{projectId}/migration/changes", method = RequestMethod.GET) @@ -230,10 +101,33 @@ public class ChangeController { Project project = projectService.getProjectForId(projectId); MigrationResultWrapperDTO migrationResultWrapperDTO = new MigrationResultWrapperDTO(); - //Alte und neue DSL einlesen + + //Alte DSL kopieren und neu generieren Path testFilePath = ProjectDirectoryUtils.getTestspecificationPath(project.getProjectDirectories()); + Path source = Paths.get(testFilePath.toString()); + Path target = Paths.get(project.getProjectDirectories().getProjectRootPath().toString(), + project.getProjectDirectories().getModelPath(), this.projectService.getBackupFolderName(), + "Testcollection.bpmn-testgen"); + + try { + Files.move(source, target, StandardCopyOption.REPLACE_EXISTING); + } + catch(Exception e) { + + } + + + + //Path testFilePath = ProjectDirectoryUtils.getTestspecificationPath(project.getProjectDirectories()); Path newDSLFile = Paths.get(testFilePath.toString()); - Path oldDSLFile = Paths.get(project.getProjectDirectories().resolveTestPath(), "Testcollection-old.bpmn-testgen"); + //Path oldDSLFile = Paths.get(project.getProjectDirectories().resolveTestPath(), "Testcollection-old.bpmn-testgen"); + Path oldDSLFile = Paths.get(project.getProjectDirectories().getProjectRootPath().toString(), + project.getProjectDirectories().getModelPath(), this.projectService.getBackupFolderName(), + "Testcollection.bpmn-testgen"); + + testService.initLoops(project); + testService.initTestcollection(project); + try { TestgeneratorDSLSerializer oldDSL = new TestgeneratorDSLSerializer(oldDSLFile.toString()); TestgeneratorDSLSerializer newDSL = new TestgeneratorDSLSerializer(newDSLFile.toString()); diff --git a/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/rest/service/change/ChangeService.java b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/rest/service/change/ChangeService.java new file mode 100644 index 0000000000000000000000000000000000000000..170752c802887417e3927ef05a0945644383f21a --- /dev/null +++ b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/rest/service/change/ChangeService.java @@ -0,0 +1,124 @@ +package de.fhmuenster.masterthesis.Testgenerator.rest.service.change; + +import java.io.IOException; +import java.nio.file.Path; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +import org.eclipse.emf.common.util.EList; +import org.springframework.stereotype.Service; + +import de.fhmuenster.masterthesis.Testgenerator.rest.service.project.ProjectDirectories; +import de.fhmuenster.masterthesis.Testgenerator.rest.service.test.FlowNotFoundException; +import de.fhmuenster.masterthesis.Testgenerator.utils.ProjectDirectoryUtils; +import de.fhmuenster.masterthesis.serialization.TestgeneratorDSLObjectCreator; +import de.fhmuenster.masterthesis.serialization.TestgeneratorDSLSerializer; +import de.fhmuenster.masterthesis.testgeneratorDSL.Flow; +import de.fhmuenster.masterthesis.testgeneratorDSL.FlowElementReference; +import de.fhmuenster.masterthesis.testgeneratorDSL.Loop; +import de.fhmuenster.masterthesis.testgeneratorDSL.ServiceTaskFlowElement; + +@Service +public class ChangeService { + + public ChangeService() { + } + +public Flow[][] compareFlows(List<Flow> newFlows, List<Flow> oldFlows) { + + //hier werden die Flows gespeichert, die zurückgegeben werden. [x][0] -> Flow neu, [x][1] -> passender Flow alt + Flow [][] matchingFlows = new Flow [newFlows.size()][2]; + + List <Integer> checkedFlowsOld = new ArrayList <Integer>(); + List <String> checkedElements = new ArrayList <String>(); + + int currentNewFlow = 0; + + for (Flow newFlow: newFlows) { + + EList<FlowElementReference> newFlowElements = newFlow.getInclElements(); + + int mostSimilarities = 0; + int leastDifferences = 10000; + + int currentOldFlow = 0; + + + for (Flow oldFlow: oldFlows) { + + EList<FlowElementReference> oldFlowElements = oldFlow.getInclElements(); + + int similarities = 0; + int differences = 0; + + if(checkedFlowsOld.contains(currentOldFlow)); + + else { + FlowElementReference newNeighbourBefore = null; + FlowElementReference newNeighbourAfter; + + FlowElementReference oldNeighbourBefore = null; + FlowElementReference oldNeighbourAfter; + + //Zeiger auf aktuelles Flow Element des neuen Flows + int currentNewFlowElement = 0; + + for (FlowElementReference newFlowElement: newFlowElements) { + + //Zeiger auf aktuelles Flow Element des alten Flows + int currentOldFlowElement = 0; + + if(checkedElements.contains(newFlowElement.getRef().getName())) {} + else { + + for (FlowElementReference oldFlowElement: oldFlowElements) { + + if(checkedElements.contains(oldFlowElement.getRef().getName())) {} + + else { + + if(newFlowElement.getRef().getName().equals(oldFlowElement.getRef().getName())) { + similarities++; + checkedElements.add(newFlowElement.getRef().getName()); + + } + + } + currentOldFlowElement++; + } + } + } + } + //berechnen der Elemente, die aus dem alten und neuen Flow nicht zueinander gepasst haben + differences = oldFlow.getInclElements().size()-similarities + newFlow.getInclElements().size()-similarities; + + + // falls aktuell übprüfte Flow alt und neu Kombination die meisten Gemeinsamkeiten haben oder noch nichts in matchingFlows gespeichert wurde + if(mostSimilarities<similarities || (mostSimilarities==similarities && leastDifferences> differences)) { + + + mostSimilarities=similarities; + leastDifferences = differences; + + matchingFlows[currentNewFlow][0] = newFlow; + matchingFlows[currentNewFlow][1] = oldFlow; + + + } + checkedElements = new ArrayList <String>(); + + currentOldFlow++; + + } + + currentNewFlow++; + } +// for (int i=0; i<newFlows.size();i++) { +// System.out.println(matchingFlows[i][0]+" "+matchingFlows[i][1]); +// +// } + + return matchingFlows; + } +} \ No newline at end of file diff --git a/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/rest/service/file/FileController.java b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/rest/service/file/FileController.java index 20ec66ca68353068dfcbbc407ac76c500e34eec1..008626e432f2e17f303f30d2c34458f23a7610f8 100644 --- a/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/rest/service/file/FileController.java +++ b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/rest/service/file/FileController.java @@ -52,9 +52,14 @@ public class FileController { String rootPath = projectForId.getProjectDirectories().getProjectRootPath(); // D:\Eclipse orkspace\bpmn-testgenerator-tool-master\OnlineSchuhDemo // Hardcoded, die Funktion getBpmnFiles() findet nicht mehrere bpmn dateien sonder nur eine - String bpmnPath = "src\\main\\resources\\backup\\diagram.bpmn"; - Path bpmn = Paths.get(rootPath, bpmnPath); - File bpmnFile = new File(bpmn.toString()); + //String bpmnPath = "src\\main\\resources\\backup\\diagram.bpmn"; + Path pathToBpmnFile = Paths.get(projectForId.getBpmnFiles().get(0).getPath()); + + Path bpmnPath = Paths.get(rootPath, + projectForId.getProjectDirectories().getModelPath(), this.projectService.getBackupFolderName(), + pathToBpmnFile.getFileName().toString()); + //Path bpmn = Paths.get(rootPath, bpmnPath); + File bpmnFile = new File(bpmnPath.toString()); String bpmnContent = readFile(bpmnFile); return bpmnContent; diff --git a/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/rest/service/project/ProjectService.java b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/rest/service/project/ProjectService.java index d69b87500c49e4ef84add4ebce45cacf5f59ad9f..cbf95f7e2c4f5b356e4f4a3260289a70c049076f 100644 --- a/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/rest/service/project/ProjectService.java +++ b/Testgenerator/src/main/java/de/fhmuenster/masterthesis/Testgenerator/rest/service/project/ProjectService.java @@ -42,6 +42,8 @@ public class ProjectService { @Value("${testgenerator.projects}") private String projectsPath; + + private String backupFolderName = "backup"; private Path projectConfigPath; @@ -321,7 +323,8 @@ public class ProjectService { LOGGER.info("starting copy process to backup folder"); Project project = getProjectForId(projectId); //project.getProjectDirectories().getProjectRootPath().conc - Path p = Paths.get(project.getProjectDirectories().getProjectRootPath().toString(), project.getProjectDirectories().getModelPath(), "backup"); + Path p = Paths.get(project.getProjectDirectories().getProjectRootPath().toString(), + project.getProjectDirectories().getModelPath(), this.backupFolderName); File directory = new File(p.toUri()); if(!directory.exists()) { directory.mkdir(); @@ -405,4 +408,8 @@ public class ProjectService { } */ } + + public String getBackupFolderName() { + return this.backupFolderName; + } } 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 f0c3b80ac438d0a70424f749c172076f77a9ad44..35027be70d3be454277aa7531e3eee0f724c536e 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 @@ -1,525 +1,526 @@ -package de.fhmuenster.masterthesis.Testgenerator.rest.service.test; - -import java.io.IOException; -import java.nio.file.Path; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.stream.Collectors; - -import org.camunda.bpm.model.bpmn.instance.BusinessRuleTask; -import org.camunda.bpm.model.bpmn.instance.EndEvent; -import org.camunda.bpm.model.bpmn.instance.Gateway; -import org.camunda.bpm.model.bpmn.instance.ManualTask; -import org.camunda.bpm.model.bpmn.instance.ScriptTask; -import org.camunda.bpm.model.bpmn.instance.SequenceFlow; -import org.camunda.bpm.model.bpmn.instance.ServiceTask; -import org.camunda.bpm.model.bpmn.instance.StartEvent; -import org.camunda.bpm.model.bpmn.instance.UserTask; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import de.fhmuenster.masterthesis.Testgenerator.bpmn.data.BPMNBundle; -import de.fhmuenster.masterthesis.Testgenerator.bpmn.data.BPMNExpressions; -import de.fhmuenster.masterthesis.Testgenerator.bpmn.data.BPMNFlow; -import de.fhmuenster.masterthesis.Testgenerator.bpmn.data.BPMNFlowSet; -import de.fhmuenster.masterthesis.Testgenerator.bpmn.data.BPMNFormFields; -import de.fhmuenster.masterthesis.Testgenerator.bpmn.data.BPMNIOParameters; -import de.fhmuenster.masterthesis.Testgenerator.bpmn.data.BPMNTestcase; -import de.fhmuenster.masterthesis.Testgenerator.bpmn.data.BPMNTestdata; -import de.fhmuenster.masterthesis.Testgenerator.bpmn.processfragmentation.BPMNExpressionScanner; -import de.fhmuenster.masterthesis.Testgenerator.bpmn.processfragmentation.BPMNFlowScanner; -import de.fhmuenster.masterthesis.Testgenerator.bpmn.processfragmentation.BPMNVariableBoundaryScanner; -import de.fhmuenster.masterthesis.Testgenerator.bpmn.processfragmentation.BPMNVariableFormFieldScanner; -import de.fhmuenster.masterthesis.Testgenerator.bpmn.processfragmentation.BPMNVariableIOScanner; -import de.fhmuenster.masterthesis.Testgenerator.bpmn.processfragmentation.loop.Loop; -import de.fhmuenster.masterthesis.Testgenerator.bpmn.processfragmentation.loop.LoopFrequencyAssigner; -import de.fhmuenster.masterthesis.Testgenerator.bpmn.processfragmentation.loop.LoopScanner; -import de.fhmuenster.masterthesis.Testgenerator.bpmn.processfragmentation.sese.IsElement; -import de.fhmuenster.masterthesis.Testgenerator.bpmn.processfragmentation.sese.SESEBuilder; -import de.fhmuenster.masterthesis.Testgenerator.dmn.data.DMNBundle; -import de.fhmuenster.masterthesis.Testgenerator.dmn.data.DMNDecisionModel; -import de.fhmuenster.masterthesis.Testgenerator.dmn.data.DMNVariables; -import de.fhmuenster.masterthesis.Testgenerator.embeddedform.data.EmbeddedFormDocument; -import de.fhmuenster.masterthesis.Testgenerator.logging.LoggerProvider; -import de.fhmuenster.masterthesis.Testgenerator.logging.TestgeneratorLogger; -import de.fhmuenster.masterthesis.Testgenerator.rest.service.converters.TestConverter; -import de.fhmuenster.masterthesis.Testgenerator.rest.service.flow.FlowService; -import de.fhmuenster.masterthesis.Testgenerator.rest.service.mock.MockService; -import de.fhmuenster.masterthesis.Testgenerator.rest.service.project.Project; -import de.fhmuenster.masterthesis.Testgenerator.rest.service.project.ProjectDirectories; -import de.fhmuenster.masterthesis.Testgenerator.utils.BPMNParseUtils; -import de.fhmuenster.masterthesis.Testgenerator.utils.ProjectDirectoryUtils; -import de.fhmuenster.masterthesis.serialization.TestgeneratorDSLObjectCreator; -import de.fhmuenster.masterthesis.serialization.TestgeneratorDSLSerializer; -import de.fhmuenster.masterthesis.serialization.VariableProposal; -import de.fhmuenster.masterthesis.testgeneratorDSL.BPMNDiagram; -import de.fhmuenster.masterthesis.testgeneratorDSL.ExternalTopic; -import de.fhmuenster.masterthesis.testgeneratorDSL.Flow; -import de.fhmuenster.masterthesis.testgeneratorDSL.FlowElement; -import de.fhmuenster.masterthesis.testgeneratorDSL.Mock; -import de.fhmuenster.masterthesis.testgeneratorDSL.Test; -import de.fhmuenster.masterthesis.testgeneratorDSL.Variable; -import de.fhmuenster.masterthesis.testgeneratorDSL.VariableDeclaration; -import de.fhmuenster.masterthesis.utils.TestgeneratorDSLUtils; - -@Service -public class TestService { - - private static final TestgeneratorLogger LOGGER = LoggerProvider.getLogger(TestService.class); - private static final String NAMESPACE_URI_BPMN = "http://camunda.org/schema/1.0/bpmn"; - - private long millisDataStart; - private long millisDataEnd; - - @Autowired - private FlowService flowService; - @Autowired - private MockService mockService; - - public TestService() { - } - - public List<de.fhmuenster.masterthesis.testgeneratorDSL.Loop> initLoops(Project project) { - Path testFilePath = ProjectDirectoryUtils.getTestspecificationPath(project.getProjectDirectories()); - String testpackage = project.getProjectDirectories().getTestPackage(); - List<de.fhmuenster.masterthesis.testgeneratorDSL.Loop> dslLoops = null; - - try { - TestgeneratorDSLSerializer serializer = new TestgeneratorDSLSerializer(testFilePath.toString()); - - BPMNDiagram bpmnDiagram = serializer.getBPMNDiagram("process"); - if (bpmnDiagram == null) { - BPMNBundle bpmnBundle = BPMNParseUtils.readBPMNBundle(project); - List<DMNBundle> dmnBundles = BPMNParseUtils.readDMNBundles(project); - List<EmbeddedFormDocument> embeddedFormDocuments = BPMNParseUtils.readEmbeddedFormDocuments(project); - List<DMNDecisionModel> decisionModels = BPMNParseUtils.getDecisionModels(dmnBundles); - bpmnDiagram = BPMNParseUtils.getBPMNDiagram(bpmnBundle.getProcessModel(), testpackage, decisionModels, - embeddedFormDocuments); - - // Build Single-Entry-Single-Exit-Graph - SESEBuilder seseBuilder = new SESEBuilder(bpmnBundle.getModelInstance()); - seseBuilder.buildSingleEntrySingleExit(); - List<IsElement> seseTransform = seseBuilder.getSeseTransform(); - - // Scan for loops - LoopScanner loopScanner = new LoopScanner(seseTransform); - List<Loop> loops = loopScanner.scanLoops(); - - // Set frequency for loops - LoopFrequencyAssigner frequencyAssigner = new LoopFrequencyAssigner(loops); - frequencyAssigner.assign(); - - serializer.addBPMNDiagram(bpmnDiagram); - dslLoops = flowService.getDSLLoops(loops); - dslLoops.forEach(dslLoop -> serializer.addLoop(dslLoop)); - - serializer.serialize(); - } - - } catch (IOException e) { - e.printStackTrace(); - } - - if (dslLoops == null) { - return flowService.getLoops(project.getProjectDirectories()); - } - - return dslLoops; - } - - public void initTestcollection(Project project) { - Path testFilePath = ProjectDirectoryUtils.getTestspecificationPath(project.getProjectDirectories()); - String testpackage = project.getProjectDirectories().getTestPackage(); - - try { - TestgeneratorDSLSerializer serializer = new TestgeneratorDSLSerializer(testFilePath.toString()); - - BPMNDiagram bpmnDiagram = serializer.getBPMNDiagram("process"); - List<FlowElement> flowElementsCheck = serializer.getFlowElements(); - - if (bpmnDiagram != null && flowElementsCheck.isEmpty()) { - BPMNBundle bpmnBundle = BPMNParseUtils.readBPMNBundle(project); - List<DMNBundle> dmnBundles = BPMNParseUtils.readDMNBundles(project); - List<EmbeddedFormDocument> embeddedFormDocuments = BPMNParseUtils.readEmbeddedFormDocuments(project); - List<DMNDecisionModel> decisionModels = BPMNParseUtils.getDecisionModels(dmnBundles); - - List<de.fhmuenster.masterthesis.testgeneratorDSL.Loop> dslLoops = serializer.getLoops(); - List<Loop> loops = getLoops(dslLoops); - - // Parse different flows of process model - BPMNFlowScanner scanner = new BPMNFlowScanner(bpmnBundle.getModelInstance(), loops); - BPMNFlowSet flowSet = scanner.scanFlows(); - - if (LOGGER.isInfo()) { - millisDataStart = System.currentTimeMillis(); - } - - // Read FormFields from Events and Tasks - BPMNVariableFormFieldScanner variableScanner = new BPMNVariableFormFieldScanner(flowSet); - EmbeddedFormDocument[] embeddedArray = new EmbeddedFormDocument[embeddedFormDocuments.size()]; - variableScanner.setEmbeddedFormDocuments(embeddedFormDocuments.toArray(embeddedArray)); - variableScanner.doScan(); - BPMNFormFields formFields = variableScanner.getFormFields(); - - // Read Input/Output-Parameters - BPMNVariableIOScanner variableIOScanner = new BPMNVariableIOScanner(flowSet); - variableIOScanner.doScan(); - BPMNIOParameters bpmnIOParameters = variableIOScanner.getBpmnIOParameters(); - - // Parse conditional expressions - BPMNExpressionScanner expressionScanner = new BPMNExpressionScanner(flowSet); - expressionScanner.doScan(); - BPMNExpressions expressions = expressionScanner.getExpressions(); - - List<DMNVariables> dmnVariableList = BPMNParseUtils.getDMNVariables(dmnBundles); - - BPMNVariableBoundaryScanner boundaryScanner = new BPMNVariableBoundaryScanner(expressions, formFields, - bpmnIOParameters, dmnVariableList); - boundaryScanner.doScan(); - HashMap<String, BPMNTestdata<?>> variableTestdata = boundaryScanner.getVariableTestdata(); - - List<Variable> variables = BPMNParseUtils.getVariables(formFields, variableTestdata, bpmnIOParameters); - - if (LOGGER.isInfo()) { - millisDataEnd = System.currentTimeMillis(); - LOGGER.info("Time needed for Data-Scan: " + (millisDataEnd - millisDataStart) + " ms"); - } - - List<ExternalTopic> externalTopics = getExternalTopics(flowSet); - List<FlowElement> flowElements = getFlowElements(flowSet, variables, formFields, expressions, - bpmnIOParameters, externalTopics); - List<Flow> flows = getFlows(bpmnDiagram, flowSet, flowElements); - - flowElements.forEach(flowElement -> serializer.addFlowElement(flowElement)); - variables.forEach(var -> serializer.addVariable(var)); - externalTopics.forEach(externalTopic -> serializer.addExternalTopic(externalTopic)); - flows.forEach(flow -> serializer.addFlow(flow)); - - serializer.serialize(); - } - - } catch (IOException e) { - e.printStackTrace(); - } - } - - public void addTest(BPMNTestcase testcase, ProjectDirectories projectDirectories) { - Path testspecificationPath = ProjectDirectoryUtils.getTestspecificationPath(projectDirectories); - - try { - TestgeneratorDSLSerializer serializer = new TestgeneratorDSLSerializer(testspecificationPath.toString()); - - checkTestIdAlreadyTaken(testcase.getName(), serializer); - - addTest(testcase, serializer, projectDirectories); - - serializer.serialize(); - } catch (IOException e) { - e.printStackTrace(); - } - } - - public void updateTest(String testId, BPMNTestcase testcase, ProjectDirectories projectDirectories) { - Path testspecificationPath = ProjectDirectoryUtils.getTestspecificationPath(projectDirectories); - - try { - TestgeneratorDSLSerializer serializer = new TestgeneratorDSLSerializer(testspecificationPath.toString()); - - if (!testId.equals(testcase.getName())) { - checkTestIdAlreadyTaken(testcase.getName(), serializer); - } - - Test testToDelete = getTest(testId, serializer); - serializer.deleteTest(testToDelete.getName()); - - addTest(testcase, serializer, projectDirectories); - - serializer.serialize(); - } catch (IOException e) { - e.printStackTrace(); - } - } - - private void addTest(BPMNTestcase testcase, TestgeneratorDSLSerializer serializer, - ProjectDirectories projectDirectories) { - Flow flow = serializer.getFlow(testcase.getFlow()); - List<FlowElement> flowElements = serializer.getFlowElements(); - List<Variable> variables = serializer.getVariables(); - List<Mock> mocks = mockService.getMocks(testcase.getMocks(), projectDirectories); - Test newTest = TestConverter.getTest(testcase, flow, flowElements, variables, mocks); - - - serializer.addTest(newTest); - } - - public List<VariableProposal<?>> getVariableProposals(ProjectDirectories projectDirectories) { - Path testspecificationPath = ProjectDirectoryUtils.getTestspecificationPath(projectDirectories); - - List<VariableProposal<?>> variableProposals = new ArrayList<>(); - try { - TestgeneratorDSLSerializer serializer = new TestgeneratorDSLSerializer(testspecificationPath.toString()); - - variableProposals = serializer.getVariableProposals(); - } catch (IOException e) { - e.printStackTrace(); - } - - return variableProposals; - } - - public List<BPMNTestcase> getTests(ProjectDirectories projectDirectories, Flow flow) { - Path testspecificationPath = ProjectDirectoryUtils.getTestspecificationPath(projectDirectories); - - try { - TestgeneratorDSLSerializer serializer = new TestgeneratorDSLSerializer(testspecificationPath.toString()); - - List<Test> testsForFlow = serializer.getTestsForFlow(flow); - List<BPMNTestcase> bpmnTestcases = new ArrayList<>(); - for (Test test : testsForFlow) { - bpmnTestcases.add(TestConverter.getBPMNTestcase(test)); - } - - return bpmnTestcases; - } catch (IOException e) { - // - } - - return null; - } - - public BPMNTestcase getTest(ProjectDirectories projectDirectories, String testId) { - Path testspecificationPath = ProjectDirectoryUtils.getTestspecificationPath(projectDirectories); - - try { - TestgeneratorDSLSerializer serializer = new TestgeneratorDSLSerializer(testspecificationPath.toString()); - - Test test = getTest(testId, serializer); - - BPMNTestcase bpmnTestcase = TestConverter.getBPMNTestcase(test); - return bpmnTestcase; - } catch (IOException e) { - // - } - - return null; - } - - public void deleteTest(ProjectDirectories projectDirectories, String testId) { - Path testspecificationPath = ProjectDirectoryUtils.getTestspecificationPath(projectDirectories); - - try { - TestgeneratorDSLSerializer serializer = new TestgeneratorDSLSerializer(testspecificationPath.toString()); - - serializer.deleteTest(testId); - - serializer.serialize(); - } catch (IOException e) { - // - } - } - - public List<FlowElement> getUserInputTasks(Flow flow) { - return TestgeneratorDSLUtils.getUserInputElements(flow); - } - - public Map<String, Long> getFlowTestcount(ProjectDirectories projectDirectories) { - Path testspecificationPath = ProjectDirectoryUtils.getTestspecificationPath(projectDirectories); - - try { - TestgeneratorDSLSerializer serializer = new TestgeneratorDSLSerializer(testspecificationPath.toString()); - Map<String, Long> flowTestCount = serializer.getFlowTestCount(); - - return flowTestCount; - } catch (IOException e) { - // - } - - return new HashMap<>(); - } - - private List<FlowElement> getFlowElements(BPMNFlowSet flowSet, List<Variable> variables, BPMNFormFields formFields, - BPMNExpressions expressions, BPMNIOParameters bpmnIOParameters, List<ExternalTopic> externalTopics) { - return flowSet.getFlowElements().stream() // - .map(flowElement -> getFlowElement(flowElement, variables, formFields, expressions, bpmnIOParameters, - externalTopics)) // - .collect(Collectors.toList()); // - } - - private FlowElement getFlowElement(org.camunda.bpm.model.bpmn.instance.FlowElement flowElement, - List<Variable> variables, BPMNFormFields formFields, BPMNExpressions expressions, - BPMNIOParameters bpmnIOParameters, List<ExternalTopic> externalTopics) { - - if (flowElement instanceof StartEvent) { - List<Variable> inputVariables = filterFlowElementVariables(variables, - formFields.getVariablesForTask(flowElement.getId())); - 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.getOutputVariables(flowElement.getId())); - inputVariableNames.addAll(formFields.getVariablesForTask(flowElement.getId())); - - List<Variable> inputVariables = filterFlowElementVariables(variables, inputVariableNames); - - return TestgeneratorDSLObjectCreator.createUserTaskFlowElement(flowElement.getId(), inputVariables); - } else if (flowElement instanceof ManualTask) { - return TestgeneratorDSLObjectCreator.createManualTaskFlowElement(flowElement.getId()); - } else if (flowElement instanceof ScriptTask) { - return TestgeneratorDSLObjectCreator.createScriptTaskFlowElement(flowElement.getId()); - } else if (flowElement instanceof BusinessRuleTask) { - return TestgeneratorDSLObjectCreator.createBusinessRuleTaskFlowElement(flowElement.getId()); - } else if (flowElement instanceof ServiceTask) { - String delegate = getDelegate((ServiceTask) flowElement); - String externalTopicTextual = getExternalTopic((ServiceTask) flowElement); - ExternalTopic externalTopic = getExternalTopic(externalTopics, externalTopicTextual); - - if (delegate != null) { - return TestgeneratorDSLObjectCreator.createDelegateServiceTaskFlowElement(flowElement.getId(), - delegate); - } else if (externalTopic != null) { - List<VariableDeclaration> hardcodedVariables = BPMNParseUtils.getHardcodedVariables(flowElement.getId(), variables, - bpmnIOParameters); - return TestgeneratorDSLObjectCreator.createExternalServiceTaskFlowElement(flowElement.getId(), - externalTopic, hardcodedVariables); - } else { - throw new IncompleteFlowElementException(flowElement.getId()); - } - } else if (flowElement instanceof SequenceFlow) { - String expression = expressions.getSequenceFlowExpressionMap().get(flowElement.getId()); - return TestgeneratorDSLObjectCreator.createSequenceFlowElement(flowElement.getId(), expression); - } - - throw new UnsupportedFlowElementException(flowElement.getId()); - } - - private List<Flow> getFlows(BPMNDiagram bpmn, BPMNFlowSet flowSet, List<FlowElement> flowElements) { - return flowSet.getFlows().stream() // - .map(flow -> createFlow(bpmn, flow, flowElements)) // - .collect(Collectors.toList()); // - } - - private Flow createFlow(BPMNDiagram bpmn, BPMNFlow flow, List<FlowElement> flowElements) { - List<String> flowNodes = flow.getFlowElementIds(); - - List<FlowElement> inclFlowElements = getInclFlowElements(flowElements, flowNodes); - List<FlowElement> exclFlowElements = getExclFlowElements(flowElements, flowNodes); - return TestgeneratorDSLObjectCreator.createFlow(flow.getName(), bpmn, inclFlowElements, exclFlowElements); - } - - private List<FlowElement> getInclFlowElements(List<FlowElement> flowElements, List<String> subset) { - return subset.stream() // - .map(flowElementName -> getFlowElementByName(flowElements, flowElementName)) // - .collect(Collectors.toList()); // - } - - private List<FlowElement> getExclFlowElements(List<FlowElement> flowElements, List<String> subset) { - return flowElements.stream() // - .filter(flowElement -> !subset.contains(flowElement.getName())) // - .collect(Collectors.toList()); // - } - - private List<Variable> filterFlowElementVariables(List<Variable> allVariables, - List<String> variablesForFlowElement) { - return allVariables.stream() // - .filter(variable -> variablesForFlowElement.contains(variable.getName())) // - .collect(Collectors.toList()); // - } - - @SuppressWarnings("unchecked") - private <T extends Object> List<T> getProposals(String variable, BPMNTestdata<? extends Object> variableTestdata, - Class<T> clazz) { - return variableTestdata.getValues().stream() // - .map(value -> ((T) value)) // - .collect(Collectors.toList()); // - } - - private List<Integer> getIntProposals(String variable, BPMNTestdata<? extends Object> variableTestdata) { - return variableTestdata.getValues().stream() // - .map(value -> ((Long) value).intValue()) // - .collect(Collectors.toList()); // - } - - private void checkTestIdAlreadyTaken(String testId, TestgeneratorDSLSerializer serializer) { - Test test = serializer.getTest(testId); - - if (test != null) { - throw new TestIdAlreadyTakenException(testId); - } - } - - private Test getTest(String testId, TestgeneratorDSLSerializer serializer) { - Test test = serializer.getTest(testId); - if (test == null) { - throw new TestNotFoundException(testId); - } - - return test; - } - - private FlowElement getFlowElementByName(List<FlowElement> flowElements, String name) { - return flowElements.stream() // - .filter(flowElement -> flowElement.getName().equals(name)) // - .findFirst() // - .get(); // always present - } - - private String getDelegate(ServiceTask serviceTask) { - String delegate = serviceTask.getAttributeValueNs(NAMESPACE_URI_BPMN, "delegateExpression"); - - if (delegate != null) { - delegate = delegate.substring(2, delegate.length() - 1); - } - - return delegate; - } - - private List<ExternalTopic> getExternalTopics(BPMNFlowSet flowSet) { - return flowSet.getFlowElements().stream() // - .filter(flowElement -> flowElement instanceof ServiceTask) // - .map(serviceTask -> ((ServiceTask) serviceTask)) // - .map(serviceTask -> getExternalTopic(serviceTask)) // - .filter(externalTopicName -> externalTopicName != null) // - .distinct() // - .map(externalTopicName -> TestgeneratorDSLObjectCreator.createExternalTopic(externalTopicName)) // - .collect(Collectors.toList()); // - } - - private String getExternalTopic(ServiceTask serviceTask) { - String externalTopic = serviceTask.getAttributeValueNs(NAMESPACE_URI_BPMN, "topic"); - return externalTopic; - } - - private ExternalTopic getExternalTopic(List<ExternalTopic> externalTopics, String externalTopicTextual) { - Optional<ExternalTopic> externalTopicOpt = externalTopics.stream() // - .filter(externalTopic -> externalTopic.getName().equals(externalTopicTextual)) // - .findFirst(); - - return externalTopicOpt.isPresent() ? externalTopicOpt.get() : null; - } - - - - private List<Loop> getLoops(List<de.fhmuenster.masterthesis.testgeneratorDSL.Loop> dslLoops) { - return dslLoops.stream() // - .map(dslLoop -> getLoop(dslLoop)) // - .collect(Collectors.toList()); // - } - - private Loop getLoop(de.fhmuenster.masterthesis.testgeneratorDSL.Loop dslLoop) { - Loop loop = new Loop(); - loop.setId(dslLoop.getName()); - loop.setEndId(dslLoop.getEnd()); - loop.setStartId(dslLoop.getStart()); - loop.setStartFollowerId(dslLoop.getFollower()); - loop.setComplexity(dslLoop.getComplexity()); - loop.setFrequencies(TestgeneratorDSLUtils.getFrequencies(dslLoop)); - - return loop; - } -} +package de.fhmuenster.masterthesis.Testgenerator.rest.service.test; + +import java.io.IOException; +import java.nio.file.Path; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.stream.Collectors; + +import org.camunda.bpm.model.bpmn.instance.BusinessRuleTask; +import org.camunda.bpm.model.bpmn.instance.EndEvent; +import org.camunda.bpm.model.bpmn.instance.Gateway; +import org.camunda.bpm.model.bpmn.instance.ManualTask; +import org.camunda.bpm.model.bpmn.instance.ScriptTask; +import org.camunda.bpm.model.bpmn.instance.SequenceFlow; +import org.camunda.bpm.model.bpmn.instance.ServiceTask; +import org.camunda.bpm.model.bpmn.instance.StartEvent; +import org.camunda.bpm.model.bpmn.instance.UserTask; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import de.fhmuenster.masterthesis.Testgenerator.bpmn.data.BPMNBundle; +import de.fhmuenster.masterthesis.Testgenerator.bpmn.data.BPMNExpressions; +import de.fhmuenster.masterthesis.Testgenerator.bpmn.data.BPMNFlow; +import de.fhmuenster.masterthesis.Testgenerator.bpmn.data.BPMNFlowSet; +import de.fhmuenster.masterthesis.Testgenerator.bpmn.data.BPMNFormFields; +import de.fhmuenster.masterthesis.Testgenerator.bpmn.data.BPMNIOParameters; +import de.fhmuenster.masterthesis.Testgenerator.bpmn.data.BPMNTestcase; +import de.fhmuenster.masterthesis.Testgenerator.bpmn.data.BPMNTestdata; +import de.fhmuenster.masterthesis.Testgenerator.bpmn.processfragmentation.BPMNExpressionScanner; +import de.fhmuenster.masterthesis.Testgenerator.bpmn.processfragmentation.BPMNFlowScanner; +import de.fhmuenster.masterthesis.Testgenerator.bpmn.processfragmentation.BPMNVariableBoundaryScanner; +import de.fhmuenster.masterthesis.Testgenerator.bpmn.processfragmentation.BPMNVariableFormFieldScanner; +import de.fhmuenster.masterthesis.Testgenerator.bpmn.processfragmentation.BPMNVariableIOScanner; +import de.fhmuenster.masterthesis.Testgenerator.bpmn.processfragmentation.loop.Loop; +import de.fhmuenster.masterthesis.Testgenerator.bpmn.processfragmentation.loop.LoopFrequencyAssigner; +import de.fhmuenster.masterthesis.Testgenerator.bpmn.processfragmentation.loop.LoopScanner; +import de.fhmuenster.masterthesis.Testgenerator.bpmn.processfragmentation.sese.IsElement; +import de.fhmuenster.masterthesis.Testgenerator.bpmn.processfragmentation.sese.SESEBuilder; +import de.fhmuenster.masterthesis.Testgenerator.dmn.data.DMNBundle; +import de.fhmuenster.masterthesis.Testgenerator.dmn.data.DMNDecisionModel; +import de.fhmuenster.masterthesis.Testgenerator.dmn.data.DMNVariables; +import de.fhmuenster.masterthesis.Testgenerator.embeddedform.data.EmbeddedFormDocument; +import de.fhmuenster.masterthesis.Testgenerator.logging.LoggerProvider; +import de.fhmuenster.masterthesis.Testgenerator.logging.TestgeneratorLogger; +import de.fhmuenster.masterthesis.Testgenerator.rest.service.converters.TestConverter; +import de.fhmuenster.masterthesis.Testgenerator.rest.service.flow.FlowService; +import de.fhmuenster.masterthesis.Testgenerator.rest.service.mock.MockService; +import de.fhmuenster.masterthesis.Testgenerator.rest.service.project.Project; +import de.fhmuenster.masterthesis.Testgenerator.rest.service.project.ProjectDirectories; +import de.fhmuenster.masterthesis.Testgenerator.utils.BPMNParseUtils; +import de.fhmuenster.masterthesis.Testgenerator.utils.ProjectDirectoryUtils; +import de.fhmuenster.masterthesis.serialization.TestgeneratorDSLObjectCreator; +import de.fhmuenster.masterthesis.serialization.TestgeneratorDSLSerializer; +import de.fhmuenster.masterthesis.serialization.VariableProposal; +import de.fhmuenster.masterthesis.testgeneratorDSL.BPMNDiagram; +import de.fhmuenster.masterthesis.testgeneratorDSL.ExternalTopic; +import de.fhmuenster.masterthesis.testgeneratorDSL.Flow; +import de.fhmuenster.masterthesis.testgeneratorDSL.FlowElement; +import de.fhmuenster.masterthesis.testgeneratorDSL.Mock; +import de.fhmuenster.masterthesis.testgeneratorDSL.Test; +import de.fhmuenster.masterthesis.testgeneratorDSL.Variable; +import de.fhmuenster.masterthesis.testgeneratorDSL.VariableDeclaration; +import de.fhmuenster.masterthesis.utils.TestgeneratorDSLUtils; + +@Service +public class TestService { + + private static final TestgeneratorLogger LOGGER = LoggerProvider.getLogger(TestService.class); + private static final String NAMESPACE_URI_BPMN = "http://camunda.org/schema/1.0/bpmn"; + + private long millisDataStart; + private long millisDataEnd; + + @Autowired + private FlowService flowService; + @Autowired + private MockService mockService; + + public TestService() { + } + + public List<de.fhmuenster.masterthesis.testgeneratorDSL.Loop> initLoops(Project project) { + Path testFilePath = ProjectDirectoryUtils.getTestspecificationPath(project.getProjectDirectories()); + String testpackage = project.getProjectDirectories().getTestPackage(); + List<de.fhmuenster.masterthesis.testgeneratorDSL.Loop> dslLoops = null; + + try { + TestgeneratorDSLSerializer serializer = new TestgeneratorDSLSerializer(testFilePath.toString()); + + BPMNDiagram bpmnDiagram = serializer.getBPMNDiagram("process"); + if (bpmnDiagram == null) { + BPMNBundle bpmnBundle = BPMNParseUtils.readBPMNBundle(project); + List<DMNBundle> dmnBundles = BPMNParseUtils.readDMNBundles(project); + List<EmbeddedFormDocument> embeddedFormDocuments = BPMNParseUtils.readEmbeddedFormDocuments(project); + List<DMNDecisionModel> decisionModels = BPMNParseUtils.getDecisionModels(dmnBundles); + bpmnDiagram = BPMNParseUtils.getBPMNDiagram(bpmnBundle.getProcessModel(), testpackage, decisionModels, + embeddedFormDocuments); + + // Build Single-Entry-Single-Exit-Graph + SESEBuilder seseBuilder = new SESEBuilder(bpmnBundle.getModelInstance()); + seseBuilder.buildSingleEntrySingleExit(); + List<IsElement> seseTransform = seseBuilder.getSeseTransform(); + + // Scan for loops + LoopScanner loopScanner = new LoopScanner(seseTransform); + List<Loop> loops = loopScanner.scanLoops(); + + // Set frequency for loops + LoopFrequencyAssigner frequencyAssigner = new LoopFrequencyAssigner(loops); + frequencyAssigner.assign(); + + serializer.addBPMNDiagram(bpmnDiagram); + dslLoops = flowService.getDSLLoops(loops); + dslLoops.forEach(dslLoop -> serializer.addLoop(dslLoop)); + + serializer.serialize(); + } + + } catch (IOException e) { + e.printStackTrace(); + } + + if (dslLoops == null) { + return flowService.getLoops(project.getProjectDirectories()); + } + + return dslLoops; + } + + public void initTestcollection(Project project) { + Path testFilePath = ProjectDirectoryUtils.getTestspecificationPath(project.getProjectDirectories()); + String testpackage = project.getProjectDirectories().getTestPackage(); + + try { + TestgeneratorDSLSerializer serializer = new TestgeneratorDSLSerializer(testFilePath.toString()); + + BPMNDiagram bpmnDiagram = serializer.getBPMNDiagram("process"); + List<FlowElement> flowElementsCheck = serializer.getFlowElements(); + + if (bpmnDiagram != null && flowElementsCheck.isEmpty()) { + BPMNBundle bpmnBundle = BPMNParseUtils.readBPMNBundle(project); + List<DMNBundle> dmnBundles = BPMNParseUtils.readDMNBundles(project); + List<EmbeddedFormDocument> embeddedFormDocuments = BPMNParseUtils.readEmbeddedFormDocuments(project); + List<DMNDecisionModel> decisionModels = BPMNParseUtils.getDecisionModels(dmnBundles); + + List<de.fhmuenster.masterthesis.testgeneratorDSL.Loop> dslLoops = serializer.getLoops(); + List<Loop> loops = getLoops(dslLoops); + + // Parse different flows of process model + BPMNFlowScanner scanner = new BPMNFlowScanner(bpmnBundle.getModelInstance(), loops); + BPMNFlowSet flowSet = scanner.scanFlows(); + + if (LOGGER.isInfo()) { + millisDataStart = System.currentTimeMillis(); + } + + // Read FormFields from Events and Tasks + BPMNVariableFormFieldScanner variableScanner = new BPMNVariableFormFieldScanner(flowSet); + EmbeddedFormDocument[] embeddedArray = new EmbeddedFormDocument[embeddedFormDocuments.size()]; + variableScanner.setEmbeddedFormDocuments(embeddedFormDocuments.toArray(embeddedArray)); + variableScanner.doScan(); + BPMNFormFields formFields = variableScanner.getFormFields(); + + // Read Input/Output-Parameters + BPMNVariableIOScanner variableIOScanner = new BPMNVariableIOScanner(flowSet); + variableIOScanner.doScan(); + BPMNIOParameters bpmnIOParameters = variableIOScanner.getBpmnIOParameters(); + + // Parse conditional expressions + BPMNExpressionScanner expressionScanner = new BPMNExpressionScanner(flowSet); + expressionScanner.doScan(); + BPMNExpressions expressions = expressionScanner.getExpressions(); + + List<DMNVariables> dmnVariableList = BPMNParseUtils.getDMNVariables(dmnBundles); + + BPMNVariableBoundaryScanner boundaryScanner = new BPMNVariableBoundaryScanner(expressions, formFields, + bpmnIOParameters, dmnVariableList); + boundaryScanner.doScan(); + HashMap<String, BPMNTestdata<?>> variableTestdata = boundaryScanner.getVariableTestdata(); + + List<Variable> variables = BPMNParseUtils.getVariables(formFields, variableTestdata, bpmnIOParameters); + + if (LOGGER.isInfo()) { + millisDataEnd = System.currentTimeMillis(); + LOGGER.info("Time needed for Data-Scan: " + (millisDataEnd - millisDataStart) + " ms"); + } + + List<ExternalTopic> externalTopics = getExternalTopics(flowSet); + List<FlowElement> flowElements = getFlowElements(flowSet, variables, formFields, expressions, + bpmnIOParameters, externalTopics); + List<Flow> flows = getFlows(bpmnDiagram, flowSet, flowElements); + + flowElements.forEach(flowElement -> serializer.addFlowElement(flowElement)); + variables.forEach(var -> serializer.addVariable(var)); + externalTopics.forEach(externalTopic -> serializer.addExternalTopic(externalTopic)); + flows.forEach(flow -> serializer.addFlow(flow)); + + serializer.serialize(); + } + + } catch (IOException e) { + e.printStackTrace(); + } + } + + public void addTest(BPMNTestcase testcase, ProjectDirectories projectDirectories) { + Path testspecificationPath = ProjectDirectoryUtils.getTestspecificationPath(projectDirectories); + + try { + TestgeneratorDSLSerializer serializer = new TestgeneratorDSLSerializer(testspecificationPath.toString()); + + checkTestIdAlreadyTaken(testcase.getName(), serializer); + + addTest(testcase, serializer, projectDirectories); + + serializer.serialize(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + public void updateTest(String testId, BPMNTestcase testcase, ProjectDirectories projectDirectories) { + Path testspecificationPath = ProjectDirectoryUtils.getTestspecificationPath(projectDirectories); + + try { + TestgeneratorDSLSerializer serializer = new TestgeneratorDSLSerializer(testspecificationPath.toString()); + + if (!testId.equals(testcase.getName())) { + checkTestIdAlreadyTaken(testcase.getName(), serializer); + } + + Test testToDelete = getTest(testId, serializer); + serializer.deleteTest(testToDelete.getName()); + + addTest(testcase, serializer, projectDirectories); + + serializer.serialize(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + private void addTest(BPMNTestcase testcase, TestgeneratorDSLSerializer serializer, + ProjectDirectories projectDirectories) { + Flow flow = serializer.getFlow(testcase.getFlow()); + List<FlowElement> flowElements = serializer.getFlowElements(); + List<Variable> variables = serializer.getVariables(); + List<Mock> mocks = mockService.getMocks(testcase.getMocks(), projectDirectories); + + Test newTest = TestConverter.getTest(testcase, flow, flowElements, variables, mocks); + serializer.addTest(newTest); + } + + public List<VariableProposal<?>> getVariableProposals(ProjectDirectories projectDirectories) { + Path testspecificationPath = ProjectDirectoryUtils.getTestspecificationPath(projectDirectories); + + List<VariableProposal<?>> variableProposals = new ArrayList<>(); + try { + TestgeneratorDSLSerializer serializer = new TestgeneratorDSLSerializer(testspecificationPath.toString()); + + variableProposals = serializer.getVariableProposals(); + } catch (IOException e) { + e.printStackTrace(); + } + + return variableProposals; + } + + public List<BPMNTestcase> getTests(ProjectDirectories projectDirectories, Flow flow) { + Path testspecificationPath = ProjectDirectoryUtils.getTestspecificationPath(projectDirectories); + + try { + TestgeneratorDSLSerializer serializer = new TestgeneratorDSLSerializer(testspecificationPath.toString()); + + List<Test> testsForFlow = serializer.getTestsForFlow(flow); + List<BPMNTestcase> bpmnTestcases = new ArrayList<>(); + for (Test test : testsForFlow) { + bpmnTestcases.add(TestConverter.getBPMNTestcase(test)); + } + + return bpmnTestcases; + } catch (IOException e) { + // + } + + return null; + } + + public BPMNTestcase getTest(ProjectDirectories projectDirectories, String testId) { + Path testspecificationPath = ProjectDirectoryUtils.getTestspecificationPath(projectDirectories); + + try { + TestgeneratorDSLSerializer serializer = new TestgeneratorDSLSerializer(testspecificationPath.toString()); + + Test test = getTest(testId, serializer); + + BPMNTestcase bpmnTestcase = TestConverter.getBPMNTestcase(test); + return bpmnTestcase; + } catch (IOException e) { + // + } + + return null; + } + + public void deleteTest(ProjectDirectories projectDirectories, String testId) { + Path testspecificationPath = ProjectDirectoryUtils.getTestspecificationPath(projectDirectories); + + try { + TestgeneratorDSLSerializer serializer = new TestgeneratorDSLSerializer(testspecificationPath.toString()); + + serializer.deleteTest(testId); + + serializer.serialize(); + } catch (IOException e) { + // + } + } + + public List<FlowElement> getUserInputTasks(Flow flow) { + return TestgeneratorDSLUtils.getUserInputElements(flow); + } + + public Map<String, Long> getFlowTestcount(ProjectDirectories projectDirectories) { + Path testspecificationPath = ProjectDirectoryUtils.getTestspecificationPath(projectDirectories); + + try { + TestgeneratorDSLSerializer serializer = new TestgeneratorDSLSerializer(testspecificationPath.toString()); + Map<String, Long> flowTestCount = serializer.getFlowTestCount(); + + return flowTestCount; + } catch (IOException e) { + // + } + + return new HashMap<>(); + } + + private List<FlowElement> getFlowElements(BPMNFlowSet flowSet, List<Variable> variables, BPMNFormFields formFields, + BPMNExpressions expressions, BPMNIOParameters bpmnIOParameters, List<ExternalTopic> externalTopics) { + return flowSet.getFlowElements().stream() // + .map(flowElement -> getFlowElement(flowElement, variables, formFields, expressions, bpmnIOParameters, + externalTopics)) // + .collect(Collectors.toList()); // + } + + private FlowElement getFlowElement(org.camunda.bpm.model.bpmn.instance.FlowElement flowElement, + List<Variable> variables, BPMNFormFields formFields, BPMNExpressions expressions, + BPMNIOParameters bpmnIOParameters, List<ExternalTopic> externalTopics) { + + if (flowElement instanceof StartEvent) { + List<Variable> inputVariables = filterFlowElementVariables(variables, + formFields.getVariablesForTask(flowElement.getId())); + 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.getOutputVariables(flowElement.getId())); + inputVariableNames.addAll(formFields.getVariablesForTask(flowElement.getId())); + + List<Variable> inputVariables = filterFlowElementVariables(variables, inputVariableNames); + + return TestgeneratorDSLObjectCreator.createUserTaskFlowElement(flowElement.getId(), inputVariables); + } else if (flowElement instanceof ManualTask) { + return TestgeneratorDSLObjectCreator.createManualTaskFlowElement(flowElement.getId()); + } else if (flowElement instanceof ScriptTask) { + return TestgeneratorDSLObjectCreator.createScriptTaskFlowElement(flowElement.getId()); + } else if (flowElement instanceof BusinessRuleTask) { + String resultVariable = BPMNParseUtils.getResultVariable((BusinessRuleTask) flowElement); + + return TestgeneratorDSLObjectCreator.createBusinessRuleTaskFlowElement(flowElement.getId(), resultVariable); + } else if (flowElement instanceof ServiceTask) { + String delegate = getDelegate((ServiceTask) flowElement); + String externalTopicTextual = getExternalTopic((ServiceTask) flowElement); + ExternalTopic externalTopic = getExternalTopic(externalTopics, externalTopicTextual); + + if (delegate != null) { + return TestgeneratorDSLObjectCreator.createDelegateServiceTaskFlowElement(flowElement.getId(), + delegate); + } else if (externalTopic != null) { + List<VariableDeclaration> hardcodedVariables = BPMNParseUtils.getHardcodedVariables(flowElement.getId(), variables, + bpmnIOParameters); + return TestgeneratorDSLObjectCreator.createExternalServiceTaskFlowElement(flowElement.getId(), + externalTopic, hardcodedVariables); + } else { + throw new IncompleteFlowElementException(flowElement.getId()); + } + } else if (flowElement instanceof SequenceFlow) { + String expression = expressions.getSequenceFlowExpressionMap().get(flowElement.getId()); + return TestgeneratorDSLObjectCreator.createSequenceFlowElement(flowElement.getId(), expression); + } + + throw new UnsupportedFlowElementException(flowElement.getId()); + } + + private List<Flow> getFlows(BPMNDiagram bpmn, BPMNFlowSet flowSet, List<FlowElement> flowElements) { + return flowSet.getFlows().stream() // + .map(flow -> createFlow(bpmn, flow, flowElements)) // + .collect(Collectors.toList()); // + } + + private Flow createFlow(BPMNDiagram bpmn, BPMNFlow flow, List<FlowElement> flowElements) { + List<String> flowNodes = flow.getFlowElementIds(); + + List<FlowElement> inclFlowElements = getInclFlowElements(flowElements, flowNodes); + List<FlowElement> exclFlowElements = getExclFlowElements(flowElements, flowNodes); + return TestgeneratorDSLObjectCreator.createFlow(flow.getName(), bpmn, inclFlowElements, exclFlowElements); + } + + private List<FlowElement> getInclFlowElements(List<FlowElement> flowElements, List<String> subset) { + return subset.stream() // + .map(flowElementName -> getFlowElementByName(flowElements, flowElementName)) // + .collect(Collectors.toList()); // + } + + private List<FlowElement> getExclFlowElements(List<FlowElement> flowElements, List<String> subset) { + return flowElements.stream() // + .filter(flowElement -> !subset.contains(flowElement.getName())) // + .collect(Collectors.toList()); // + } + + private List<Variable> filterFlowElementVariables(List<Variable> allVariables, + List<String> variablesForFlowElement) { + return allVariables.stream() // + .filter(variable -> variablesForFlowElement.contains(variable.getName())) // + .collect(Collectors.toList()); // + } + + @SuppressWarnings("unchecked") + private <T extends Object> List<T> getProposals(String variable, BPMNTestdata<? extends Object> variableTestdata, + Class<T> clazz) { + return variableTestdata.getValues().stream() // + .map(value -> ((T) value)) // + .collect(Collectors.toList()); // + } + + private List<Integer> getIntProposals(String variable, BPMNTestdata<? extends Object> variableTestdata) { + return variableTestdata.getValues().stream() // + .map(value -> ((Long) value).intValue()) // + .collect(Collectors.toList()); // + } + + private void checkTestIdAlreadyTaken(String testId, TestgeneratorDSLSerializer serializer) { + Test test = serializer.getTest(testId); + + if (test != null) { + throw new TestIdAlreadyTakenException(testId); + } + } + + private Test getTest(String testId, TestgeneratorDSLSerializer serializer) { + Test test = serializer.getTest(testId); + if (test == null) { + throw new TestNotFoundException(testId); + } + + return test; + } + + private FlowElement getFlowElementByName(List<FlowElement> flowElements, String name) { + return flowElements.stream() // + .filter(flowElement -> flowElement.getName().equals(name)) // + .findFirst() // + .get(); // always present + } + + private String getDelegate(ServiceTask serviceTask) { + String delegate = serviceTask.getAttributeValueNs(NAMESPACE_URI_BPMN, "delegateExpression"); + + if (delegate != null) { + delegate = delegate.substring(2, delegate.length() - 1); + } + + return delegate; + } + + private List<ExternalTopic> getExternalTopics(BPMNFlowSet flowSet) { + return flowSet.getFlowElements().stream() // + .filter(flowElement -> flowElement instanceof ServiceTask) // + .map(serviceTask -> ((ServiceTask) serviceTask)) // + .map(serviceTask -> getExternalTopic(serviceTask)) // + .filter(externalTopicName -> externalTopicName != null) // + .distinct() // + .map(externalTopicName -> TestgeneratorDSLObjectCreator.createExternalTopic(externalTopicName)) // + .collect(Collectors.toList()); // + } + + private String getExternalTopic(ServiceTask serviceTask) { + String externalTopic = serviceTask.getAttributeValueNs(NAMESPACE_URI_BPMN, "topic"); + return externalTopic; + } + + private ExternalTopic getExternalTopic(List<ExternalTopic> externalTopics, String externalTopicTextual) { + Optional<ExternalTopic> externalTopicOpt = externalTopics.stream() // + .filter(externalTopic -> externalTopic.getName().equals(externalTopicTextual)) // + .findFirst(); + + return externalTopicOpt.isPresent() ? externalTopicOpt.get() : null; + } + + + + private List<Loop> getLoops(List<de.fhmuenster.masterthesis.testgeneratorDSL.Loop> dslLoops) { + return dslLoops.stream() // + .map(dslLoop -> getLoop(dslLoop)) // + .collect(Collectors.toList()); // + } + + private Loop getLoop(de.fhmuenster.masterthesis.testgeneratorDSL.Loop dslLoop) { + Loop loop = new Loop(); + loop.setId(dslLoop.getName()); + loop.setEndId(dslLoop.getEnd()); + loop.setStartId(dslLoop.getStart()); + loop.setStartFollowerId(dslLoop.getFollower()); + loop.setComplexity(dslLoop.getComplexity()); + loop.setFrequencies(TestgeneratorDSLUtils.getFrequencies(dslLoop)); + + return loop; + } +} 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 93b97cdfc716d956a09a812c124fccb2064cc248..1058f4830164fe84dc88b0831709af0317155c4a 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 @@ -10,6 +10,7 @@ import java.util.stream.Collectors; import java.util.stream.Stream; import org.camunda.bpm.model.bpmn.BpmnModelInstance; +import org.camunda.bpm.model.bpmn.instance.BusinessRuleTask; import org.camunda.bpm.model.bpmn.instance.ServiceTask; import org.camunda.bpm.model.dmn.DmnModelInstance; @@ -223,6 +224,11 @@ public class BPMNParseUtils { return externalTopic; } + public static String getResultVariable(BusinessRuleTask businessRuleTask) { + String resultVariable = businessRuleTask.getAttributeValueNs(NAMESPACE_URI_BPMN, "resultVariable"); + return resultVariable; + } + public static List<VariableDeclaration> getHardcodedVariables(String flowElementId, List<Variable> variables, BPMNIOParameters bpmnIOParameters) { List<VariableDeclaration> hardcodedVariables = new ArrayList<>(); diff --git a/Testgenerator/src/main/resources/application.properties b/Testgenerator/src/main/resources/application.properties index f7d1dac8f318dd197818d957016bb699648d3ac4..59dee823fb4526817c23b33c82a43e5911377485 100644 --- a/Testgenerator/src/main/resources/application.properties +++ b/Testgenerator/src/main/resources/application.properties @@ -1,3 +1,3 @@ logging.level.root=INFO -testgenerator.projects=C:\\CodePro\\projects.json +testgenerator.projects=C:\\Users\\tillb\\Desktop\\fe_projekt\\projects.json diff --git a/Testgenerator/src/main/resources/migration.yaml b/Testgenerator/src/main/resources/migration.yaml index 8781b0b7bf0cf68def945a8c811999455d16c616..55fe0103660b9f994b2b4ba453bb34b18e927ba5 100644 --- a/Testgenerator/src/main/resources/migration.yaml +++ b/Testgenerator/src/main/resources/migration.yaml @@ -26,5 +26,4 @@ activity: status: RED priority: 0 manualTask: - status: GREEN - priority: 0 \ No newline at end of file + status: GREEN \ No newline at end of file diff --git a/testgenerator-web/testgenerator-web/src/app/migration-overview/migration-overview.component.css b/testgenerator-web/testgenerator-web/src/app/components/migration-overview/migration-overview.component.css similarity index 100% rename from testgenerator-web/testgenerator-web/src/app/migration-overview/migration-overview.component.css rename to testgenerator-web/testgenerator-web/src/app/components/migration-overview/migration-overview.component.css diff --git a/testgenerator-web/testgenerator-web/src/app/migration-overview/migration-overview.component.html b/testgenerator-web/testgenerator-web/src/app/components/migration-overview/migration-overview.component.html similarity index 100% rename from testgenerator-web/testgenerator-web/src/app/migration-overview/migration-overview.component.html rename to testgenerator-web/testgenerator-web/src/app/components/migration-overview/migration-overview.component.html diff --git a/testgenerator-web/testgenerator-web/src/app/migration-overview/migration-overview.component.spec.ts b/testgenerator-web/testgenerator-web/src/app/components/migration-overview/migration-overview.component.spec.ts similarity index 100% rename from testgenerator-web/testgenerator-web/src/app/migration-overview/migration-overview.component.spec.ts rename to testgenerator-web/testgenerator-web/src/app/components/migration-overview/migration-overview.component.spec.ts diff --git a/testgenerator-web/testgenerator-web/src/app/migration-overview/migration-overview.component.ts b/testgenerator-web/testgenerator-web/src/app/components/migration-overview/migration-overview.component.ts similarity index 85% rename from testgenerator-web/testgenerator-web/src/app/migration-overview/migration-overview.component.ts rename to testgenerator-web/testgenerator-web/src/app/components/migration-overview/migration-overview.component.ts index a0aec047820e5814dc080a2c54b190734535c44a..ca40a67be0438d83f52853aee7e3c174e151cbae 100644 --- a/testgenerator-web/testgenerator-web/src/app/migration-overview/migration-overview.component.ts +++ b/testgenerator-web/testgenerator-web/src/app/components/migration-overview/migration-overview.component.ts @@ -1,7 +1,7 @@ import { Component, OnInit } from '@angular/core'; import { ActivatedRoute } from '@angular/router'; -import { MigrationResultWrapper } from '../models/migration-result-wrapper'; -import { MigrationService } from '../services/migration-service'; +import { MigrationResultWrapper } from '../../models/migration-result-wrapper'; +import { MigrationService } from '../../services/migration-service'; @Component({ selector: 'app-migration-overview',