@Test public void searchRemoteMessagesSynchronous_shouldNotFetchExistingMessages() throws Exception { setupRemoteSearch(); controller.searchRemoteMessagesSynchronous(ACCOUNT_UUID, FOLDER_NAME, "query", reqFlags, forbiddenFlags, listener); verify(backend, never()).fetchMessage(eq(FOLDER_NAME), eq("newMessageUid1"), fetchProfileCaptor.capture()); }
@Test public void searchRemoteMessagesSynchronous_shouldFetchNewMessages() throws Exception { setupRemoteSearch(); controller.searchRemoteMessagesSynchronous(ACCOUNT_UUID, FOLDER_NAME, "query", reqFlags, forbiddenFlags, listener); verify(backend).fetchMessage(eq(FOLDER_NAME), eq("newMessageUid2"), fetchProfileCaptor.capture()); }
private void loadSearchResultsSynchronous(Account account, List<String> messageServerIds, LocalFolder localFolder) throws MessagingException { FetchProfile fetchProfile = new FetchProfile(); fetchProfile.add(FetchProfile.Item.FLAGS); fetchProfile.add(FetchProfile.Item.ENVELOPE); fetchProfile.add(FetchProfile.Item.STRUCTURE); Backend backend = getBackend(account); String folderServerId = localFolder.getServerId(); for (String messageServerId : messageServerIds) { LocalMessage localMessage = localFolder.getMessage(messageServerId); if (localMessage == null) { Message message = backend.fetchMessage(folderServerId, messageServerId, fetchProfile); localFolder.appendMessages(Collections.singletonList(message)); } } }
return null; }).when(backend).fetchMessage( eq(FOLDER_NAME), eq("newMessageUid2"),
fp.add(FetchProfile.Item.BODY); fp.add(FetchProfile.Item.FLAGS); Message remoteMessage = backend.fetchMessage(folder, uid, fp); localFolder.appendMessages(Collections.singletonList(remoteMessage));