@Test public void moveMessages_withEmptyMessageList_shouldReturnNull() throws Exception { ImapFolder sourceFolder = createFolder("Source"); ImapFolder destinationFolder = createFolder("Destination"); List<ImapMessage> messages = Collections.emptyList(); Map<String, String> uidMapping = sourceFolder.moveMessages(messages, destinationFolder); assertNull(uidMapping); }
return remoteSrcFolder.copyMessages(messages, remoteDestFolder); } else { return remoteSrcFolder.moveMessages(messages, remoteDestFolder);
@Override public void delete(List<? extends Message> messages, String trashFolder) throws MessagingException { if (messages.isEmpty()) { return; } if (trashFolder == null || getServerId().equals(trashFolder)) { setFlags(messages, Collections.singleton(Flag.DELETED), true); } else { ImapFolder remoteTrashFolder = getStore().getFolder(trashFolder); String encodedTrashFolderName = folderNameCodec.encode(remoteTrashFolder.getPrefixedName()); String escapedTrashFolderName = ImapUtility.encodeString(encodedTrashFolderName); if (!exists(escapedTrashFolderName)) { if (K9MailLib.isDebug()) { Timber.i("ImapFolder.delete: couldn't find remote trash folder '%s' for %s", trashFolder, getLogId()); } throw new FolderNotFoundException(remoteTrashFolder.getServerId()); } if (K9MailLib.isDebug()) { Timber.d("IMAPMessage.delete: copying remote %d messages to '%s' for %s", messages.size(), trashFolder, getLogId()); } moveMessages(messages, remoteTrashFolder); } }
@Test public void moveMessages_shouldCopyMessages() throws Exception { ImapFolder sourceFolder = createFolder("Folder"); prepareImapFolderForOpen(OPEN_MODE_RW); ImapFolder destinationFolder = createFolder("Destination"); List<ImapMessage> messages = singletonList(createImapMessage("1")); setupCopyResponse("x OK [COPYUID 23 1 101] Success"); sourceFolder.open(OPEN_MODE_RW); Map<String, String> uidMapping = sourceFolder.moveMessages(messages, destinationFolder); assertNotNull(uidMapping); assertEquals("101", uidMapping.get("1")); }
@Test public void moveMessages_shouldDeleteMessagesFromSourceFolder() throws Exception { ImapFolder sourceFolder = createFolder("Folder"); prepareImapFolderForOpen(OPEN_MODE_RW); ImapFolder destinationFolder = createFolder("Destination"); List<ImapMessage> messages = singletonList(createImapMessage("1")); sourceFolder.open(OPEN_MODE_RW); sourceFolder.moveMessages(messages, destinationFolder); assertCommandWithIdsIssued("UID STORE 1 +FLAGS.SILENT (\\Deleted)"); }