SearchQuery.address(AddressType.Bcc, text), SearchQuery.headerContains("Subject", text), SearchQuery.attachmentContains(text), SearchQuery.bodyContains(text), SearchQuery.attachmentFileName(text))) filter.getBcc().ifPresent(bcc -> searchQuery.andCriteria(SearchQuery.address(AddressType.Bcc, bcc))); filter.getSubject().ifPresent(subject -> searchQuery.andCriteria(SearchQuery.headerContains("Subject", subject))); filter.getAttachments().ifPresent(attachments -> searchQuery.andCriteria(SearchQuery.attachmentContains(attachments))); filter.getBody().ifPresent(body -> searchQuery.andCriteria(SearchQuery.bodyContains(body))); filter.getAfter().ifPresent(after -> searchQuery.andCriteria(SearchQuery.sentDateAfter(Date.from(after.toInstant()), DateResolution.Second)));
@Test public void filterConditionShouldMapWhenAttachments() { String attachments = "attachments"; SearchQuery expectedSearchQuery = new SearchQuery(); expectedSearchQuery.andCriteria(SearchQuery.attachmentContains(attachments)); SearchQuery searchQuery = new FilterToSearchQuery().convert(FilterCondition.builder() .attachments(attachments) .build()); assertThat(searchQuery).isEqualTo(expectedSearchQuery); }
@Test public void filterConditionShouldMapWhenText() { String text = "text"; SearchQuery expectedSearchQuery = new SearchQuery(); expectedSearchQuery.andCriteria(SearchQuery.or(ImmutableList.of( SearchQuery.address(AddressType.From, text), SearchQuery.address(AddressType.To, text), SearchQuery.address(AddressType.Cc, text), SearchQuery.address(AddressType.Bcc, text), SearchQuery.headerContains("Subject", text), SearchQuery.bodyContains(text), SearchQuery.attachmentContains(text), SearchQuery.attachmentFileName(text)))); SearchQuery searchQuery = new FilterToSearchQuery().convert(FilterCondition.builder() .text(text) .build()); assertThat(searchQuery).isEqualTo(expectedSearchQuery); }