@Test public void areMoreMessagesAvailable_withClosedFolder_shouldThrow() throws Exception { ImapFolder folder = createFolder("Folder"); when(imapStore.getConnection()).thenReturn(imapConnection); try { folder.areMoreMessagesAvailable(10, new Date()); fail("Expected exception"); } catch (MessagingException e) { assertCheckOpenErrorMessage("Folder", e); } }
@Test public void areMoreMessagesAvailable_withIndexOfOne_shouldReturnFalseWithoutPerformingSearch() throws Exception { ImapFolder folder = createFolder("Folder"); prepareImapFolderForOpen(OPEN_MODE_RW); folder.open(OPEN_MODE_RW); boolean areMoreMessagesAvailable = folder.areMoreMessagesAvailable(1, null); assertFalse(areMoreMessagesAvailable); //SELECT during OPEN and no more verify(imapConnection, times(1)).executeSimpleCommand(anyString()); }
@Test public void areMoreMessagesAvailable_withAdditionalMessages_shouldReturnTrue() throws Exception { ImapFolder folder = createFolder("Folder"); prepareImapFolderForOpen(OPEN_MODE_RW); setupSearchResponses("* SEARCH 42"); folder.open(OPEN_MODE_RW); boolean areMoreMessagesAvailable = folder.areMoreMessagesAvailable(10, null); assertTrue(areMoreMessagesAvailable); }
@Test public void areMoreMessagesAvailable_withoutAdditionalMessages_shouldReturnFalse() throws Exception { ImapFolder folder = createFolder("Folder"); prepareImapFolderForOpen(OPEN_MODE_RW); setupSearchResponses("1 OK SEARCH completed"); folder.open(OPEN_MODE_RW); boolean areMoreMessagesAvailable = folder.areMoreMessagesAvailable(600, null); assertFalse(areMoreMessagesAvailable); }
@Test public void areMoreMessagesAvailable_withoutAdditionalMessages_shouldIssueSearchCommandsUntilAllMessagesSearched() throws Exception { ImapFolder folder = createFolder("Folder"); prepareImapFolderForOpen(OPEN_MODE_RW); setupSearchResponses("1 OK SEARCH Completed"); folder.open(OPEN_MODE_RW); folder.areMoreMessagesAvailable(600, null); assertCommandIssued("SEARCH 100:599 NOT DELETED"); assertCommandIssued("SEARCH 1:99 NOT DELETED"); }