private SearchQuery toQuery(final SearchKey key, final ImapSession session) throws MessageRangeException { final SearchQuery result = new SearchQuery(); final SelectedMailbox selected = session.getSelected(); if (selected != null) { result.addRecentMessageUids(selected.getRecent()); } final SearchQuery.Criterion criterion = toCriterion(key, session); result.andCriteria(criterion); return result; }
@Test public void equalsShouldCompareCriteria() { SearchQuery searchQuery1 = new SearchQuery(); SearchQuery searchQuery2 = new SearchQuery(); searchQuery1.andCriteria(SearchQuery.all()); searchQuery2.andCriteria(SearchQuery.all()); assertThat(searchQuery1).isEqualTo(searchQuery2); }
private void check(SearchKey key, SearchQuery.Criterion criterion) throws Exception { SearchQuery query = new SearchQuery(); query.andCriteria(criterion); check(key, query); }
private SearchQuery toQuery(SearchKey key, ImapSession session) throws MessageRangeException { final SearchQuery result = new SearchQuery(); final SelectedMailbox selected = session.getSelected(); if (selected != null) { result.addRecentMessageUids(selected.getRecent()); } final SearchQuery.Criterion criterion = toCriterion(key, session); result.andCriteria(criterion); return result; }
@Test public void filterConditionShouldMapWhenAfter() { ZonedDateTime after = ZonedDateTime.now(); SearchQuery expectedSearchQuery = new SearchQuery(); expectedSearchQuery.andCriteria(SearchQuery.sentDateAfter(Date.from(after.toInstant()), DateResolution.Second)); SearchQuery searchQuery = new FilterToSearchQuery().convert(FilterCondition.builder() .after(after) .build()); assertThat(searchQuery).isEqualTo(expectedSearchQuery); }
@Test public void filterConditionShouldMapWhenBefore() { ZonedDateTime before = ZonedDateTime.now(); SearchQuery expectedSearchQuery = new SearchQuery(); expectedSearchQuery.andCriteria(SearchQuery.sentDateBefore(Date.from(before.toInstant()), DateResolution.Second)); SearchQuery searchQuery = new FilterToSearchQuery().convert(FilterCondition.builder() .before(before) .build()); assertThat(searchQuery).isEqualTo(expectedSearchQuery); }
@Test public void attachmentFileNameShouldMapWhenHasAttachmentFileName() { String fileName = "file.gz"; SearchQuery expectedResult = new SearchQuery(SearchQuery.attachmentFileName(fileName)); assertThat(new FilterToSearchQuery().convert(FilterCondition.builder() .attachmentFileName(Optional.of(fileName)) .build())) .isEqualTo(expectedResult); } }
@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 filterConditionShouldMapWhenHeaderWithOneElement() { String headerName = "name"; SearchQuery expectedSearchQuery = new SearchQuery(); expectedSearchQuery.andCriteria(SearchQuery.headerExists(headerName)); SearchQuery searchQuery = new FilterToSearchQuery().convert(FilterCondition.builder() .header(Header.from(ImmutableList.of(headerName))) .build()); assertThat(searchQuery).isEqualTo(expectedSearchQuery); }
@Test public void filterConditionShouldMapWhenBcc() { String bcc = "blindcopy@james.org"; SearchQuery expectedSearchQuery = new SearchQuery(); expectedSearchQuery.andCriteria(SearchQuery.address(AddressType.Bcc, bcc)); SearchQuery searchQuery = new FilterToSearchQuery().convert(FilterCondition.builder() .bcc(bcc) .build()); assertThat(searchQuery).isEqualTo(expectedSearchQuery); }
@Test public void filterConditionShouldMapWhenBody() { String body = "body"; SearchQuery expectedSearchQuery = new SearchQuery(); expectedSearchQuery.andCriteria(SearchQuery.bodyContains(body)); SearchQuery searchQuery = new FilterToSearchQuery().convert(FilterCondition.builder() .body(body) .build()); assertThat(searchQuery).isEqualTo(expectedSearchQuery); }
@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 filterConditionShouldMapWhenTo() { String to = "recipient@james.org"; SearchQuery expectedSearchQuery = new SearchQuery(); expectedSearchQuery.andCriteria(SearchQuery.address(AddressType.To, to)); SearchQuery searchQuery = new FilterToSearchQuery().convert(FilterCondition.builder() .to(to) .build()); assertThat(searchQuery).isEqualTo(expectedSearchQuery); }
@Test public void filterConditionShouldMapWhenCc() { String cc = "copy@james.org"; SearchQuery expectedSearchQuery = new SearchQuery(); expectedSearchQuery.andCriteria(SearchQuery.address(AddressType.Cc, cc)); SearchQuery searchQuery = new FilterToSearchQuery().convert(FilterCondition.builder() .cc(cc) .build()); assertThat(searchQuery).isEqualTo(expectedSearchQuery); }
@Test public void filterConditionShouldMapWhenHasAttachment() { SearchQuery expectedSearchQuery = new SearchQuery(); expectedSearchQuery.andCriteria(SearchQuery.hasAttachment()); SearchQuery searchQuery = new FilterToSearchQuery().convert(FilterCondition.builder() .hasAttachment(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 filterConditionShouldMapWhenIsNotFlagged() { SearchQuery expectedSearchQuery = new SearchQuery(); expectedSearchQuery.andCriteria(SearchQuery.flagIsUnSet(Flag.FLAGGED)); SearchQuery searchQuery = new FilterToSearchQuery().convert(FilterCondition.builder() .isFlagged(false) .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 filterConditionShouldMapWhenHasNoAttachment() { SearchQuery expectedSearchQuery = new SearchQuery(); expectedSearchQuery.andCriteria(SearchQuery.hasNoAttachment()); SearchQuery searchQuery = new FilterToSearchQuery().convert(FilterCondition.builder() .hasAttachment(false) .build()); assertThat(searchQuery).isEqualTo(expectedSearchQuery); }
@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); }