@Test @OperateOnDeployment("app") public void testInvokeProcessApplicationWithContextOnStart() { ProcessInstance pi = runtimeService.startProcessInstanceByKey("messageProcess"); InvocationContext invocationContext = ProcessApplicationWithInvocationContext.getInvocationContext(); assertThat(invocationContext, is(notNullValue())); assertThat(invocationContext.getExecution(), is(notNullValue())); assertThat(invocationContext.getExecution().getId(), is(pi.getId())); }
@Test @OperateOnDeployment("app") public void testInvokeProcessApplicationWithContextOnSignalTask() { runtimeService.startProcessInstanceByKey("signalableProcess"); ProcessApplicationWithInvocationContext.clearInvocationContext(); Execution execution = runtimeService.createExecutionQuery().activityId("waitingTask").singleResult(); assertThat(execution, is(notNullValue())); runtimeService.signal(execution.getId()); InvocationContext invocationContext = ProcessApplicationWithInvocationContext.getInvocationContext(); assertThat(invocationContext, is(notNullValue())); assertThat(invocationContext.getExecution(), is(notNullValue())); assertThat(invocationContext.getExecution().getId(), is(execution.getId())); }
@Test @OperateOnDeployment("app") public void testInvokeProcessApplicationWithContextOnAsyncExecution() { runtimeService.startProcessInstanceByKey("timerProcess"); ProcessApplicationWithInvocationContext.clearInvocationContext(); Job timer = managementService.createJobQuery().timers().singleResult(); assertThat(timer, is(notNullValue())); long dueDate = timer.getDuedate().getTime(); Date afterDueDate = new Date(dueDate + 1000 * 60); ClockUtil.setCurrentTime(afterDueDate); waitForJobExecutorToProcessAllJobs(); InvocationContext invocationContext = ProcessApplicationWithInvocationContext.getInvocationContext(); assertThat(invocationContext, is(notNullValue())); assertThat(invocationContext.getExecution(), is(notNullValue())); assertThat(invocationContext.getExecution().getId(), is(timer.getExecutionId())); }
@Test @OperateOnDeployment("app") public void testInvokeProcessApplicationWithContextOnMessageReceived() { ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("messageProcess"); ProcessApplicationWithInvocationContext.clearInvocationContext(); EventSubscription messageSubscription = runtimeService.createEventSubscriptionQuery().eventType("message").processInstanceId(processInstance.getId()).singleResult(); assertThat(messageSubscription, is(notNullValue())); runtimeService.messageEventReceived(messageSubscription.getEventName(), messageSubscription.getExecutionId()); InvocationContext invocationContext = ProcessApplicationWithInvocationContext.getInvocationContext(); assertThat(invocationContext, is(notNullValue())); assertThat(invocationContext.getExecution(), is(notNullValue())); assertThat(invocationContext.getExecution().getId(), is(messageSubscription.getExecutionId())); }