Skip to content

Commit

Permalink
Fix broken tests due to previous changes
Browse files Browse the repository at this point in the history
- Fix JavaDoc typo in DeadLetteringEventHandlerInvoker
- Remove verification of TransactionManager use during
DeadLetteringEventHandlerInvoker#handle
- Remove last use of the TransactionManager in the
DeadLetteringEventHandlerInvoker
- Flip the actual and expected fields in the GenericDeadLetterTest as
they do not follow the default  usages of assertEquals

#2021
  • Loading branch information
smcvb committed Aug 8, 2022
1 parent d030c5b commit dd1228d
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 51 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@
* already contained "sequence identifier", according to the {@link SequencingPolicy}, are also enqueued. This ensures
* event ordering is maintained in face of failures.
* <p>
* This dead lettering invoker provides several operations to {@link #processAny()} process}
* This dead lettering invoker provides several operations to {@link #processAny() process}
* {@link DeadLetter dead-letters} it has enqueued. It will ensure the same set of Event Handling Components is invoked
* as with regular event handling when processing a dead-letter. These methods will try to process an entire sequence of
* dead-letters. Furthermore, these are exposed through the {@link SequencedDeadLetterProcessor} contract.
Expand Down Expand Up @@ -109,10 +109,7 @@ public void handle(@Nonnull EventMessage<?> message, @Nonnull Segment segment) t
}

Object sequenceIdentifier = super.sequenceIdentifier(message);
boolean enqueued = transactionManager.fetchInTransaction(() -> queue.enqueueIfPresent(
sequenceIdentifier, () -> new GenericDeadLetter<>(sequenceIdentifier, message)
));
if (enqueued) {
if (queue.enqueueIfPresent(sequenceIdentifier, () -> new GenericDeadLetter<>(sequenceIdentifier, message))) {
if (logger.isInfoEnabled()) {
logger.info("Event [{}] is added to the dead-letter queue since its queue id [{}] is already present.",
message, sequenceIdentifier);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -119,15 +119,14 @@ void testHandleHandlesEventJustFine() throws Exception {
verify(sequencingPolicy, times(2)).getSequenceIdentifierFor(TEST_EVENT);
verify(handler).handle(TEST_EVENT);

verify(transactionManager).fetchInTransaction(any());
//noinspection unchecked
ArgumentCaptor<Supplier<DeadLetter<? extends EventMessage<?>>>> enqueueIfPresentCaptor =
ArgumentCaptor.forClass(Supplier.class);
verify(queue).enqueueIfPresent(eq(TEST_SEQUENCE_ID), enqueueIfPresentCaptor.capture());
assertLetter(expectedIfPresentLetter, enqueueIfPresentCaptor.getValue().get());

verify(queue, never()).enqueue(eq(TEST_SEQUENCE_ID), any());
verify(transactionManager, never()).executeInTransaction(any());
verifyNoInteractions(transactionManager);
}

@Test
Expand Down Expand Up @@ -160,7 +159,6 @@ void testHandleEnqueuesOnShouldEnqueueDecisionWhenDelegateThrowsAnException() th
verify(sequencingPolicy, times(2)).getSequenceIdentifierFor(TEST_EVENT);
verify(handler).handle(TEST_EVENT);

verify(transactionManager).fetchInTransaction(any());
//noinspection unchecked
ArgumentCaptor<Supplier<DeadLetter<? extends EventMessage<?>>>> enqueueIfPresentCaptor =
ArgumentCaptor.forClass(Supplier.class);
Expand All @@ -176,7 +174,7 @@ void testHandleEnqueuesOnShouldEnqueueDecisionWhenDelegateThrowsAnException() th
ArgumentCaptor<DeadLetter<EventMessage<?>>> enqueueCaptor = ArgumentCaptor.forClass(DeadLetter.class);
verify(queue).enqueue(eq(TEST_SEQUENCE_ID), enqueueCaptor.capture());
assertLetter(expectedEnqueuedLetter, enqueueCaptor.getValue());
verify(transactionManager).executeInTransaction(any());
verifyNoInteractions(transactionManager);
}

@Test
Expand All @@ -199,7 +197,6 @@ void testHandleDoesNotEnqueueForShouldNotEnqueueDecisionWhenDelegateThrowsAnExce
verify(sequencingPolicy, times(2)).getSequenceIdentifierFor(TEST_EVENT);
verify(handler).handle(TEST_EVENT);

verify(transactionManager).fetchInTransaction(any());
//noinspection unchecked
ArgumentCaptor<Supplier<DeadLetter<? extends EventMessage<?>>>> enqueueIfPresentCaptor =
ArgumentCaptor.forClass(Supplier.class);
Expand All @@ -212,7 +209,7 @@ void testHandleDoesNotEnqueueForShouldNotEnqueueDecisionWhenDelegateThrowsAnExce
assertLetter(expectedEnqueuedLetter, policyCaptor.getValue());

verify(queue, never()).enqueue(eq(TEST_SEQUENCE_ID), any());
verify(transactionManager, never()).executeInTransaction(any());
verifyNoInteractions(transactionManager);
}

@Test
Expand All @@ -224,8 +221,7 @@ void testHandleDoesNotHandleEventOnDelegateWhenEnqueueIfPresentReturnsTrue() thr
verify(sequencingPolicy, times(2)).getSequenceIdentifierFor(TEST_EVENT);
verify(handler, never()).handle(TEST_EVENT);
verify(queue, never()).enqueue(TEST_SEQUENCE_ID, TEST_DEAD_LETTER);
verify(transactionManager).fetchInTransaction(any());
verify(transactionManager, never()).executeInTransaction(any());
verifyNoInteractions(transactionManager);
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,22 +57,23 @@ void testConstructForIdentifierMessageAndThrowable() {

@Test
void testConstructCompletelyManual() {
ThrowableCause testCause = new ThrowableCause(new RuntimeException("just because"));
Instant testEnqueuedAt = Instant.now();
Instant testLastTouched = Instant.now();
MetaData testDiagnostics = MetaData.with("key", "value");
ThrowableCause expectedCause = new ThrowableCause(new RuntimeException("just because"));
Instant expectedEnqueuedAt = Instant.now();
Instant expectedLastTouched = Instant.now();
MetaData expectedDiagnostics = MetaData.with("key", "value");

DeadLetter<EventMessage<String>> testSubject = new GenericDeadLetter<>(
SEQUENCE_IDENTIFIER, MESSAGE, testCause, testEnqueuedAt, testLastTouched, testDiagnostics
SEQUENCE_IDENTIFIER, MESSAGE, expectedCause, expectedEnqueuedAt, expectedLastTouched,
expectedDiagnostics
);

assertEquals(MESSAGE, testSubject.message());
Optional<Cause> resultCause = testSubject.cause();
assertTrue(resultCause.isPresent());
assertEquals(testCause, resultCause.get());
assertEquals(testEnqueuedAt, testSubject.enqueuedAt());
assertEquals(testLastTouched, testSubject.lastTouched());
assertEquals(testDiagnostics, testSubject.diagnostics());
assertEquals(expectedCause, resultCause.get());
assertEquals(expectedEnqueuedAt, testSubject.enqueuedAt());
assertEquals(expectedLastTouched, testSubject.lastTouched());
assertEquals(expectedDiagnostics, testSubject.diagnostics());
}

@Test
Expand All @@ -83,12 +84,12 @@ void testMarkTouched() {
GenericDeadLetter.clock = Clock.fixed(expectedLastTouched, ZoneId.systemDefault());
DeadLetter<EventMessage<String>> result = testSubject.markTouched();

assertEquals(result.message(), testSubject.message());
assertEquals(testSubject.message(), result.message());
Optional<Cause> resultCause = result.cause();
assertFalse(resultCause.isPresent());
assertEquals(result.enqueuedAt(), testSubject.enqueuedAt());
assertEquals(expectedLastTouched, testSubject.lastTouched());
assertEquals(result.diagnostics(), testSubject.diagnostics());
assertEquals(testSubject.enqueuedAt(), result.enqueuedAt());
assertEquals(expectedLastTouched, result.lastTouched());
assertEquals(testSubject.diagnostics(), result.diagnostics());
}

@Test
Expand All @@ -100,13 +101,13 @@ void testWithCauseAndNoOriginalCause() {

DeadLetter<EventMessage<String>> result = testSubject.withCause(testThrowable);

assertEquals(result.message(), testSubject.message());
assertEquals(testSubject.message(), result.message());
Optional<Cause> resultCause = result.cause();
assertTrue(resultCause.isPresent());
assertEquals(expectedCause, resultCause.get());
assertEquals(result.enqueuedAt(), testSubject.enqueuedAt());
assertEquals(result.lastTouched(), testSubject.lastTouched());
assertEquals(result.diagnostics(), testSubject.diagnostics());
assertEquals(testSubject.enqueuedAt(), result.enqueuedAt());
assertEquals(testSubject.lastTouched(), result.lastTouched());
assertEquals(testSubject.diagnostics(), result.diagnostics());
}

@Test
Expand All @@ -120,13 +121,13 @@ void testWithCauseAndOriginalCause() {

DeadLetter<EventMessage<String>> result = testSubject.withCause(testThrowable);

assertEquals(result.message(), testSubject.message());
assertEquals(testSubject.message(), result.message());
Optional<Cause> resultCause = result.cause();
assertTrue(resultCause.isPresent());
assertEquals(expectedCause, resultCause.get());
assertEquals(result.enqueuedAt(), testSubject.enqueuedAt());
assertEquals(result.lastTouched(), testSubject.lastTouched());
assertEquals(result.diagnostics(), testSubject.diagnostics());
assertEquals(testSubject.enqueuedAt(), result.enqueuedAt());
assertEquals(testSubject.lastTouched(), result.lastTouched());
assertEquals(testSubject.diagnostics(), result.diagnostics());
}

@Test
Expand All @@ -135,11 +136,11 @@ void testWithNullCauseAndNoOriginalCause() {

DeadLetter<EventMessage<String>> result = testSubject.withCause(null);

assertEquals(result.message(), testSubject.message());
assertEquals(testSubject.message(), result.message());
assertFalse(result.cause().isPresent());
assertEquals(result.enqueuedAt(), testSubject.enqueuedAt());
assertEquals(result.lastTouched(), testSubject.lastTouched());
assertEquals(result.diagnostics(), testSubject.diagnostics());
assertEquals(testSubject.enqueuedAt(), result.enqueuedAt());
assertEquals(testSubject.lastTouched(), result.lastTouched());
assertEquals(testSubject.diagnostics(), result.diagnostics());
}

@Test
Expand All @@ -152,13 +153,13 @@ void testWithNullCauseAndOriginalCause() {

DeadLetter<EventMessage<String>> result = testSubject.withCause(null);

assertEquals(result.message(), testSubject.message());
assertEquals(testSubject.message(), result.message());
Optional<Cause> resultCause = result.cause();
assertTrue(resultCause.isPresent());
assertEquals(expectedCause, resultCause.get());
assertEquals(result.enqueuedAt(), testSubject.enqueuedAt());
assertEquals(result.lastTouched(), testSubject.lastTouched());
assertEquals(result.diagnostics(), testSubject.diagnostics());
assertEquals(resultCause.get(), expectedCause);
assertEquals(testSubject.enqueuedAt(), result.enqueuedAt());
assertEquals(testSubject.lastTouched(), result.lastTouched());
assertEquals(testSubject.diagnostics(), result.diagnostics());
}

@Test
Expand All @@ -169,12 +170,12 @@ void testWithDiagnostics() {

DeadLetter<EventMessage<String>> result = testSubject.withDiagnostics(expectedDiagnostics);

assertEquals(result.message(), testSubject.message());
assertEquals(testSubject.message(), result.message());
Optional<Cause> resultCause = result.cause();
assertFalse(resultCause.isPresent());
assertEquals(result.enqueuedAt(), testSubject.enqueuedAt());
assertEquals(result.lastTouched(), testSubject.lastTouched());
assertEquals(result.diagnostics(), expectedDiagnostics);
assertEquals(testSubject.enqueuedAt(), result.enqueuedAt());
assertEquals(testSubject.lastTouched(), result.lastTouched());
assertEquals(expectedDiagnostics, result.diagnostics());
}

@Test
Expand All @@ -185,11 +186,11 @@ void testWithDiagnosticsBuilder() {

DeadLetter<EventMessage<String>> result = testSubject.withDiagnostics(original -> original.and("key", "value"));

assertEquals(result.message(), testSubject.message());
assertEquals(testSubject.message(), result.message());
Optional<Cause> resultCause = result.cause();
assertFalse(resultCause.isPresent());
assertEquals(result.enqueuedAt(), testSubject.enqueuedAt());
assertEquals(result.lastTouched(), testSubject.lastTouched());
assertEquals(result.diagnostics(), expectedDiagnostics);
assertEquals(testSubject.enqueuedAt(), result.enqueuedAt());
assertEquals(testSubject.lastTouched(), result.lastTouched());
assertEquals(expectedDiagnostics, result.diagnostics());
}
}

0 comments on commit dd1228d

Please sign in to comment.