/** * Creates a filter on the given flag. * * @param flag * <code>Flag</code>, not null * @param isSet * true if the messages with the flag set should be matched, * false otherwise * @return <code>Criterion</code>, not null */ public static Criterion flagSet(Flag flag, boolean isSet) { final Criterion result; if (isSet) { result = flagIsSet(flag); } else { result = flagIsUnSet(flag); } return result; }
/** * Creates a filter on the given flag. * * @param flag * <code>Flag</code>, not null * @param isSet * true if the messages with the flag set should be matched, * false otherwise * @return <code>Criterion</code>, not null */ public static Criterion flagSet(String flag, boolean isSet) { final Criterion result; if (isSet) { result = flagIsSet(flag); } else { result = flagIsUnSet(flag); } return result; }
@Test public void testDRAFT() throws Exception { expectsGetSelectedMailbox(); check(SearchKey.buildDraft(), SearchQuery.flagIsSet(Flag.DRAFT)); }
@Test public void filterConditionShouldMapWhenHasKeywordWithUserFlag() { SearchQuery expectedSearchQuery = new SearchQuery(); expectedSearchQuery.andCriteria(SearchQuery.flagIsSet(FORWARDED)); SearchQuery searchQuery = new FilterToSearchQuery().convert(FilterCondition.builder() .hasKeyword(Optional.of(FORWARDED)) .build()); assertThat(searchQuery).isEqualTo(expectedSearchQuery); }
@Test public void filterConditionShouldMapWhenHasKeyword() { SearchQuery expectedSearchQuery = new SearchQuery(); expectedSearchQuery.andCriteria(SearchQuery.flagIsSet(Flag.FLAGGED)); SearchQuery searchQuery = new FilterToSearchQuery().convert(FilterCondition.builder() .hasKeyword(Optional.of("$Flagged")) .build()); assertThat(searchQuery).isEqualTo(expectedSearchQuery); }
@Test public void testDELETED() throws Exception { expectsGetSelectedMailbox(); check(SearchKey.buildDeleted(), SearchQuery.flagIsSet(Flag.DELETED)); }
@Test public void testRECENT() throws Exception { expectsGetSelectedMailbox(); check(SearchKey.buildRecent(), SearchQuery.flagIsSet(Flag.RECENT)); }
@Test public void testFLAGGED() throws Exception { expectsGetSelectedMailbox(); check(SearchKey.buildFlagged(), SearchQuery.flagIsSet(Flag.FLAGGED)); }
@Test public void testKEYWORD() throws Exception { expectsGetSelectedMailbox(); check(SearchKey.buildKeyword(KEYWORD), SearchQuery.flagIsSet(KEYWORD)); }
@Test public void testSEEN() throws Exception { expectsGetSelectedMailbox(); check(SearchKey.buildSeen(), SearchQuery.flagIsSet(Flag.SEEN)); }
@Test public void testANSWERED() throws Exception { expectsGetSelectedMailbox(); check(SearchKey.buildAnswered(), SearchQuery.flagIsSet(Flag.ANSWERED)); }
@Test public void filterConditionShouldMapWhenIsDraft() { SearchQuery expectedSearchQuery = new SearchQuery(); expectedSearchQuery.andCriteria(SearchQuery.flagIsSet(Flag.DRAFT)); SearchQuery searchQuery = new FilterToSearchQuery().convert(FilterCondition.builder() .isDraft(true) .build()); assertThat(searchQuery).isEqualTo(expectedSearchQuery); }
@Test public void filterConditionShouldMapWhenIsAnswered() { SearchQuery expectedSearchQuery = new SearchQuery(); expectedSearchQuery.andCriteria(SearchQuery.flagIsSet(Flag.ANSWERED)); SearchQuery searchQuery = new FilterToSearchQuery().convert(FilterCondition.builder() .isAnswered(true) .build()); assertThat(searchQuery).isEqualTo(expectedSearchQuery); }
@Test public void filterConditionShouldMapWhenIsFlagged() { SearchQuery expectedSearchQuery = new SearchQuery(); expectedSearchQuery.andCriteria(SearchQuery.flagIsSet(Flag.FLAGGED)); SearchQuery searchQuery = new FilterToSearchQuery().convert(FilterCondition.builder() .isFlagged(true) .build()); assertThat(searchQuery).isEqualTo(expectedSearchQuery); }
@Test public void filterConditionShouldMapWhenIsRead() { SearchQuery expectedSearchQuery = new SearchQuery(); expectedSearchQuery.andCriteria(SearchQuery.flagIsSet(Flag.SEEN)); SearchQuery searchQuery = new FilterToSearchQuery().convert(FilterCondition.builder() .isUnread(false) .build()); assertThat(searchQuery).isEqualTo(expectedSearchQuery); }
@Test public void testNEW() throws Exception { expectsGetSelectedMailbox(); check(SearchKey.buildNew(), SearchQuery.and(SearchQuery .flagIsSet(Flag.RECENT), SearchQuery.flagIsUnSet(Flag.SEEN))); }
return and(key.getKeys(), session); case SearchKey.TYPE_ANSWERED: return SearchQuery.flagIsSet(Flag.ANSWERED); case SearchKey.TYPE_BCC: return SearchQuery.address(AddressType.Bcc, key.getValue()); return SearchQuery.address(AddressType.Cc, key.getValue()); case SearchKey.TYPE_DELETED: return SearchQuery.flagIsSet(Flag.DELETED); case SearchKey.TYPE_DRAFT: return SearchQuery.flagIsSet(Flag.DRAFT); case SearchKey.TYPE_FLAGGED: return SearchQuery.flagIsSet(Flag.FLAGGED); case SearchKey.TYPE_FROM: return SearchQuery.address(AddressType.From, key.getValue()); return SearchQuery.flagIsSet(key.getValue()); case SearchKey.TYPE_LARGER: return SearchQuery.sizeGreaterThan(key.getSize()); case SearchKey.TYPE_NEW: return SearchQuery.and(SearchQuery.flagIsSet(Flag.RECENT), SearchQuery.flagIsUnSet(Flag.SEEN)); case SearchKey.TYPE_NOT: return not(key.getKeys(), session); return or(key.getKeys(), session); case SearchKey.TYPE_RECENT: return SearchQuery.flagIsSet(Flag.RECENT); case SearchKey.TYPE_SEEN: return SearchQuery.flagIsSet(Flag.SEEN);
return and(key.getKeys(), session); case SearchKey.TYPE_ANSWERED: return SearchQuery.flagIsSet(Flag.ANSWERED); case SearchKey.TYPE_BCC: return SearchQuery.address(AddressType.Bcc, key.getValue()); return SearchQuery.address(AddressType.Cc, key.getValue()); case SearchKey.TYPE_DELETED: return SearchQuery.flagIsSet(Flag.DELETED); case SearchKey.TYPE_DRAFT: return SearchQuery.flagIsSet(Flag.DRAFT); case SearchKey.TYPE_FLAGGED: return SearchQuery.flagIsSet(Flag.FLAGGED); case SearchKey.TYPE_FROM: return SearchQuery.address(AddressType.From, key.getValue()); return SearchQuery.flagIsSet(key.getValue()); case SearchKey.TYPE_LARGER: return SearchQuery.sizeGreaterThan(key.getSize()); case SearchKey.TYPE_NEW: return SearchQuery.and(SearchQuery.flagIsSet(Flag.RECENT), SearchQuery.flagIsUnSet(Flag.SEEN)); case SearchKey.TYPE_NOT: return not(key.getKeys(), session); return or(key.getKeys(), session); case SearchKey.TYPE_RECENT: return SearchQuery.flagIsSet(Flag.RECENT); case SearchKey.TYPE_SEEN: return SearchQuery.flagIsSet(Flag.SEEN);