private void handleEvent(User user, QuotaUsageUpdatedEvent event) throws JsonProcessingException { indexer.index(user.getUserName(), quotaRatioToElasticSearchJson.convertToJson(user.getUserName(), event)); }
@Test public void addShouldIndex() throws Exception { //Given Mailbox mailbox = mock(Mailbox.class); when(mailbox.getMailboxId()) .thenReturn(MAILBOX_ID); MailboxMessage message = mockedMessage(MESSAGE_UID); when(messageToElasticSearchJson.convertToJson(eq(message), eq(users))) .thenReturn(EXPECTED_JSON_CONTENT); //When testee.add(session, mailbox, message); //Then verify(elasticSearchIndexer).index(eq(ELASTIC_SEARCH_ID), eq(EXPECTED_JSON_CONTENT)); }
@Test public void addShouldIndexEmailBodyWhenNotIndexableAttachment() throws Exception { //Given Mailbox mailbox = mock(Mailbox.class); when(mailbox.getMailboxId()) .thenReturn(MAILBOX_ID); MailboxMessage message = mockedMessage(MESSAGE_UID); when(messageToElasticSearchJson.convertToJson(eq(message), eq(users))) .thenThrow(JsonProcessingException.class); when(messageToElasticSearchJson.convertToJsonWithoutAttachment(eq(message), eq(users))) .thenReturn(EXPECTED_JSON_CONTENT); //When testee.add(session, mailbox, message); //Then verify(elasticSearchIndexer).index(eq(ELASTIC_SEARCH_ID), eq(EXPECTED_JSON_CONTENT)); }
@Override public void add(MailboxSession session, Mailbox mailbox, MailboxMessage message) throws MailboxException { try { LOGGER.info("Indexing mailbox {}-{} of user {} on message {}", mailbox.getName(), mailbox.getMailboxId(), session.getUser().getUserName(), message.getUid()); elasticSearchIndexer.index(indexIdFor(mailbox, message.getUid()), messageToElasticSearchJson.convertToJson(message, ImmutableList.of(session.getUser()))); } catch (Exception e) { try { LOGGER.warn("Indexing mailbox {}-{} of user {} on message {} without attachments ", mailbox.getName(), mailbox.getMailboxId().serialize(), session.getUser().getUserName(), message.getUid(), e); elasticSearchIndexer.index(indexIdFor(mailbox, message.getUid()), messageToElasticSearchJson.convertToJsonWithoutAttachment(message, ImmutableList.of(session.getUser()))); } catch (JsonProcessingException e1) { LOGGER.error("Error when indexing mailbox {}-{} of user {} on message {} without its attachment", mailbox.getName(), mailbox.getMailboxId().serialize(), session.getUser().getUserName(), message.getUid(), e1); } } }