/** * 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 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"); }
@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"); }