public JobRecordStream withHeaders(final Headers headers) { return valueFilter(v -> headers.equals(v.getHeaders())); }
public JobRecordStream withCustomHeaders(final Map<String, Object> customHeaders) { return valueFilter(v -> customHeaders.equals(v.getCustomHeaders())); }
public JobRecordStream withDeadline(final long deadline) { return valueFilter(v -> Instant.ofEpochMilli(deadline).equals(v.getDeadline())); } }
@Test public void shouldCompleteJob() { // given createJob(JOB_TYPE); apiRule.activateJobs(JOB_TYPE).await(); final Record<JobRecordValue> jobEvent = receiveSingleJobEvent(); // when final JobRecordValue jobEventValue = jobEvent.getValue(); final ExecuteCommandResponse response = testClient.completeJob(jobEvent.getKey(), jobEventValue.getPayload()); // then assertThat(response.getRecordType()).isEqualTo(RecordType.EVENT); assertThat(response.getIntent()).isEqualTo(JobIntent.COMPLETED); assertThat(response.getValue()) .contains( entry("worker", jobEventValue.getWorker()), entry("type", jobEventValue.getType()), entry("retries", (long) jobEventValue.getRetries()), entry("deadline", jobEventValue.getDeadline().toEpochMilli())); final Record<JobRecordValue> loggedEvent = RecordingExporter.jobRecords(JobIntent.COMPLETED).getFirst(); assertThat(loggedEvent.getValue().getType()).isEqualTo(JOB_TYPE); }
@Test public void shouldFail() { // given client.createJob(JOB_TYPE); apiRule.activateJobs(JOB_TYPE).await(); final Record<JobRecordValue> jobEvent = client.receiveFirstJobEvent(ACTIVATED); final int retries = 23; // when final ExecuteCommandResponse response = client.failJob(jobEvent.getKey(), retries); // then final JobRecordValue jobEventValue = jobEvent.getValue(); assertThat(response.getRecordType()).isEqualTo(RecordType.EVENT); assertThat(response.getIntent()).isEqualTo(FAILED); assertThat(response.getValue()) .contains( entry("worker", jobEventValue.getWorker()), entry("type", jobEventValue.getType()), entry("retries", (long) retries), entry("deadline", jobEventValue.getDeadline().toEpochMilli())); final Record<JobRecordValue> loggedEvent = RecordingExporter.jobRecords(FAILED).getFirst(); assertThat(loggedEvent.getValue().getType()).isEqualTo(JOB_TYPE); }
@Test public void shouldFailWithMessage() { // given client.createJob(JOB_TYPE); apiRule.activateJobs(JOB_TYPE).await(); final Record<JobRecordValue> jobEvent = client.receiveFirstJobEvent(ACTIVATED); final int retries = 23; // when final ExecuteCommandResponse response = client.failJobWithMessage(jobEvent.getKey(), retries, "failed job"); // then final JobRecordValue jobEventValue = jobEvent.getValue(); assertThat(response.getRecordType()).isEqualTo(RecordType.EVENT); assertThat(response.getIntent()).isEqualTo(FAILED); assertThat(response.getValue()) .contains( entry("worker", jobEventValue.getWorker()), entry("type", jobEventValue.getType()), entry("retries", (long) retries), entry("deadline", jobEventValue.getDeadline().toEpochMilli()), entry("errorMessage", "failed job")); final Record<JobRecordValue> loggedEvent = RecordingExporter.jobRecords(FAILED).getFirst(); assertThat(loggedEvent.getValue().getType()).isEqualTo(JOB_TYPE); assertThat(loggedEvent.getValue().getErrorMessage()).isEqualTo("failed job"); }
final Headers jobRecordHeaders = jobRecord.getValue().getHeaders(); assertThat(headers) .contains( assertThat(customHeaders).isEqualTo(jobRecord.getValue().getCustomHeaders());
public JobRecordStream withRetries(final int retries) { return valueFilter(v -> v.getRetries() == retries); }
@Test public void shouldCreateJobForServiceTaskInEmbeddedSubprocess() { // given testClient.deploy(ONE_TASK_SUBPROCESS); final byte[] payload = BufferUtil.bufferAsArray(MsgPackUtil.asMsgPack("key", "val")); // when testClient.createWorkflowInstance(PROCESS_ID, payload); // then final Record<JobRecordValue> jobCreatedEvent = testClient.receiveFirstJobEvent(JobIntent.CREATED); MsgPackUtil.assertEquality(payload, jobCreatedEvent.getValue().getPayload()); final Headers headers = jobCreatedEvent.getValue().getHeaders(); Assertions.assertThat(headers).hasElementId("subProcessTask"); }
public JobRecordStream withType(final String type) { return valueFilter(v -> type.equals(v.getType())); }
public JobRecordStream withWorker(final String worker) { return valueFilter(v -> worker.equals(v.getWorker())); }
/** * Verifies that the actual JobRecordValue's errorMessage is equal to the given one. * @param errorMessage the given errorMessage to compare the actual JobRecordValue's errorMessage to. * @return this assertion object. * @throws AssertionError - if the actual JobRecordValue's errorMessage is not equal to the given one. */ public S hasErrorMessage(String errorMessage) { // check that actual JobRecordValue we want to make assertions on is not null. isNotNull(); // overrides the default error message with a more explicit one String assertjErrorMessage = "\nExpecting errorMessage of:\n <%s>\nto be:\n <%s>\nbut was:\n <%s>"; // null safe check String actualErrorMessage = actual.getErrorMessage(); if (!Objects.areEqual(actualErrorMessage, errorMessage)) { failWithMessage(assertjErrorMessage, actual, errorMessage, actualErrorMessage); } // return the current assertion for method chaining return myself; }
@Test public void shouldCompleteJob() { // given createJob(JOB_TYPE); apiRule.activateJobs(JOB_TYPE).await(); final Record<JobRecordValue> jobEvent = receiveSingleJobEvent(); // when final JobRecordValue jobEventValue = jobEvent.getValue(); final ExecuteCommandResponse response = testClient.completeJob(jobEvent.getKey(), jobEventValue.getPayload()); // then assertThat(response.getRecordType()).isEqualTo(RecordType.EVENT); assertThat(response.getIntent()).isEqualTo(JobIntent.COMPLETED); assertThat(response.getValue()) .contains( entry("worker", jobEventValue.getWorker()), entry("type", jobEventValue.getType()), entry("retries", (long) jobEventValue.getRetries()), entry("deadline", jobEventValue.getDeadline().toEpochMilli())); final Record<JobRecordValue> loggedEvent = RecordingExporter.jobRecords(JobIntent.COMPLETED).getFirst(); assertThat(loggedEvent.getValue().getType()).isEqualTo(JOB_TYPE); }
@Test public void shouldFail() { // given client.createJob(JOB_TYPE); apiRule.activateJobs(JOB_TYPE).await(); final Record<JobRecordValue> jobEvent = client.receiveFirstJobEvent(ACTIVATED); final int retries = 23; // when final ExecuteCommandResponse response = client.failJob(jobEvent.getKey(), retries); // then final JobRecordValue jobEventValue = jobEvent.getValue(); assertThat(response.getRecordType()).isEqualTo(RecordType.EVENT); assertThat(response.getIntent()).isEqualTo(FAILED); assertThat(response.getValue()) .contains( entry("worker", jobEventValue.getWorker()), entry("type", jobEventValue.getType()), entry("retries", (long) retries), entry("deadline", jobEventValue.getDeadline().toEpochMilli())); final Record<JobRecordValue> loggedEvent = RecordingExporter.jobRecords(FAILED).getFirst(); assertThat(loggedEvent.getValue().getType()).isEqualTo(JOB_TYPE); }
@Test public void shouldFailWithMessage() { // given client.createJob(JOB_TYPE); apiRule.activateJobs(JOB_TYPE).await(); final Record<JobRecordValue> jobEvent = client.receiveFirstJobEvent(ACTIVATED); final int retries = 23; // when final ExecuteCommandResponse response = client.failJobWithMessage(jobEvent.getKey(), retries, "failed job"); // then final JobRecordValue jobEventValue = jobEvent.getValue(); assertThat(response.getRecordType()).isEqualTo(RecordType.EVENT); assertThat(response.getIntent()).isEqualTo(FAILED); assertThat(response.getValue()) .contains( entry("worker", jobEventValue.getWorker()), entry("type", jobEventValue.getType()), entry("retries", (long) retries), entry("deadline", jobEventValue.getDeadline().toEpochMilli()), entry("errorMessage", "failed job")); final Record<JobRecordValue> loggedEvent = RecordingExporter.jobRecords(FAILED).getFirst(); assertThat(loggedEvent.getValue().getType()).isEqualTo(JOB_TYPE); assertThat(loggedEvent.getValue().getErrorMessage()).isEqualTo("failed job"); }
final Headers jobRecordHeaders = jobRecord.getValue().getHeaders(); assertThat(headers) .contains( assertThat(customHeaders).isEqualTo(jobRecord.getValue().getCustomHeaders());
public JobRecordStream withRetries(final int retries) { return valueFilter(v -> v.getRetries() == retries); }
@Test public void shouldCreateJobForServiceTaskInEmbeddedSubprocess() { // given testClient.deploy(ONE_TASK_SUBPROCESS); final byte[] payload = BufferUtil.bufferAsArray(MsgPackUtil.asMsgPack("key", "val")); // when testClient.createWorkflowInstance(PROCESS_ID, payload); // then final Record<JobRecordValue> jobCreatedEvent = testClient.receiveFirstJobEvent(JobIntent.CREATED); MsgPackUtil.assertEquality(payload, jobCreatedEvent.getValue().getPayload()); final Headers headers = jobCreatedEvent.getValue().getHeaders(); Assertions.assertThat(headers).hasElementId("subProcessTask"); }
public JobRecordStream withType(final String type) { return valueFilter(v -> type.equals(v.getType())); }
public JobRecordStream withWorker(final String worker) { return valueFilter(v -> worker.equals(v.getWorker())); }