public boolean isUnchanged(Flags.Flag flag) { return !isModifiedToSet(flag) && !isModifiedToUnset(flag); }
private CompletableFuture<Void> manageUnseenMessageCountsOnFlagsUpdate(CassandraId mailboxId, UpdatedFlags updatedFlags) { if (updatedFlags.isModifiedToUnset(Flags.Flag.SEEN)) { return mailboxCounterDAO.incrementUnseen(mailboxId); } if (updatedFlags.isModifiedToSet(Flags.Flag.SEEN)) { return mailboxCounterDAO.decrementUnseen(mailboxId); } return CompletableFuture.completedFuture(null); }
private CompletableFuture<Void> manageRecentOnFlagsUpdate(CassandraId mailboxId, UpdatedFlags updatedFlags) { if (updatedFlags.isModifiedToUnset(Flags.Flag.RECENT)) { return mailboxRecentDAO.removeFromRecent(mailboxId, updatedFlags.getUid()); } if (updatedFlags.isModifiedToSet(Flags.Flag.RECENT)) { return mailboxRecentDAO.addToRecent(mailboxId, updatedFlags.getUid()); } return CompletableFuture.completedFuture(null); }
private CompletableFuture<Void> updateDeletedOnFlagsUpdate(CassandraId mailboxId, UpdatedFlags updatedFlags) { if (updatedFlags.isModifiedToSet(Flags.Flag.DELETED)) { return deletedMessageDAO.addDeleted(mailboxId, updatedFlags.getUid()); } else if (updatedFlags.isModifiedToUnset(Flags.Flag.DELETED)) { return deletedMessageDAO.removeDeleted(mailboxId, updatedFlags.getUid()); } else { return CompletableFuture.completedFuture(null); } }
private CompletableFuture<Void> updateFirstUnseenOnFlagsUpdate(CassandraId mailboxId, UpdatedFlags updatedFlags) { if (updatedFlags.isModifiedToUnset(Flags.Flag.SEEN)) { return firstUnseenDAO.addUnread(mailboxId, updatedFlags.getUid()); } if (updatedFlags.isModifiedToSet(Flags.Flag.SEEN)) { return firstUnseenDAO.removeUnread(mailboxId, updatedFlags.getUid()); } return CompletableFuture.completedFuture(null); } }
@Test public void isModifiedToUnsetShouldReturnFalseWhenFlagIsOnBoth() { UpdatedFlags updatedFlags = UpdatedFlags.builder() .newFlags(new Flags(Flags.Flag.RECENT)) .oldFlags(new Flags(Flags.Flag.RECENT)) .uid(UID) .modSeq(MOD_SEQ) .build(); assertThat(updatedFlags.isModifiedToUnset(Flags.Flag.RECENT)).isFalse(); }
@Test public void isModifiedToUnsetShouldReturnFalseWhenFlagOnlyInNewFlag() { UpdatedFlags updatedFlags = UpdatedFlags.builder() .newFlags(new Flags(Flags.Flag.RECENT)) .oldFlags(new Flags()) .uid(UID) .modSeq(MOD_SEQ) .build(); assertThat(updatedFlags.isModifiedToUnset(Flags.Flag.RECENT)).isFalse(); }
@Test public void isModifiedToUnsetShouldReturnTrueWhenFlagOnlyInOldFlag() { UpdatedFlags updatedFlags = UpdatedFlags.builder() .newFlags(new Flags()) .oldFlags(new Flags(Flags.Flag.RECENT)) .uid(UID) .modSeq(MOD_SEQ) .build(); assertThat(updatedFlags.isModifiedToUnset(Flags.Flag.RECENT)).isTrue(); }