/** * Should get called when a new message was added to a Mailbox. All * registered MailboxListener will get triggered then * * @param session The mailbox session * @param uids Sorted map with uids and message meta data * @param mailbox The mailbox */ public void added(MailboxSession session, SortedMap<MessageUid, MessageMetaData> uids, Mailbox mailbox, Map<MessageUid, MailboxMessage> cachedMessages) { listener.event(eventFactory.added(session, uids, mailbox, cachedMessages)); }
private void emitEvent(MailboxListener mailboxListener) { TreeMap<MessageUid, MessageMetaData> result = new TreeMap<>(); result.put(EMITTED_EVENT_UID, new SimpleMessageMetaData(EMITTED_EVENT_UID, MOD_SEQ, new Flags(), SIZE, new Date(), new DefaultMessageId())); mailboxListener.event(new EventFactory().added(mock(MailboxSession.class), result, mailbox, ImmutableMap.of())); } }
@Test public void addedEventsShouldNotBeReported() { TreeMap<MessageUid, MessageMetaData> treeMap = new TreeMap<>(); treeMap.put(UID, new SimpleMessageMetaData(UID, MOD_SEQ, new Flags(), SIZE, new Date(), new DefaultMessageId())); MailboxListener.MailboxEvent event = eventFactory.added(session, treeMap, MAILBOX, ImmutableMap.<MessageUid, MailboxMessage>of()); mailboxRegistration.event(event); assertThat(mailboxRegistration.getImpactingEvents(UID)).isEmpty(); }
@Test void mailboxEventListenersShouldBeTriggeredIfRegistered() { SimpleMailbox simpleMailbox = new SimpleMailbox(MAILBOX_PATH_1, 42); simpleMailbox.setMailboxId(TestId.of(52)); TreeMap<MessageUid, MessageMetaData> uids = new TreeMap<>(); final MailboxListener.MailboxEvent event = new EventFactory().added(mailboxSession, uids, simpleMailbox, EMPTY_MESSAGE_CACHE); registeredDelegatingMailboxListener1.event(event); assertThat(eventCollectorMailbox1.getEvents()).hasSize(1); assertThat(eventCollectorMailbox2.getEvents()).hasSize(1); assertThat(eventCollectorMailbox3.getEvents()).isEmpty(); }
@Test void onceEventListenersShouldBeTriggeredOnceAcrossTheCluster() { SimpleMailbox simpleMailbox = new SimpleMailbox(MAILBOX_PATH_1, 42); simpleMailbox.setMailboxId(TestId.of(52)); TreeMap<MessageUid, MessageMetaData> uids = new TreeMap<>(); final MailboxListener.MailboxEvent event = new EventFactory().added(mailboxSession, uids, simpleMailbox, EMPTY_MESSAGE_CACHE); registeredDelegatingMailboxListener1.event(event); assertThat(eventCollectorOnce1.getEvents()).hasSize(1); assertThat(eventCollectorOnce2.getEvents()).isEmpty(); assertThat(eventCollectorOnce3.getEvents()).isEmpty(); }
switch (eventDataTransferObject.getType()) { case ADDED: return eventFactory.added(eventDataTransferObject.getSession().getMailboxSession(), retrieveMetadata(eventDataTransferObject.getMetaDataProxyMap()), mailbox,