@Override public Mailbox createMailbox(MailboxPath mailboxPath, MailboxSession session) throws MailboxException { inMemoryMailboxManager.createMailbox(mailboxPath, session); MessageManager messageManager = inMemoryMailboxManager.getMailbox(mailboxPath, session); return new SimpleMailbox(mailboxPath, UID_VALIDITY, messageManager.getId()); }
@Test void userReIndexShouldBeWellPerformed() throws Exception { MailboxSession systemSession = mailboxManager.createSystemSession(USERNAME); MailboxId mailboxId = mailboxManager.createMailbox(INBOX, systemSession).get(); ComposedMessageId createdMessage = mailboxManager.getMailbox(INBOX, systemSession) .appendMessage( MessageManager.AppendCommand.builder().build("header: value\r\n\r\nbody"), systemSession); reIndexer.reIndex(User.fromUsername(USERNAME)).run(); ArgumentCaptor<MailboxMessage> messageCaptor = ArgumentCaptor.forClass(MailboxMessage.class); ArgumentCaptor<Mailbox> mailboxCaptor1 = ArgumentCaptor.forClass(Mailbox.class); ArgumentCaptor<Mailbox> mailboxCaptor2 = ArgumentCaptor.forClass(Mailbox.class); verify(messageSearchIndex).deleteAll(any(MailboxSession.class), mailboxCaptor1.capture()); verify(messageSearchIndex).add(any(MailboxSession.class), mailboxCaptor2.capture(), messageCaptor.capture()); verifyNoMoreInteractions(messageSearchIndex); assertThat(mailboxCaptor1.getValue()).matches(mailbox -> mailbox.getMailboxId().equals(mailboxId)); assertThat(mailboxCaptor2.getValue()).matches(mailbox -> mailbox.getMailboxId().equals(mailboxId)); assertThat(messageCaptor.getValue()).matches(message -> message.getMailboxId().equals(mailboxId) && message.getUid().equals(createdMessage.getUid())); }
@Test void reIndexShouldBeWellPerformed() throws Exception { MailboxSession systemSession = mailboxManager.createSystemSession(USERNAME); MailboxId mailboxId = mailboxManager.createMailbox(INBOX, systemSession).get(); ComposedMessageId createdMessage = mailboxManager.getMailbox(INBOX, systemSession) .appendMessage( MessageManager.AppendCommand.builder().build("header: value\r\n\r\nbody"), systemSession); reIndexer.reIndex(INBOX).run(); ArgumentCaptor<MailboxMessage> messageCaptor = ArgumentCaptor.forClass(MailboxMessage.class); ArgumentCaptor<Mailbox> mailboxCaptor1 = ArgumentCaptor.forClass(Mailbox.class); ArgumentCaptor<Mailbox> mailboxCaptor2 = ArgumentCaptor.forClass(Mailbox.class); verify(messageSearchIndex).deleteAll(any(MailboxSession.class), mailboxCaptor1.capture()); verify(messageSearchIndex).add(any(MailboxSession.class), mailboxCaptor2.capture(), messageCaptor.capture()); verifyNoMoreInteractions(messageSearchIndex); assertThat(mailboxCaptor1.getValue()).matches(mailbox -> mailbox.getMailboxId().equals(mailboxId)); assertThat(mailboxCaptor2.getValue()).matches(mailbox -> mailbox.getMailboxId().equals(mailboxId)); assertThat(messageCaptor.getValue()).matches(message -> message.getMailboxId().equals(mailboxId) && message.getUid().equals(createdMessage.getUid())); }
@Test void mailboxPathUserShouldBeUsedWhenReIndexing() throws Exception { MailboxSession systemSession = mailboxManager.createSystemSession(USERNAME); MailboxId mailboxId = mailboxManager.createMailbox(INBOX, systemSession).get(); ComposedMessageId createdMessage = mailboxManager.getMailbox(INBOX, systemSession) .appendMessage( MessageManager.AppendCommand.builder().build("header: value\r\n\r\nbody"), systemSession); reIndexer.reIndex().run(); ArgumentCaptor<MailboxMessage> messageCaptor = ArgumentCaptor.forClass(MailboxMessage.class); ArgumentCaptor<Mailbox> mailboxCaptor1 = ArgumentCaptor.forClass(Mailbox.class); ArgumentCaptor<Mailbox> mailboxCaptor2 = ArgumentCaptor.forClass(Mailbox.class); verify(messageSearchIndex).deleteAll(any(MailboxSession.class), mailboxCaptor1.capture()); verify(messageSearchIndex).add(any(MailboxSession.class), mailboxCaptor2.capture(), messageCaptor.capture()); verifyNoMoreInteractions(messageSearchIndex); assertThat(mailboxCaptor1.getValue()).matches(mailbox -> mailbox.getMailboxId().equals(mailboxId)); assertThat(mailboxCaptor2.getValue()).matches(mailbox -> mailbox.getMailboxId().equals(mailboxId)); assertThat(messageCaptor.getValue()).matches(message -> message.getMailboxId().equals(mailboxId) && message.getUid().equals(createdMessage.getUid())); }
@Test void reIndexShouldBeWellPerformed() throws Exception { MailboxSession systemSession = mailboxManager.createSystemSession(USERNAME); MailboxId mailboxId = mailboxManager.createMailbox(INBOX, systemSession).get(); ComposedMessageId createdMessage = mailboxManager.getMailbox(INBOX, systemSession) .appendMessage( MessageManager.AppendCommand.builder().build("header: value\r\n\r\nbody"), systemSession); reIndexer.reIndex(createdMessage.getMessageId()).run(); ArgumentCaptor<MailboxMessage> messageCaptor = ArgumentCaptor.forClass(MailboxMessage.class); ArgumentCaptor<Mailbox> mailboxCaptor = ArgumentCaptor.forClass(Mailbox.class); verify(messageSearchIndex).add(any(MailboxSession.class), mailboxCaptor.capture(), messageCaptor.capture()); verifyNoMoreInteractions(messageSearchIndex); assertThat(mailboxCaptor.getValue()).matches(mailbox -> mailbox.getMailboxId().equals(mailboxId)); assertThat(messageCaptor.getValue()).matches(message -> message.getComposedMessageIdWithMetaData().getComposedMessageId().getMessageId() .equals(createdMessage.getMessageId())); }
@Test void messageReIndexShouldBeWellPerformed() throws Exception { MailboxSession systemSession = mailboxManager.createSystemSession(USERNAME); MailboxId mailboxId = mailboxManager.createMailbox(INBOX, systemSession).get(); ComposedMessageId createdMessage = mailboxManager.getMailbox(INBOX, systemSession) .appendMessage( MessageManager.AppendCommand.builder().build("header: value\r\n\r\nbody"), systemSession); reIndexer.reIndex(INBOX, createdMessage.getUid()).run(); ArgumentCaptor<MailboxMessage> messageCaptor = ArgumentCaptor.forClass(MailboxMessage.class); ArgumentCaptor<Mailbox> mailboxCaptor = ArgumentCaptor.forClass(Mailbox.class); verify(messageSearchIndex).add(any(MailboxSession.class), mailboxCaptor.capture(), messageCaptor.capture()); verifyNoMoreInteractions(messageSearchIndex); assertThat(mailboxCaptor.getValue()).matches(mailbox -> mailbox.getMailboxId().equals(mailboxId)); assertThat(messageCaptor.getValue()).matches(message -> message.getMailboxId().equals(mailboxId) && message.getUid().equals(createdMessage.getUid())); } }