public static void assertWorkflowInstanceRecord( String bpmnId, int version, long workflowInstanceKey, String elementId, Record<WorkflowInstanceRecordValue> workflowInstanceCanceledEvent) { Assertions.assertThat(workflowInstanceCanceledEvent.getValue()) .hasBpmnProcessId(bpmnId) .hasVersion(version) .hasWorkflowInstanceKey(workflowInstanceKey) .hasElementId(elementId); }
public static void assertWorkflowInstanceRecord( String bpmnId, int version, long workflowInstanceKey, String elementId, Record<WorkflowInstanceRecordValue> workflowInstanceCanceledEvent) { Assertions.assertThat(workflowInstanceCanceledEvent.getValue()) .hasBpmnProcessId(bpmnId) .hasVersion(version) .hasWorkflowInstanceKey(workflowInstanceKey) .hasElementId(elementId); }
public static void assertWorkflowInstanceRecord( long workflowInstanceKey, String elementId, Record<WorkflowInstanceRecordValue> workflowInstanceCanceledEvent) { Assertions.assertThat(workflowInstanceCanceledEvent.getValue()) .hasBpmnProcessId(PROCESS_ID) .hasVersion(1) .hasWorkflowInstanceKey(workflowInstanceKey) .hasElementId(elementId); }
public static void assertWorkflowInstanceRecord( long workflowInstanceKey, String elementId, Record<WorkflowInstanceRecordValue> workflowInstanceCanceledEvent) { Assertions.assertThat(workflowInstanceCanceledEvent.getValue()) .hasBpmnProcessId(PROCESS_ID) .hasVersion(1) .hasWorkflowInstanceKey(workflowInstanceKey) .hasElementId(elementId); }
public static void assertWorkflowInstanceRecord( long workflowKey, int version, long workflowInstanceKey, String elementId, Record<WorkflowInstanceRecordValue> workflowInstanceCanceledEvent) { Assertions.assertThat(workflowInstanceCanceledEvent.getValue()) .hasBpmnProcessId(PROCESS_ID) .hasWorkflowKey(workflowKey) .hasVersion(version) .hasWorkflowInstanceKey(workflowInstanceKey) .hasElementId(elementId); }
@Test public void shouldCreateInstancesForDifferentMessages() { // given final ExecuteCommandResponse response = testClient.deployWithResponse(createWorkflowWithTwoMessageStartEvent()); final long workflowKey = getFirstDeployedWorkflowKey(response); // check if two subscriptions are opened assertThat( messageStartEventSubscriptionRecords(MessageStartEventSubscriptionIntent.OPENED) .limit(2) .count()) .isEqualTo(2); // when testClient.publishMessage(MESSAGE_NAME1, "order-123", asMsgPack("foo", "bar")); testClient.publishMessage(MESSAGE_NAME2, "order-124", asMsgPack("foo", "bar")); // then // check if two instances are created final List<Record<WorkflowInstanceRecordValue>> records = RecordingExporter.workflowInstanceRecords(WorkflowInstanceIntent.ELEMENT_COMPLETING) .limit(2) .asList(); assertThat(records.size()).isEqualTo(2); assertThat(records).allMatch(r -> r.getValue().getWorkflowKey() == workflowKey); assertThat(records.get(0).getValue()) .hasElementId(EVENT_ID1); // Message 1 triggers start event 1 assertThat(records.get(1).getValue()) .hasElementId(EVENT_ID2); // Message 2 triggers start event 2 }
public static void assertWorkflowInstanceRecord( long workflowKey, int version, long workflowInstanceKey, String elementId, Record<WorkflowInstanceRecordValue> workflowInstanceCanceledEvent) { Assertions.assertThat(workflowInstanceCanceledEvent.getValue()) .hasBpmnProcessId(PROCESS_ID) .hasWorkflowKey(workflowKey) .hasVersion(version) .hasWorkflowInstanceKey(workflowInstanceKey) .hasElementId(elementId); }
@Test public void shouldCreateInstancesForDifferentMessages() { // given final ExecuteCommandResponse response = testClient.deployWithResponse(createWorkflowWithTwoMessageStartEvent()); final long workflowKey = getFirstDeployedWorkflowKey(response); // check if two subscriptions are opened assertThat( messageStartEventSubscriptionRecords(MessageStartEventSubscriptionIntent.OPENED) .limit(2) .count()) .isEqualTo(2); // when testClient.publishMessage(MESSAGE_NAME1, "order-123", asMsgPack("foo", "bar")); testClient.publishMessage(MESSAGE_NAME2, "order-124", asMsgPack("foo", "bar")); // then // check if two instances are created final List<Record<WorkflowInstanceRecordValue>> records = RecordingExporter.workflowInstanceRecords(WorkflowInstanceIntent.EVENT_TRIGGERING) .limit(2) .asList(); assertThat(records.size()).isEqualTo(2); assertThat(records).allMatch(r -> r.getValue().getWorkflowKey() == workflowKey); assertThat(records.get(0).getValue()) .hasElementId(EVENT_ID1); // Message 1 triggers start event 1 assertThat(records.get(1).getValue()) .hasElementId(EVENT_ID2); // Message 2 triggers start event 2 }
@Test public void shouldCorrelateMessageToStartEvent() { // given final ExecuteCommandResponse response = testClient.deployWithResponse(createWorkflowWithOneMessageStartEvent()); final long workflowKey = getFirstDeployedWorkflowKey(response); // wait until subscription is opened assertThat( messageStartEventSubscriptionRecords(MessageStartEventSubscriptionIntent.OPENED) .exists()) .isTrue(); // when testClient.publishMessage(MESSAGE_NAME1, "order-123", asMsgPack("foo", "bar")); // then final Record<WorkflowInstanceRecordValue> record = RecordingExporter.workflowInstanceRecords(WorkflowInstanceIntent.EVENT_OCCURRED).getFirst(); assertThat(record.getValue()).hasWorkflowKey(workflowKey).hasElementId(EVENT_ID1); }
.getFirst() .getValue()) .hasElementId("start_1") .hasBpmnProcessId("process") .hasVersion(workflow.getVersion())
@Test public void shouldCreateInstanceOnMessage() { // given final ExecuteCommandResponse response = testClient.deployWithResponse(createWorkflowWithOneMessageStartEvent()); final long workflowKey = getFirstDeployedWorkflowKey(response); // wait until subscription is opened assertThat( messageStartEventSubscriptionRecords(MessageStartEventSubscriptionIntent.OPENED) .exists()) .isTrue(); // when testClient.publishMessage(MESSAGE_NAME1, "order-123", asMsgPack("foo", "bar")); // then final List<Record<WorkflowInstanceRecordValue>> records = RecordingExporter.workflowInstanceRecords().limit(5).asList(); assertThat(records) .extracting(r -> r.getMetadata().getIntent()) .containsExactly( WorkflowInstanceIntent.EVENT_OCCURRED, // message WorkflowInstanceIntent.ELEMENT_READY, // workflow instance WorkflowInstanceIntent.ELEMENT_ACTIVATED, WorkflowInstanceIntent.EVENT_TRIGGERING, // start event WorkflowInstanceIntent.EVENT_TRIGGERED); assertThat(records).allMatch(r -> r.getValue().getWorkflowKey() == workflowKey); assertThat(records.get(3).getValue()).hasElementId(EVENT_ID1); final WorkflowInstanceRecordValue eventTriggeredRecord = records.get(4).getValue(); assertThat(eventTriggeredRecord.getPayloadAsMap()).containsEntry("foo", "bar"); }
@Test public void shouldCorrelateMessageToStartEvent() { // given final ExecuteCommandResponse response = testClient.deployWithResponse(createWorkflowWithOneMessageStartEvent()); final long workflowKey = getFirstDeployedWorkflowKey(response); // wait until subscription is opened assertThat( messageStartEventSubscriptionRecords(MessageStartEventSubscriptionIntent.OPENED) .exists()) .isTrue(); // when testClient.publishMessage(MESSAGE_NAME1, "order-123", asMsgPack("foo", "bar")); // then final Record<WorkflowInstanceRecordValue> record = RecordingExporter.workflowInstanceRecords(WorkflowInstanceIntent.EVENT_OCCURRED).getFirst(); assertThat(record.getValue()).hasWorkflowKey(workflowKey).hasElementId(EVENT_ID1); }
.getFirst() .getValue()) .hasElementId("start_1") .hasBpmnProcessId("process") .hasVersion(workflow.getVersion())
@Test public void shouldCreateInstanceOnMessage() { // given final ExecuteCommandResponse response = testClient.deployWithResponse(createWorkflowWithOneMessageStartEvent()); final long workflowKey = getFirstDeployedWorkflowKey(response); // wait until subscription is opened assertThat( messageStartEventSubscriptionRecords(MessageStartEventSubscriptionIntent.OPENED) .exists()) .isTrue(); // when testClient.publishMessage(MESSAGE_NAME1, "order-123", asMsgPack("foo", "bar")); // then final List<Record<WorkflowInstanceRecordValue>> records = RecordingExporter.workflowInstanceRecords().limit(5).asList(); assertThat(records) .extracting(r -> r.getMetadata().getIntent()) .containsExactly( WorkflowInstanceIntent.EVENT_OCCURRED, // message WorkflowInstanceIntent.ELEMENT_ACTIVATING, // workflow instance WorkflowInstanceIntent.ELEMENT_ACTIVATED, WorkflowInstanceIntent.ELEMENT_ACTIVATING, // start event WorkflowInstanceIntent.ELEMENT_ACTIVATED); assertThat(records).allMatch(r -> r.getValue().getWorkflowKey() == workflowKey); assertThat(records.get(3).getValue()).hasElementId(EVENT_ID1); final WorkflowInstanceRecordValue eventTriggeredRecord = records.get(4).getValue(); assertThat(eventTriggeredRecord.getPayloadAsMap()).containsEntry("foo", "bar"); }