@Test @ScenarioUnderTest("init.5") public void testInitThrowUnhandledException() { // given ProcessInstance instance = rule.processInstance(); Task innerMiSubProcessTask = rule.taskQuery().taskDefinitionKey("innerSubProcessTask").singleResult(); // when rule.getRuntimeService() .setVariable(instance.getId(), ThrowBpmnErrorDelegate.EXCEPTION_INDICATOR_VARIABLE, true); rule.getRuntimeService() .setVariable( instance.getId(), ThrowBpmnErrorDelegate.EXCEPTION_MESSAGE_VARIABLE, "unhandledException"); // then try { rule.getTaskService().complete(innerMiSubProcessTask.getId()); Assert.fail("should throw a ThrowBpmnErrorDelegateException"); } catch (ThrowBpmnErrorDelegateException e) { Assert.assertEquals("unhandledException", e.getMessage()); } }
@Test @ScenarioUnderTest("init.3") public void testInitDeletion() { // given ProcessInstance instance = rule.processInstance(); // when rule.getRuntimeService().deleteProcessInstance(instance.getId(), null); // then rule.assertScenarioEnded(); }
@Test @ScenarioUnderTest("init.1") public void testInitCompletionCase1() { // given Task innerMiSubProcessTask = rule.taskQuery().taskDefinitionKey("innerSubProcessTask").singleResult(); // when the first instance innerSubProcessTask and the other eight instances are completed rule.getTaskService().complete(innerMiSubProcessTask.getId()); for (int i = 0; i < 8; i++) { innerMiSubProcessTask = rule.taskQuery().taskDefinitionKey("innerSubProcessTask").singleResult(); Assert.assertNotNull(innerMiSubProcessTask); rule.getTaskService().complete(innerMiSubProcessTask.getId()); } // then rule.assertScenarioEnded(); }
@Test @ScenarioUnderTest("init.2") public void testInitActivityInstanceTree() { // given ProcessInstance instance = rule.processInstance(); // when ActivityInstance activityInstance = rule.getRuntimeService().getActivityInstance(instance.getId()); // then Assert.assertNotNull(activityInstance); assertThat(activityInstance) .hasStructure( describeActivityInstanceTree(instance.getProcessDefinitionId()) // the subprocess itself misses because it was no scope in 7.2 .beginMiBody("outerMiSubProcess") // the subprocess itself misses because it was no scope in 7.2 .beginMiBody("innerMiSubProcess") .activity("innerSubProcessTask") .done()); }
@Test @ScenarioUnderTest("init.4") public void testInitThrowError() { // given ProcessInstance instance = rule.processInstance(); Task innerMiSubProcessTask = rule.taskQuery().taskDefinitionKey("innerSubProcessTask").singleResult(); // when rule.getRuntimeService() .setVariable(instance.getId(), ThrowBpmnErrorDelegate.ERROR_INDICATOR_VARIABLE, true); rule.getTaskService().complete(innerMiSubProcessTask.getId()); // then Task escalatedTask = rule.taskQuery().singleResult(); Assert.assertEquals("escalatedTask", escalatedTask.getTaskDefinitionKey()); Assert.assertNotNull(escalatedTask); rule.getTaskService().complete(escalatedTask.getId()); rule.assertScenarioEnded(); }