@Test public void testAND() throws Exception { expectsGetSelectedMailbox(); List<SearchKey> keys = new ArrayList<>(); keys.add(SearchKey.buildOn(DAY_MONTH_YEAR)); keys.add(SearchKey.buildOld()); keys.add(SearchKey.buildLarger(SIZE)); List<Criterion> criteria = new ArrayList<>(); criteria.add(SearchQuery.internalDateOn(getDate(DAY, MONTH, YEAR), DateResolution.Day)); criteria.add(SearchQuery.flagIsUnSet(Flag.RECENT)); criteria.add(SearchQuery.sizeGreaterThan(SIZE)); check(SearchKey.buildAnd(keys), SearchQuery.and(criteria)); }
@Test public void testLARGER() throws Exception { expectsGetSelectedMailbox(); check(SearchKey.buildLarger(SIZE), SearchQuery.sizeGreaterThan(SIZE)); }
filter.getIsForwarded().ifPresent(isForwarded -> searchQuery.andCriteria(SearchQuery.flagSet(Keyword.FORWARDED.getFlagName(), isForwarded))); filter.getMaxSize().ifPresent(maxSize -> searchQuery.andCriteria(SearchQuery.sizeLessThan(maxSize.asLong()))); filter.getMinSize().ifPresent(minSize -> searchQuery.andCriteria(SearchQuery.sizeGreaterThan(minSize.asLong()))); filter.getHasAttachment().ifPresent(hasAttachment -> searchQuery.andCriteria(SearchQuery.hasAttachment(hasAttachment))); filter.getHasKeyword().ifPresent(hasKeyword -> keywordQuery(hasKeyword, true).ifPresent(searchQuery::andCriteria));
@Test public void filterConditionShouldMapWhenMinSize() { int minSize = 4; SearchQuery expectedSearchQuery = new SearchQuery(); expectedSearchQuery.andCriteria(SearchQuery.sizeGreaterThan(minSize)); SearchQuery searchQuery = new FilterToSearchQuery().convert(FilterCondition.builder() .minSize(minSize) .build()); assertThat(searchQuery).isEqualTo(expectedSearchQuery); }
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));
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));