@Test void addedShouldNotBeNoop() { MailboxListener.MailboxAdded added = new MailboxListener.MailboxAdded(SESSION_ID, BOB, PATH, MAILBOX_ID, Event.EventId.random()); assertThat(added.isNoop()).isFalse(); }
@Test default void removeShouldKeepNonMatched() { 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.remove(GROUP_A, EVENT_1.getEventId()).block(); assertThat(eventDeadLetters.failedEventIds(GROUP_A).toStream()) .containsOnly(EVENT_ID_2, EVENT_ID_3); }
static Event event(Event.EventId eventId) { return new MailboxListener.MailboxAdded(SESSION_ID, USER, MAILBOX_PATH, MAILBOX_ID, eventId); }
@Test default void removeShouldNotThrowWhenNoMatched() { EventDeadLetters eventDeadLetters = eventDeadLetters(); eventDeadLetters.store(GROUP_A, EVENT_1).block(); assertThatCode(() -> eventDeadLetters.remove(GROUP_A, EVENT_2.getEventId()).block()) .doesNotThrowAnyException(); }
@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); } }
@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 storeShouldStoreGroupWithCorrespondingEvent() { EventDeadLetters eventDeadLetters = eventDeadLetters(); eventDeadLetters.store(GROUP_A, EVENT_1).block(); assertThat(eventDeadLetters.failedEvent(GROUP_A, EVENT_1.getEventId()).block()) .isEqualTo(EVENT_1); }