@Test default void failedEventShouldThrowWhenGroupIsNull() { EventDeadLetters eventDeadLetters = eventDeadLetters(); assertThatThrownBy(() -> eventDeadLetters.failedEvent(NULL_GROUP, EVENT_ID_1)) .isInstanceOf(IllegalArgumentException.class); }
@Test default void failedEventShouldThrowWhenBothGroupAndEventIdAreNull() { EventDeadLetters eventDeadLetters = eventDeadLetters(); assertThatThrownBy(() -> eventDeadLetters.failedEvent(NULL_GROUP, NULL_EVENT_ID)) .isInstanceOf(IllegalArgumentException.class); }
@Test default void failedEventShouldThrowWhenEventIdIsNull() { EventDeadLetters eventDeadLetters = eventDeadLetters(); assertThatThrownBy(() -> eventDeadLetters.failedEvent(GROUP_A, NULL_EVENT_ID)) .isInstanceOf(IllegalArgumentException.class); }
@Test default void storeShouldStoreGroupWithCorrespondingEvent() { EventDeadLetters eventDeadLetters = eventDeadLetters(); eventDeadLetters.store(GROUP_A, EVENT_1).block(); assertThat(eventDeadLetters.failedEvent(GROUP_A, EVENT_1.getEventId()).block()) .isEqualTo(EVENT_1); }
@Test default void failedEventShouldReturnEventWhenContains() { EventDeadLetters eventDeadLetters = eventDeadLetters(); eventDeadLetters.store(GROUP_A, EVENT_1).block(); eventDeadLetters.store(GROUP_A, EVENT_2).block(); assertThat(eventDeadLetters.failedEvent(GROUP_A, EVENT_1.getEventId()).block()) .isEqualTo(EVENT_1); }
@Test default void failedEventShouldReturnEmptyWhenNotFound() { EventDeadLetters eventDeadLetters = eventDeadLetters(); eventDeadLetters.store(GROUP_A, EVENT_1).block(); eventDeadLetters.store(GROUP_A, EVENT_2).block(); assertThat(eventDeadLetters.failedEvent(GROUP_A, EVENT_ID_3).block()) .isNull(); }
@Test default void removeShouldRemoveMatched() { EventDeadLetters eventDeadLetters = eventDeadLetters(); eventDeadLetters.store(GROUP_A, EVENT_1).block(); eventDeadLetters.store(GROUP_A, EVENT_2).block(); eventDeadLetters.remove(GROUP_A, EVENT_1.getEventId()).block(); assertThat(eventDeadLetters.failedEvent(GROUP_A, EVENT_1.getEventId()).block()) .isNull(); }
@Test default void failedEventShouldNotRemoveEvent() { EventDeadLetters eventDeadLetters = eventDeadLetters(); eventDeadLetters.store(GROUP_A, EVENT_1).block(); eventDeadLetters.store(GROUP_A, EVENT_2).block(); eventDeadLetters.store(GROUP_A, EVENT_3).block(); eventDeadLetters.failedEvent(GROUP_A, EVENT_1.getEventId()).block(); assertThat(allEventIds()) .containsOnly(EVENT_ID_1, EVENT_ID_2, EVENT_ID_3); } }