JAMES-1874 Make constructor of UpdatedFlags private
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/41c860c1 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/41c860c1 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/41c860c1 Branch: refs/heads/master Commit: 41c860c171f446ae01e9a54235003b67fafdcff3 Parents: 948b58f Author: Benoit Tellier <[email protected]> Authored: Mon Feb 6 09:55:55 2017 +0700 Committer: Benoit Tellier <[email protected]> Committed: Tue Feb 7 08:57:46 2017 +0700 ---------------------------------------------------------------------- .../james/mailbox/model/UpdatedFlags.java | 2 +- .../mail/CassandraMessageIdMapper.java | 10 +- .../cassandra/mail/CassandraMessageMapper.java | 7 +- ...hListeningMailboxMessageSearchIndexTest.java | 14 +- .../mailbox/hbase/mail/HBaseMessageMapper.java | 8 +- .../maildir/mail/MaildirMessageMapper.java | 7 +- .../dto/UpdatedFlagsDataTransferObject.java | 7 +- .../store/mail/AbstractMessageMapper.java | 10 +- .../james/mailbox/store/mail/MessageUtils.java | 10 +- .../AbstractMessageIdManagerSideEffectTest.java | 7 +- .../store/MailboxEventDispatcherTest.java | 360 +++++++++++-------- .../store/TestMailboxSessionMapperFactory.java | 7 +- .../mailbox/store/json/EventSerializerTest.java | 8 +- .../store/mail/model/MessageIdMapperTest.java | 42 ++- .../store/mail/model/MessageMapperTest.java | 30 +- .../registrations/MailboxRegistrationTest.java | 7 +- .../base/MailboxEventAnalyserTest.java | 139 ++++--- 17 files changed, 422 insertions(+), 253 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/41c860c1/mailbox/api/src/main/java/org/apache/james/mailbox/model/UpdatedFlags.java ---------------------------------------------------------------------- diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/model/UpdatedFlags.java b/mailbox/api/src/main/java/org/apache/james/mailbox/model/UpdatedFlags.java index 989729b..9b7a7ef 100644 --- a/mailbox/api/src/main/java/org/apache/james/mailbox/model/UpdatedFlags.java +++ b/mailbox/api/src/main/java/org/apache/james/mailbox/model/UpdatedFlags.java @@ -86,7 +86,7 @@ public class UpdatedFlags { private final Flags modifiedFlags; private final long modSeq; - public UpdatedFlags(MessageUid uid, long modSeq, Flags oldFlags, Flags newFlags) { + private UpdatedFlags(MessageUid uid, long modSeq, Flags oldFlags, Flags newFlags) { this.uid = uid; this.modSeq = modSeq; this.oldFlags = oldFlags; http://git-wip-us.apache.org/repos/asf/james-project/blob/41c860c1/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapper.java ---------------------------------------------------------------------- diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapper.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapper.java index e403268..61045d1 100644 --- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapper.java +++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapper.java @@ -210,10 +210,12 @@ public class CassandraMessageIdMapper implements MessageIdMapper { ComposedMessageIdWithMetaData composedMessageIdWithMetaData = pair.getRight(); Flags oldFlags = pair.getLeft(); return Stream.of(Pair.of(composedMessageIdWithMetaData.getComposedMessageId().getMailboxId(), - new UpdatedFlags(composedMessageIdWithMetaData.getComposedMessageId().getUid(), - composedMessageIdWithMetaData.getModSeq(), - oldFlags, - composedMessageIdWithMetaData.getFlags()))); + UpdatedFlags.builder() + .uid(composedMessageIdWithMetaData.getComposedMessageId().getUid()) + .modSeq(composedMessageIdWithMetaData.getModSeq()) + .oldFlags(oldFlags) + .newFlags(composedMessageIdWithMetaData.getFlags()) + .build())); } catch (LightweightTransactionException e) { throw Throwables.propagate(e); } catch (MailboxDeleteDuringUpdateException e) { http://git-wip-us.apache.org/repos/asf/james-project/blob/41c860c1/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java ---------------------------------------------------------------------- diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java index 91d600e..ff0d084 100644 --- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java +++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java @@ -280,7 +280,12 @@ public class CassandraMessageMapper implements MessageMapper { message.setFlags(newFlags); message.setModSeq(modSeqProvider.nextModSeq(mailboxSession, mailbox)); if (updateFlags(message, oldModSeq)) { - return Optional.of(new UpdatedFlags(message.getUid(), message.getModSeq(), oldFlags, newFlags)); + return Optional.of(UpdatedFlags.builder() + .uid(message.getUid()) + .modSeq(message.getModSeq()) + .oldFlags(oldFlags) + .newFlags(newFlags) + .build()); } else { return Optional.empty(); } http://git-wip-us.apache.org/repos/asf/james-project/blob/41c860c1/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMailboxMessageSearchIndexTest.java ---------------------------------------------------------------------- diff --git a/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMailboxMessageSearchIndexTest.java b/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMailboxMessageSearchIndexTest.java index a9ea500..3efe045 100644 --- a/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMailboxMessageSearchIndexTest.java +++ b/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMailboxMessageSearchIndexTest.java @@ -195,7 +195,12 @@ public class ElasticSearchListeningMailboxMessageSearchIndexTest { Flags flags = new Flags(); MessageUid messageUid = MessageUid.of(1); - UpdatedFlags updatedFlags = new UpdatedFlags(messageUid, MODSEQ, flags, flags); + UpdatedFlags updatedFlags = UpdatedFlags.builder() + .uid(messageUid) + .modSeq(MODSEQ) + .oldFlags(flags) + .newFlags(flags) + .build(); TestId mailboxId = TestId.of(12); expectLastCall(); @@ -218,7 +223,12 @@ public class ElasticSearchListeningMailboxMessageSearchIndexTest { Mailbox mailbox = control.createMock(Mailbox.class); Flags flags = new Flags(); MessageUid messageUid = MessageUid.of(1); - UpdatedFlags updatedFlags = new UpdatedFlags(messageUid, MODSEQ, flags, flags); + UpdatedFlags updatedFlags = UpdatedFlags.builder() + .uid(messageUid) + .modSeq(MODSEQ) + .oldFlags(flags) + .newFlags(flags) + .build(); TestId mailboxId = TestId.of(12); expectLastCall(); http://git-wip-us.apache.org/repos/asf/james-project/blob/41c860c1/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/mail/HBaseMessageMapper.java ---------------------------------------------------------------------- diff --git a/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/mail/HBaseMessageMapper.java b/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/mail/HBaseMessageMapper.java index dba79fb..411b15d 100644 --- a/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/mail/HBaseMessageMapper.java +++ b/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/mail/HBaseMessageMapper.java @@ -551,8 +551,12 @@ public class HBaseMessageMapper extends NonTransactionalMapper implements Messag messages.flushCommits(); } - UpdatedFlags uFlags = new UpdatedFlags(member.getUid(), member.getModSeq(), originalFlags, newFlags); - updatedFlags.add(uFlags); + updatedFlags.add(UpdatedFlags.builder() + .uid(member.getUid()) + .modSeq(member.getModSeq()) + .newFlags(newFlags) + .oldFlags(originalFlags) + .build()); } } catch (IOException e) { throw new MailboxException("Error setting flags for messages in " + mailbox, e); http://git-wip-us.apache.org/repos/asf/james-project/blob/41c860c1/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMessageMapper.java ---------------------------------------------------------------------- diff --git a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMessageMapper.java b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMessageMapper.java index d00220a..4867dde 100644 --- a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMessageMapper.java +++ b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMessageMapper.java @@ -192,7 +192,12 @@ public class MaildirMessageMapper extends AbstractMessageMapper { } member.setModSeq(modSeq); - updatedFlags.add(new UpdatedFlags(member.getUid(), modSeq, originalFlags, newFlags)); + updatedFlags.add(UpdatedFlags.builder() + .uid(member.getUid()) + .modSeq(member.getModSeq()) + .newFlags(newFlags) + .oldFlags(originalFlags) + .build()); MessageUid uid = member.getUid(); folder.update(mailboxSession, uid, newMessageName); http://git-wip-us.apache.org/repos/asf/james-project/blob/41c860c1/mailbox/store/src/main/java/org/apache/james/mailbox/store/json/event/dto/UpdatedFlagsDataTransferObject.java ---------------------------------------------------------------------- diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/json/event/dto/UpdatedFlagsDataTransferObject.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/json/event/dto/UpdatedFlagsDataTransferObject.java index ada06f6..b5cdda0 100644 --- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/json/event/dto/UpdatedFlagsDataTransferObject.java +++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/json/event/dto/UpdatedFlagsDataTransferObject.java @@ -45,7 +45,12 @@ public class UpdatedFlagsDataTransferObject { } public UpdatedFlags retrieveUpdatedFlags() { - return new UpdatedFlags(MessageUid.of(uid), modseq, oldFlags.getFlags(), newFlags.getFlags()); + return UpdatedFlags.builder() + .uid(MessageUid.of(uid)) + .modSeq(modseq) + .oldFlags(oldFlags.getFlags()) + .newFlags(newFlags.getFlags()) + .build(); } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/james-project/blob/41c860c1/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/AbstractMessageMapper.java ---------------------------------------------------------------------- diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/AbstractMessageMapper.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/AbstractMessageMapper.java index 006fee5..de82a8d 100644 --- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/AbstractMessageMapper.java +++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/AbstractMessageMapper.java @@ -85,11 +85,13 @@ public abstract class AbstractMessageMapper extends TransactionalMapper implemen member.setModSeq(modSeq); save(mailbox, member); } - - - UpdatedFlags uFlags = new UpdatedFlags(member.getUid(), member.getModSeq(), originalFlags, newFlags); - updatedFlags.add(uFlags); + updatedFlags.add(UpdatedFlags.builder() + .uid(member.getUid()) + .modSeq(member.getModSeq()) + .newFlags(newFlags) + .oldFlags(originalFlags) + .build()); } http://git-wip-us.apache.org/repos/asf/james-project/blob/41c860c1/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/MessageUtils.java ---------------------------------------------------------------------- diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/MessageUtils.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/MessageUtils.java index 7cdcab0..9e1d958 100644 --- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/MessageUtils.java +++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/MessageUtils.java @@ -88,10 +88,12 @@ public class MessageUtils { changedFlags.add(member); } - UpdatedFlags uFlags = new UpdatedFlags(member.getUid(), member.getModSeq(), originalFlags, newFlags); - - updatedFlags.add(uFlags); - + updatedFlags.add(UpdatedFlags.builder() + .uid(member.getUid()) + .modSeq(member.getModSeq()) + .newFlags(newFlags) + .oldFlags(originalFlags) + .build()); } return new MessageChangedFlags(updatedFlags.build().iterator(), changedFlags.build()); http://git-wip-us.apache.org/repos/asf/james-project/blob/41c860c1/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerSideEffectTest.java ---------------------------------------------------------------------- diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerSideEffectTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerSideEffectTest.java index ccf3aae..ec2dac1 100644 --- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerSideEffectTest.java +++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerSideEffectTest.java @@ -288,7 +288,12 @@ public abstract class AbstractMessageIdManagerSideEffectTest { MessageResult messageResult = messages.get(0); MessageUid messageUid = messageResult.getUid(); long modSeq = messageResult.getModSeq(); - UpdatedFlags updatedFlags = new UpdatedFlags(messageUid, modSeq, FLAGS, newFlags); + UpdatedFlags updatedFlags = UpdatedFlags.builder() + .uid(messageUid) + .modSeq(modSeq) + .oldFlags(FLAGS) + .newFlags(newFlags) + .build(); verify(dispatcher, times(1)).flagsUpdated(session, messageUid, mailbox2, updatedFlags); verifyNoMoreInteractions(dispatcher); http://git-wip-us.apache.org/repos/asf/james-project/blob/41c860c1/mailbox/store/src/test/java/org/apache/james/mailbox/store/MailboxEventDispatcherTest.java ---------------------------------------------------------------------- diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/MailboxEventDispatcherTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/MailboxEventDispatcherTest.java index 41140dd..552ac21 100644 --- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/MailboxEventDispatcherTest.java +++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/MailboxEventDispatcherTest.java @@ -19,18 +19,13 @@ package org.apache.james.mailbox.store; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; +import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -import java.util.Arrays; -import java.util.Iterator; - import javax.mail.Flags; +import org.apache.james.mailbox.FlagsBuilder; import org.apache.james.mailbox.MailboxListener; import org.apache.james.mailbox.MailboxSession; import org.apache.james.mailbox.MessageUid; @@ -40,18 +35,25 @@ import org.apache.james.mailbox.model.UpdatedFlags; import org.apache.james.mailbox.store.event.MailboxEventDispatcher; import org.apache.james.mailbox.store.mail.model.Mailbox; import org.apache.james.mailbox.util.EventCollector; +import org.assertj.core.api.Condition; import org.junit.Before; import org.junit.Test; +import com.google.common.collect.ImmutableList; + public class MailboxEventDispatcherTest { private static final int sessionId = 10; + private static final int MOD_SEQ = -1; + public static final Condition<MailboxListener.Event> INSTANCE_OF_EVENT_FLAGS_UPDATED = new Condition<MailboxListener.Event>() { + @Override + public boolean matches(MailboxListener.Event event) { + return event instanceof MailboxListener.FlagsUpdated; + } + }; private MailboxEventDispatcher dispatcher; - private EventCollector collector; - private MessageResult result; - private Mailbox mailbox; private MailboxSession session = new MockMailboxSession("test") { @@ -78,220 +80,286 @@ public class MailboxEventDispatcherTest { @Test public void testShouldReturnNoChangesWhenSystemFlagsUnchanged() { - dispatcher.flagsUpdated(session, Arrays.asList(result.getUid()), mailbox, Arrays.asList(new UpdatedFlags(result.getUid(), -1, new Flags( - Flags.Flag.DELETED), new Flags(Flags.Flag.DELETED)))); - assertEquals(1, collector.getEvents().size()); - assertTrue(collector.getEvents().get(0) instanceof MailboxListener.FlagsUpdated); + dispatcher.flagsUpdated(session, + ImmutableList.of(result.getUid()), + mailbox, + ImmutableList.of(UpdatedFlags.builder() + .uid(result.getUid()) + .modSeq(MOD_SEQ) + .newFlags(new Flags(Flags.Flag.DELETED)) + .oldFlags(new Flags(Flags.Flag.DELETED)) + .build())); + + assertThat(collector.getEvents()).hasSize(1) + .are(INSTANCE_OF_EVENT_FLAGS_UPDATED); MailboxListener.FlagsUpdated event = (MailboxListener.FlagsUpdated) collector.getEvents() .get(0); - Iterator<Flags.Flag> iterator = event.getUpdatedFlags().get(0).systemFlagIterator(); - assertNotNull(iterator); - assertFalse(iterator.hasNext()); + assertThat(event.getUpdatedFlags().get(0).systemFlagIterator()).isEmpty(); } @Test public void testShouldShowAnsweredAdded() { - dispatcher.flagsUpdated(session, Arrays.asList(result.getUid()), mailbox, Arrays.asList(new UpdatedFlags(result.getUid(), -1, new Flags(), - new Flags(Flags.Flag.ANSWERED)))); - assertEquals(1, collector.getEvents().size()); - assertTrue(collector.getEvents().get(0) instanceof MailboxListener.FlagsUpdated); + dispatcher.flagsUpdated(session, + ImmutableList.of(result.getUid()), + mailbox, + ImmutableList.of( + UpdatedFlags.builder() + .uid(result.getUid()) + .modSeq(MOD_SEQ) + .newFlags(new Flags(Flags.Flag.ANSWERED)) + .oldFlags(new Flags()) + .build())); + + assertThat(collector.getEvents()).hasSize(1) + .are(INSTANCE_OF_EVENT_FLAGS_UPDATED); MailboxListener.FlagsUpdated event = (MailboxListener.FlagsUpdated) collector.getEvents() .get(0); - Iterator<Flags.Flag> iterator = event.getUpdatedFlags().get(0).systemFlagIterator(); - assertNotNull(iterator); - assertTrue(iterator.hasNext()); - assertEquals(Flags.Flag.ANSWERED, iterator.next()); - assertFalse(iterator.hasNext()); + assertThat(event.getUpdatedFlags().get(0).systemFlagIterator()) + .containsOnly(Flags.Flag.ANSWERED); } @Test public void testShouldShowAnsweredRemoved() { - dispatcher.flagsUpdated(session, Arrays.asList(result.getUid()), mailbox, Arrays.asList(new UpdatedFlags(result.getUid(), -1, new Flags( - Flags.Flag.ANSWERED), new Flags()))); - assertEquals(1, collector.getEvents().size()); - assertTrue(collector.getEvents().get(0) instanceof MailboxListener.FlagsUpdated); + dispatcher.flagsUpdated(session, + ImmutableList.of(result.getUid()), + mailbox, + ImmutableList.of( + UpdatedFlags.builder() + .uid(result.getUid()) + .modSeq(MOD_SEQ) + .newFlags(new Flags(Flags.Flag.ANSWERED)) + .oldFlags(new Flags()) + .build())); + + assertThat(collector.getEvents()).hasSize(1) + .are(INSTANCE_OF_EVENT_FLAGS_UPDATED); MailboxListener.FlagsUpdated event = (MailboxListener.FlagsUpdated) collector.getEvents() .get(0); - Iterator<Flags.Flag> iterator = event.getUpdatedFlags().get(0).systemFlagIterator(); - assertNotNull(iterator); - assertTrue(iterator.hasNext()); - assertEquals(Flags.Flag.ANSWERED, iterator.next()); - assertFalse(iterator.hasNext()); + assertThat(event.getUpdatedFlags().get(0).systemFlagIterator()) + .containsOnly(Flags.Flag.ANSWERED); } @Test public void testShouldShowDeletedAdded() { - dispatcher.flagsUpdated(session, Arrays.asList(result.getUid()), mailbox, Arrays.asList(new UpdatedFlags(result.getUid(), -1, new Flags(), - new Flags(Flags.Flag.DELETED)))); - assertEquals(1, collector.getEvents().size()); - assertTrue(collector.getEvents().get(0) instanceof MailboxListener.FlagsUpdated); + dispatcher.flagsUpdated(session, + ImmutableList.of(result.getUid()), + mailbox, + ImmutableList.of(UpdatedFlags.builder() + .uid(result.getUid()) + .modSeq(MOD_SEQ) + .newFlags(new Flags()) + .oldFlags(new Flags(Flags.Flag.DELETED)) + .build())); + + assertThat(collector.getEvents()).hasSize(1) + .are(INSTANCE_OF_EVENT_FLAGS_UPDATED); MailboxListener.FlagsUpdated event = (MailboxListener.FlagsUpdated) collector.getEvents() .get(0); - Iterator<Flags.Flag> iterator = event.getUpdatedFlags().get(0).systemFlagIterator(); - assertNotNull(iterator); - assertTrue(iterator.hasNext()); - assertEquals(Flags.Flag.DELETED, iterator.next()); - assertFalse(iterator.hasNext()); + assertThat(event.getUpdatedFlags().get(0).systemFlagIterator()) + .containsOnly(Flags.Flag.DELETED); } @Test public void testShouldShowDeletedRemoved() { - dispatcher.flagsUpdated(session, Arrays.asList(result.getUid()), mailbox, Arrays.asList(new UpdatedFlags(result.getUid(), -1, new Flags( - Flags.Flag.DELETED), new Flags()))); - assertEquals(1, collector.getEvents().size()); - assertTrue(collector.getEvents().get(0) instanceof MailboxListener.FlagsUpdated); + dispatcher.flagsUpdated(session, + ImmutableList.of(result.getUid()), + mailbox, + ImmutableList.of(UpdatedFlags.builder() + .uid(result.getUid()) + .modSeq(MOD_SEQ) + .newFlags(new Flags(Flags.Flag.DELETED)) + .oldFlags(new Flags()) + .build())); + + assertThat(collector.getEvents()).hasSize(1) + .are(INSTANCE_OF_EVENT_FLAGS_UPDATED); MailboxListener.FlagsUpdated event = (MailboxListener.FlagsUpdated) collector.getEvents() .get(0); - Iterator<Flags.Flag> iterator = event.getUpdatedFlags().get(0).systemFlagIterator(); - assertNotNull(iterator); - assertTrue(iterator.hasNext()); - assertEquals(Flags.Flag.DELETED, iterator.next()); - assertFalse(iterator.hasNext()); + assertThat(event.getUpdatedFlags().get(0).systemFlagIterator()) + .containsOnly(Flags.Flag.DELETED); } @Test public void testShouldShowDraftAdded() { - dispatcher.flagsUpdated(session, Arrays.asList(result.getUid()), mailbox, Arrays.asList(new UpdatedFlags(result.getUid(), -1, new Flags(), - new Flags(Flags.Flag.DRAFT)))); - assertEquals(1, collector.getEvents().size()); - assertTrue(collector.getEvents().get(0) instanceof MailboxListener.FlagsUpdated); + dispatcher.flagsUpdated(session, + ImmutableList.of(result.getUid()), + mailbox, + ImmutableList.of(UpdatedFlags.builder() + .uid(result.getUid()) + .modSeq(MOD_SEQ) + .newFlags(new Flags()) + .oldFlags(new Flags(Flags.Flag.DRAFT)) + .build())); + + assertThat(collector.getEvents()).hasSize(1) + .are(INSTANCE_OF_EVENT_FLAGS_UPDATED); MailboxListener.FlagsUpdated event = (MailboxListener.FlagsUpdated) collector.getEvents() .get(0); - Iterator<Flags.Flag> iterator = event.getUpdatedFlags().get(0).systemFlagIterator(); - assertNotNull(iterator); - assertTrue(iterator.hasNext()); - assertEquals(Flags.Flag.DRAFT, iterator.next()); - assertFalse(iterator.hasNext()); + assertThat(event.getUpdatedFlags().get(0).systemFlagIterator()) + .containsOnly(Flags.Flag.DRAFT); } @Test public void testShouldShowDraftRemoved() { - dispatcher.flagsUpdated(session,Arrays.asList(result.getUid()), mailbox, Arrays.asList(new UpdatedFlags(result.getUid(), -1, new Flags( - Flags.Flag.DRAFT), new Flags()))); - assertEquals(1, collector.getEvents().size()); - assertTrue(collector.getEvents().get(0) instanceof MailboxListener.FlagsUpdated); + dispatcher.flagsUpdated(session, + ImmutableList.of(result.getUid()), + mailbox, + ImmutableList.of(UpdatedFlags.builder() + .uid(result.getUid()) + .modSeq(MOD_SEQ) + .newFlags(new Flags()) + .oldFlags(new Flags(Flags.Flag.DRAFT)) + .build())); + + assertThat(collector.getEvents()).hasSize(1) + .are(INSTANCE_OF_EVENT_FLAGS_UPDATED); MailboxListener.FlagsUpdated event = (MailboxListener.FlagsUpdated) collector.getEvents() .get(0); - Iterator<Flags.Flag> iterator = event.getUpdatedFlags().get(0).systemFlagIterator(); - assertNotNull(iterator); - assertTrue(iterator.hasNext()); - assertEquals(Flags.Flag.DRAFT, iterator.next()); - assertFalse(iterator.hasNext()); + assertThat(event.getUpdatedFlags().get(0).systemFlagIterator()) + .containsOnly(Flags.Flag.DRAFT); } @Test public void testShouldShowFlaggedAdded() { - dispatcher.flagsUpdated(session, Arrays.asList(result.getUid()), mailbox, Arrays.asList(new UpdatedFlags(result.getUid(), -1, new Flags(), - new Flags(Flags.Flag.FLAGGED)))); - assertEquals(1, collector.getEvents().size()); - assertTrue(collector.getEvents().get(0) instanceof MailboxListener.FlagsUpdated); + dispatcher.flagsUpdated(session, + ImmutableList.of(result.getUid()), + mailbox, + ImmutableList.of(UpdatedFlags.builder() + .uid(result.getUid()) + .modSeq(MOD_SEQ) + .newFlags(new Flags(Flags.Flag.FLAGGED)) + .oldFlags(new Flags()) + .build())); + + assertThat(collector.getEvents()).hasSize(1) + .are(INSTANCE_OF_EVENT_FLAGS_UPDATED); MailboxListener.FlagsUpdated event = (MailboxListener.FlagsUpdated) collector.getEvents() .get(0); - Iterator<Flags.Flag> iterator = event.getUpdatedFlags().get(0).systemFlagIterator(); - assertNotNull(iterator); - assertTrue(iterator.hasNext()); - assertEquals(Flags.Flag.FLAGGED, iterator.next()); - assertFalse(iterator.hasNext()); + assertThat(event.getUpdatedFlags().get(0).systemFlagIterator()) + .containsOnly(Flags.Flag.FLAGGED); } @Test public void testShouldShowFlaggedRemoved() { - dispatcher.flagsUpdated(session, Arrays.asList(result.getUid()), mailbox, Arrays.asList(new UpdatedFlags(result.getUid(), -1, new Flags( - Flags.Flag.FLAGGED), new Flags()))); - assertEquals(1, collector.getEvents().size()); - assertTrue(collector.getEvents().get(0) instanceof MailboxListener.FlagsUpdated); + dispatcher.flagsUpdated(session, + ImmutableList.of(result.getUid()), + mailbox, + ImmutableList.of(UpdatedFlags.builder() + .uid(result.getUid()) + .modSeq(MOD_SEQ) + .newFlags(new Flags()) + .oldFlags(new Flags(Flags.Flag.FLAGGED)) + .build())); + + assertThat(collector.getEvents()).hasSize(1) + .are(INSTANCE_OF_EVENT_FLAGS_UPDATED); MailboxListener.FlagsUpdated event = (MailboxListener.FlagsUpdated) collector.getEvents() .get(0); - Iterator<Flags.Flag> iterator = event.getUpdatedFlags().get(0).systemFlagIterator(); - assertNotNull(iterator); - assertTrue(iterator.hasNext()); - assertEquals(Flags.Flag.FLAGGED, iterator.next()); - assertFalse(iterator.hasNext()); + assertThat(event.getUpdatedFlags().get(0).systemFlagIterator()) + .containsOnly(Flags.Flag.FLAGGED); } @Test public void testShouldShowRecentAdded() { - dispatcher.flagsUpdated(session, Arrays.asList(result.getUid()), mailbox, Arrays.asList(new UpdatedFlags(result.getUid(), -1, new Flags(), - new Flags(Flags.Flag.RECENT)))); - assertEquals(1, collector.getEvents().size()); - assertTrue(collector.getEvents().get(0) instanceof MailboxListener.FlagsUpdated); + dispatcher.flagsUpdated(session, + ImmutableList.of(result.getUid()), + mailbox, + ImmutableList.of(UpdatedFlags.builder() + .uid(result.getUid()) + .modSeq(MOD_SEQ) + .newFlags(new Flags(Flags.Flag.RECENT)) + .oldFlags(new Flags()) + .build())); + + assertThat(collector.getEvents()).hasSize(1) + .are(INSTANCE_OF_EVENT_FLAGS_UPDATED); MailboxListener.FlagsUpdated event = (MailboxListener.FlagsUpdated) collector.getEvents() .get(0); - Iterator<Flags.Flag> iterator = event.getUpdatedFlags().get(0).systemFlagIterator(); - assertNotNull(iterator); - assertTrue(iterator.hasNext()); - assertEquals(Flags.Flag.RECENT, iterator.next()); - assertFalse(iterator.hasNext()); + assertThat(event.getUpdatedFlags().get(0).systemFlagIterator()) + .containsOnly(Flags.Flag.RECENT); } @Test public void testShouldShowRecentRemoved() { - dispatcher.flagsUpdated(session, Arrays.asList(result.getUid()), mailbox, Arrays.asList(new UpdatedFlags(result.getUid(), -1, new Flags( - Flags.Flag.RECENT), new Flags()))); - assertEquals(1, collector.getEvents().size()); - assertTrue(collector.getEvents().get(0) instanceof MailboxListener.FlagsUpdated); + dispatcher.flagsUpdated(session, + ImmutableList.of(result.getUid()), + mailbox, + ImmutableList.of(UpdatedFlags.builder() + .uid(result.getUid()) + .modSeq(MOD_SEQ) + .newFlags(new Flags()) + .oldFlags(new Flags(Flags.Flag.RECENT)) + .build())); + + assertThat(collector.getEvents()).hasSize(1) + .are(INSTANCE_OF_EVENT_FLAGS_UPDATED); MailboxListener.FlagsUpdated event = (MailboxListener.FlagsUpdated) collector.getEvents() .get(0); - Iterator<Flags.Flag> iterator = event.getUpdatedFlags().get(0).systemFlagIterator(); - assertNotNull(iterator); - assertTrue(iterator.hasNext()); - assertEquals(Flags.Flag.RECENT, iterator.next()); - assertFalse(iterator.hasNext()); + assertThat(event.getUpdatedFlags().get(0).systemFlagIterator()) + .containsOnly(Flags.Flag.RECENT); } @Test public void testShouldShowSeenAdded() { - dispatcher.flagsUpdated(session, Arrays.asList(result.getUid()), mailbox, Arrays.asList(new UpdatedFlags(result.getUid(), -1, new Flags(), - new Flags(Flags.Flag.SEEN)))); - assertEquals(1, collector.getEvents().size()); - assertTrue(collector.getEvents().get(0) instanceof MailboxListener.FlagsUpdated); + dispatcher.flagsUpdated(session, + ImmutableList.of(result.getUid()), + mailbox, + ImmutableList.of(UpdatedFlags.builder() + .uid(result.getUid()) + .modSeq(MOD_SEQ) + .newFlags(new Flags(Flags.Flag.SEEN)) + .oldFlags(new Flags()) + .build())); + + assertThat(collector.getEvents()).hasSize(1) + .are(INSTANCE_OF_EVENT_FLAGS_UPDATED); MailboxListener.FlagsUpdated event = (MailboxListener.FlagsUpdated) collector.getEvents() .get(0); - Iterator<Flags.Flag> iterator = event.getUpdatedFlags().get(0).systemFlagIterator(); - assertNotNull(iterator); - assertTrue(iterator.hasNext()); - assertEquals(Flags.Flag.SEEN, iterator.next()); - assertFalse(iterator.hasNext()); + assertThat(event.getUpdatedFlags().get(0).systemFlagIterator()) + .containsOnly(Flags.Flag.SEEN); } @Test public void testShouldShowSeenRemoved() { - dispatcher.flagsUpdated(session, Arrays.asList(result.getUid()), mailbox, Arrays.asList(new UpdatedFlags(result.getUid(), -1, new Flags( - Flags.Flag.SEEN), new Flags()))); - assertEquals(1, collector.getEvents().size()); - assertTrue(collector.getEvents().get(0) instanceof MailboxListener.FlagsUpdated); + dispatcher.flagsUpdated(session, + ImmutableList.of(result.getUid()), + mailbox, + ImmutableList.of(UpdatedFlags.builder() + .uid(result.getUid()) + .modSeq(MOD_SEQ) + .newFlags(new Flags()) + .oldFlags(new Flags(Flags.Flag.SEEN)) + .build())); + + assertThat(collector.getEvents()).hasSize(1) + .are(INSTANCE_OF_EVENT_FLAGS_UPDATED); MailboxListener.FlagsUpdated event = (MailboxListener.FlagsUpdated) collector.getEvents() - .get(0); - Iterator<Flags.Flag> iterator = event.getUpdatedFlags().get(0).systemFlagIterator(); - assertNotNull(iterator); - assertTrue(iterator.hasNext()); - assertEquals(Flags.Flag.SEEN, iterator.next()); - assertFalse(iterator.hasNext()); + .get(0); + assertThat(event.getUpdatedFlags().get(0).systemFlagIterator()) + .containsOnly(Flags.Flag.SEEN); } @Test public void testShouldShowMixedChanges() { - Flags originals = new Flags(); - originals.add(Flags.Flag.DRAFT); - originals.add(Flags.Flag.RECENT); - Flags updated = new Flags(); - updated.add(Flags.Flag.ANSWERED); - updated.add(Flags.Flag.DRAFT); - updated.add(Flags.Flag.SEEN); - - dispatcher.flagsUpdated(session, Arrays.asList(result.getUid()), mailbox, Arrays.asList(new UpdatedFlags(result.getUid(), -1, originals, updated))); - assertEquals(1, collector.getEvents().size()); - assertTrue(collector.getEvents().get(0) instanceof MailboxListener.FlagsUpdated); + dispatcher.flagsUpdated(session, + ImmutableList.of(result.getUid()), + mailbox, + ImmutableList.of(UpdatedFlags.builder() + .uid(result.getUid()) + .modSeq(MOD_SEQ) + .newFlags(FlagsBuilder.builder() + .add(Flags.Flag.ANSWERED, Flags.Flag.DRAFT, Flags.Flag.SEEN) + .build()) + .oldFlags(FlagsBuilder.builder() + .add(Flags.Flag.DRAFT, Flags.Flag.RECENT) + .build()) + .build())); + + assertThat(collector.getEvents()).hasSize(1) + .are(INSTANCE_OF_EVENT_FLAGS_UPDATED); MailboxListener.FlagsUpdated event = (MailboxListener.FlagsUpdated) collector.getEvents() .get(0); - Iterator<Flags.Flag> iterator = event.getUpdatedFlags().get(0).systemFlagIterator(); - assertNotNull(iterator); - assertTrue(iterator.hasNext()); - assertEquals(Flags.Flag.ANSWERED, iterator.next()); - assertTrue(iterator.hasNext()); - assertEquals(Flags.Flag.RECENT, iterator.next()); - assertTrue(iterator.hasNext()); - assertEquals(Flags.Flag.SEEN, iterator.next()); - assertFalse(iterator.hasNext()); + assertThat(event.getUpdatedFlags().get(0).systemFlagIterator()) + .containsOnly(Flags.Flag.SEEN, Flags.Flag.RECENT, Flags.Flag.ANSWERED); } } http://git-wip-us.apache.org/repos/asf/james-project/blob/41c860c1/mailbox/store/src/test/java/org/apache/james/mailbox/store/TestMailboxSessionMapperFactory.java ---------------------------------------------------------------------- diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/TestMailboxSessionMapperFactory.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/TestMailboxSessionMapperFactory.java index e90e982..98e51f4 100644 --- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/TestMailboxSessionMapperFactory.java +++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/TestMailboxSessionMapperFactory.java @@ -345,7 +345,12 @@ public class TestMailboxSessionMapperFactory extends MailboxSessionMapperFactory public Map.Entry<MailboxId, UpdatedFlags> apply(MailboxMessage input) { Preconditions.checkState(updateMode.equals(MessageManager.FlagsUpdateMode.ADD)); return new AbstractMap.SimpleEntry<MailboxId, UpdatedFlags>(input.getMailboxId(), - new UpdatedFlags(input.getUid(), input.getModSeq(), input.createFlags(), newState)); + UpdatedFlags.builder() + .uid(input.getUid()) + .modSeq(input.getModSeq()) + .newFlags(newState) + .oldFlags(input.createFlags()) + .build()); } }; } http://git-wip-us.apache.org/repos/asf/james-project/blob/41c860c1/mailbox/store/src/test/java/org/apache/james/mailbox/store/json/EventSerializerTest.java ---------------------------------------------------------------------- diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/json/EventSerializerTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/json/EventSerializerTest.java index 6d92eff..900225a 100644 --- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/json/EventSerializerTest.java +++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/json/EventSerializerTest.java @@ -48,12 +48,18 @@ public abstract class EventSerializerTest { public static final MessageUid UID = MessageUid.of(42); public static final long MOD_SEQ = 24L; - public static final UpdatedFlags UPDATED_FLAGS = new UpdatedFlags(UID, MOD_SEQ, new Flags(), new Flags(Flags.Flag.SEEN)); public static final Flags FLAGS = new Flags(); + public static final UpdatedFlags UPDATED_FLAGS = UpdatedFlags.builder() + .uid(UID) + .modSeq(MOD_SEQ) + .oldFlags(FLAGS) + .newFlags(new Flags(Flags.Flag.SEEN)) + .build(); public static final long SIZE = 45L; private static final MessageId MESSAGE_ID = new TestMessageId.Factory().generate(); public static final SimpleMessageMetaData MESSAGE_META_DATA = new SimpleMessageMetaData(UID, MOD_SEQ, FLAGS, SIZE, null, MESSAGE_ID); public static final MailboxPath FROM = new MailboxPath("namespace", "user", "name"); + private EventSerializer serializer; private EventFactory eventFactory; private MailboxSession mailboxSession; http://git-wip-us.apache.org/repos/asf/james-project/blob/41c860c1/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageIdMapperTest.java ---------------------------------------------------------------------- diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageIdMapperTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageIdMapperTest.java index 0770ec1..b5c1070 100644 --- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageIdMapperTest.java +++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageIdMapperTest.java @@ -329,7 +329,12 @@ public class MessageIdMapperTest<T extends MapperProvider> { Map<MailboxId, UpdatedFlags> flags = sut.setFlags(messageId, ImmutableList.of(message1.getMailboxId()), newFlags, FlagsUpdateMode.ADD); long modSeq = mapperProvider.highestModSeq(benwaInboxMailbox); - UpdatedFlags expectedUpdatedFlags = new UpdatedFlags(message1.getUid(), modSeq, new Flags(), newFlags); + UpdatedFlags expectedUpdatedFlags = UpdatedFlags.builder() + .uid(message1.getUid()) + .modSeq(modSeq) + .oldFlags(new Flags()) + .newFlags(newFlags) + .build(); assertThat(flags).containsOnly(MapEntry.entry(benwaInboxMailbox.getMailboxId(), expectedUpdatedFlags)); } @@ -351,7 +356,12 @@ public class MessageIdMapperTest<T extends MapperProvider> { Map<MailboxId, UpdatedFlags> flags = sut.setFlags(messageId, ImmutableList.of(message1.getMailboxId()), newFlags, FlagsUpdateMode.REPLACE); long modSeq = mapperProvider.highestModSeq(benwaInboxMailbox); - UpdatedFlags expectedUpdatedFlags = new UpdatedFlags(message1.getUid(), modSeq, messageFlags, newFlags); + UpdatedFlags expectedUpdatedFlags = UpdatedFlags.builder() + .uid(message1.getUid()) + .modSeq(modSeq) + .oldFlags(messageFlags) + .newFlags(newFlags) + .build(); assertThat(flags).contains(MapEntry.entry(benwaInboxMailbox.getMailboxId(), expectedUpdatedFlags)); } @@ -374,7 +384,12 @@ public class MessageIdMapperTest<T extends MapperProvider> { Map<MailboxId, UpdatedFlags> flags = sut.setFlags(messageId, ImmutableList.of(message1.getMailboxId()), newFlags, FlagsUpdateMode.REMOVE); long modSeq = mapperProvider.highestModSeq(benwaInboxMailbox); - UpdatedFlags expectedUpdatedFlags = new UpdatedFlags(message1.getUid(), modSeq, messageFlags, new Flags(Flags.Flag.RECENT)); + UpdatedFlags expectedUpdatedFlags = UpdatedFlags.builder() + .uid(message1.getUid()) + .modSeq(modSeq) + .oldFlags(messageFlags) + .newFlags(new Flags(Flags.Flag.RECENT)) + .build(); assertThat(flags).contains(MapEntry.entry(benwaInboxMailbox.getMailboxId(), expectedUpdatedFlags)); } @@ -440,7 +455,12 @@ public class MessageIdMapperTest<T extends MapperProvider> { .add(Flag.ANSWERED) .build(); long modSeq = mapperProvider.highestModSeq(benwaInboxMailbox); - UpdatedFlags expectedUpdatedFlags = new UpdatedFlags(message1.getUid(), modSeq, initialFlags, newFlags); + UpdatedFlags expectedUpdatedFlags = UpdatedFlags.builder() + .uid(message1.getUid()) + .modSeq(modSeq) + .oldFlags(initialFlags) + .newFlags(newFlags) + .build(); assertThat(flags).containsOnly(MapEntry.entry(benwaInboxMailbox.getMailboxId(), expectedUpdatedFlags)); } @@ -461,8 +481,18 @@ public class MessageIdMapperTest<T extends MapperProvider> { long modSeqBenwaInboxMailbox = mapperProvider.highestModSeq(benwaInboxMailbox); long modSeqBenwaWorkMailbox = mapperProvider.highestModSeq(benwaWorkMailbox); - UpdatedFlags expectedUpdatedFlags = new UpdatedFlags(message1.getUid(), modSeqBenwaInboxMailbox, new Flags(), newFlags); - UpdatedFlags expectedUpdatedFlags2 = new UpdatedFlags(message1InOtherMailbox.getUid(), modSeqBenwaWorkMailbox, new Flags(), newFlags); + UpdatedFlags expectedUpdatedFlags = UpdatedFlags.builder() + .uid(message1.getUid()) + .modSeq(modSeqBenwaInboxMailbox) + .oldFlags(new Flags()) + .newFlags(newFlags) + .build(); + UpdatedFlags expectedUpdatedFlags2 = UpdatedFlags.builder() + .uid(message1.getUid()) + .modSeq(modSeqBenwaWorkMailbox) + .oldFlags(new Flags()) + .newFlags(newFlags) + .build(); assertThat(flags).containsOnly(MapEntry.entry(benwaInboxMailbox.getMailboxId(), expectedUpdatedFlags), MapEntry.entry(benwaWorkMailbox.getMailboxId(), expectedUpdatedFlags2)); } http://git-wip-us.apache.org/repos/asf/james-project/blob/41c860c1/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageMapperTest.java ---------------------------------------------------------------------- diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageMapperTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageMapperTest.java index 156744f..f7a315d 100644 --- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageMapperTest.java +++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageMapperTest.java @@ -593,7 +593,12 @@ public class MessageMapperTest<T extends MapperProvider> { Iterator<UpdatedFlags> updatedFlags = messageMapper.updateFlags(benwaInboxMailbox, new FlagsUpdateCalculator(new Flags(Flags.Flag.FLAGGED), FlagsUpdateMode.REPLACE), MessageRange.one(message1.getUid())); assertThat(Lists.newArrayList(updatedFlags)) - .containsOnly(new UpdatedFlags(message1.getUid(), modSeq + 1, new Flags(), new Flags(Flags.Flag.FLAGGED))); + .containsOnly(UpdatedFlags.builder() + .uid(message1.getUid()) + .modSeq(modSeq + 1) + .oldFlags(new Flags()) + .newFlags(new Flags(Flags.Flag.FLAGGED)) + .build()); } @ContractTest @@ -602,7 +607,12 @@ public class MessageMapperTest<T extends MapperProvider> { messageMapper.updateFlags(benwaInboxMailbox, new FlagsUpdateCalculator(new Flags(Flags.Flag.FLAGGED), FlagsUpdateMode.REPLACE), MessageRange.one(message1.getUid())); long modSeq = messageMapper.getHighestModSeq(benwaInboxMailbox); assertThat(messageMapper.updateFlags(benwaInboxMailbox, new FlagsUpdateCalculator(new Flags(Flags.Flag.SEEN), FlagsUpdateMode.ADD), MessageRange.one(message1.getUid()))) - .containsOnly(new UpdatedFlags(message1.getUid(), modSeq + 1, new Flags(Flags.Flag.FLAGGED), new FlagsBuilder().add(Flags.Flag.SEEN, Flags.Flag.FLAGGED).build())); + .containsOnly(UpdatedFlags.builder() + .uid(message1.getUid()) + .modSeq(modSeq + 1) + .oldFlags(new Flags(Flags.Flag.FLAGGED)) + .newFlags(new FlagsBuilder().add(Flags.Flag.SEEN, Flags.Flag.FLAGGED).build()) + .build()); } @ContractTest @@ -619,7 +629,13 @@ public class MessageMapperTest<T extends MapperProvider> { messageMapper.updateFlags(benwaInboxMailbox, new FlagsUpdateCalculator(new FlagsBuilder().add(Flags.Flag.FLAGGED, Flags.Flag.SEEN).build(), FlagsUpdateMode.REPLACE), MessageRange.one(message1.getUid())); long modSeq = messageMapper.getHighestModSeq(benwaInboxMailbox); assertThat(messageMapper.updateFlags(benwaInboxMailbox, new FlagsUpdateCalculator(new Flags(Flags.Flag.SEEN), FlagsUpdateMode.REMOVE), MessageRange.one(message1.getUid()))) - .containsOnly(new UpdatedFlags(message1.getUid(), modSeq + 1, new FlagsBuilder().add(Flags.Flag.SEEN, Flags.Flag.FLAGGED).build(), new Flags(Flags.Flag.FLAGGED))); + .containsOnly( + UpdatedFlags.builder() + .uid(message1.getUid()) + .modSeq(modSeq + 1) + .oldFlags(new FlagsBuilder().add(Flags.Flag.SEEN, Flags.Flag.FLAGGED).build()) + .newFlags(new Flags(Flags.Flag.FLAGGED)) + .build()); } @ContractTest @@ -734,7 +750,13 @@ public class MessageMapperTest<T extends MapperProvider> { saveMessages(); long modSeq = messageMapper.getHighestModSeq(benwaInboxMailbox); assertThat(messageMapper.updateFlags(benwaInboxMailbox, new FlagsUpdateCalculator(new Flags(USER_FLAG), FlagsUpdateMode.ADD), MessageRange.one(message1.getUid()))) - .containsOnly(new UpdatedFlags(message1.getUid(), modSeq + 1, new Flags(), new Flags(USER_FLAG))); + .containsOnly( + UpdatedFlags.builder() + .uid(message1.getUid()) + .modSeq(modSeq + 1) + .oldFlags(new Flags()) + .newFlags(new Flags(USER_FLAG)) + .build()); } @ContractTest http://git-wip-us.apache.org/repos/asf/james-project/blob/41c860c1/mailbox/tool/src/test/java/org/apache/james/mailbox/indexer/registrations/MailboxRegistrationTest.java ---------------------------------------------------------------------- diff --git a/mailbox/tool/src/test/java/org/apache/james/mailbox/indexer/registrations/MailboxRegistrationTest.java b/mailbox/tool/src/test/java/org/apache/james/mailbox/indexer/registrations/MailboxRegistrationTest.java index 4db7021..e965aec 100644 --- a/mailbox/tool/src/test/java/org/apache/james/mailbox/indexer/registrations/MailboxRegistrationTest.java +++ b/mailbox/tool/src/test/java/org/apache/james/mailbox/indexer/registrations/MailboxRegistrationTest.java @@ -91,7 +91,12 @@ public class MailboxRegistrationTest { MailboxListener.Event event = eventFactory.flagsUpdated(SESSION, Lists.newArrayList(UID), MAILBOX, - Lists.newArrayList(new UpdatedFlags(UID, MOD_SEQ, new Flags(), NEW_FLAGS))); + Lists.newArrayList(UpdatedFlags.builder() + .uid(UID) + .modSeq(MOD_SEQ) + .oldFlags(new Flags()) + .newFlags(NEW_FLAGS) + .build())); mailboxRegistration.event(event); assertThat(mailboxRegistration.getImpactingEvents(UID)).containsExactly(new FlagsMessageEvent(INBOX, UID, NEW_FLAGS)); } http://git-wip-us.apache.org/repos/asf/james-project/blob/41c860c1/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java ---------------------------------------------------------------------- diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java index abc895a..b687c53 100644 --- a/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java +++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java @@ -26,7 +26,6 @@ import static org.junit.Assert.assertTrue; import java.io.IOException; import java.io.InputStream; -import java.util.Arrays; import java.util.Collection; import java.util.Date; import java.util.EnumSet; @@ -48,7 +47,6 @@ import org.apache.james.mailbox.MailboxManager; import org.apache.james.mailbox.MailboxSession; import org.apache.james.mailbox.MessageManager; import org.apache.james.mailbox.MessageUid; -import org.apache.james.mailbox.exception.BadCredentialsException; import org.apache.james.mailbox.exception.MailboxException; import org.apache.james.mailbox.model.ComposedMessageId; import org.apache.james.mailbox.model.Content; @@ -78,6 +76,8 @@ import org.apache.james.mailbox.store.mail.model.DefaultMessageId; import org.junit.Test; import org.slf4j.Logger; +import com.google.common.collect.ImmutableList; + public class MailboxEventAnalyserTest { private static final long BASE_SESSION_ID = 99; @@ -159,7 +159,7 @@ public class MailboxEventAnalyserTest { } - public MailboxSession login(String userid, String passwd, Logger log) throws BadCredentialsException, MailboxException { + public MailboxSession login(String userid, String passwd, Logger log) throws MailboxException { throw new UnsupportedOperationException("Not implemented"); } @@ -181,13 +181,11 @@ public class MailboxEventAnalyserTest { public long getMessageCount(MailboxSession mailboxSession) throws MailboxException { return 1; } - public boolean isWriteable(MailboxSession session) { return false; } - public boolean isModSeqPermanent(MailboxSession session) { return false; } @@ -195,29 +193,22 @@ public class MailboxEventAnalyserTest { @Override public Iterator<MessageUid> search(SearchQuery searchQuery, MailboxSession mailboxSession) throws MailboxException { throw new UnsupportedOperationException("Not implemented"); - } @Override public Iterator<MessageUid> expunge(MessageRange set, MailboxSession mailboxSession) throws MailboxException { throw new UnsupportedOperationException("Not implemented"); - } - @Override public Map<MessageUid, Flags> setFlags(Flags flags, FlagsUpdateMode mode, MessageRange set, MailboxSession mailboxSession) throws MailboxException { throw new UnsupportedOperationException("Not implemented"); - } - public ComposedMessageId appendMessage(InputStream msgIn, Date internalDate, MailboxSession mailboxSession, boolean isRecent, Flags flags) throws MailboxException { throw new UnsupportedOperationException("Not implemented"); - } - public MessageResultIterator getMessages(MessageRange set, FetchGroup fetchGroup, MailboxSession mailboxSession) throws MailboxException { return new MessageResultIterator() { boolean done = false; @@ -225,8 +216,7 @@ public class MailboxEventAnalyserTest { public void remove() { throw new UnsupportedOperationException("Not implemented"); } - - + public MessageResult next() { done = true; return new MessageResult() { @@ -253,98 +243,73 @@ public class MailboxEventAnalyserTest { public long getModSeq() { return 0; } - public Flags getFlags() { return new Flags(); } - public long getSize() { return 0; } - public Date getInternalDate() { throw new UnsupportedOperationException("Not implemented"); - } - public MimeDescriptor getMimeDescriptor() throws MailboxException { throw new UnsupportedOperationException("Not implemented"); } - public Iterator<Header> iterateHeaders(MimePath path) throws MailboxException { throw new UnsupportedOperationException("Not implemented"); - } - public Iterator<Header> iterateMimeHeaders(MimePath path) throws MailboxException { throw new UnsupportedOperationException("Not implemented"); } - public Content getFullContent() throws MailboxException, IOException { throw new UnsupportedOperationException("Not implemented"); - } - public Content getFullContent(MimePath path) throws MailboxException { throw new UnsupportedOperationException("Not implemented"); - } - public Content getBody() throws MailboxException, IOException { throw new UnsupportedOperationException("Not implemented"); - } - public Content getBody(MimePath path) throws MailboxException { throw new UnsupportedOperationException("Not implemented"); - } - public Content getMimeBody(MimePath path) throws MailboxException { throw new UnsupportedOperationException("Not implemented"); - } - public Headers getHeaders() throws MailboxException { throw new UnsupportedOperationException("Not implemented"); - } public List<MessageAttachment> getAttachments() { throw new UnsupportedOperationException("Not implemented"); } - }; } - public boolean hasNext() { return !done; } - - + public MailboxException getException() { return null; } }; } - public MetaData getMetaData(boolean resetRecent, MailboxSession mailboxSession, org.apache.james.mailbox.MessageManager.MetaData.FetchGroup fetchGroup) throws MailboxException { throw new UnsupportedOperationException("Not implemented"); - } public MailboxId getId() { @@ -364,36 +329,29 @@ public class MailboxEventAnalyserTest { public char getDelimiter() { return '.'; } - - + public void deleteMailbox(MailboxPath mailboxPath, MailboxSession session) throws MailboxException { throw new UnsupportedOperationException("Not implemented"); - } - - public MailboxSession createSystemSession(String userName, Logger log) throws BadCredentialsException, MailboxException { + public MailboxSession createSystemSession(String userName, Logger log) throws MailboxException { throw new UnsupportedOperationException("Not implemented"); } - public void createMailbox(MailboxPath mailboxPath, MailboxSession mailboxSession) throws MailboxException { throw new UnsupportedOperationException("Not implemented"); - } - public List<MessageRange> copyMessages(MessageRange set, MailboxPath from, MailboxPath to, MailboxSession session) throws MailboxException { throw new UnsupportedOperationException("Not implemented"); } public java.util.List<MessageRange> copyMessages(MessageRange set, MailboxId from, MailboxId to, MailboxSession session) throws MailboxException { throw new UnsupportedOperationException("Not implemented"); - }; + } public List<MessageRange> moveMessages(MessageRange set, MailboxPath from, MailboxPath to, MailboxSession session) throws MailboxException { throw new UnsupportedOperationException("Not implemented"); - } public boolean hasRight(MailboxPath mailboxPath, MailboxACLRight mailboxACLRight, MailboxSession mailboxSession) throws MailboxException { @@ -619,7 +577,7 @@ public class MailboxEventAnalyserTest { SelectedMailboxImpl analyser = new SelectedMailboxImpl(mockManager, imapsession, mailboxPath); - analyser.event(new FakeMailboxListenerAdded(mSession, Arrays.asList(MessageUid.of(11)), mailboxPath)); + analyser.event(new FakeMailboxListenerAdded(mSession, ImmutableList.of(MessageUid.of(11)), mailboxPath)); assertTrue(analyser.isSizeChanged()); } @@ -631,7 +589,7 @@ public class MailboxEventAnalyserTest { SelectedMailboxImpl analyser = new SelectedMailboxImpl(mockManager, imapsession, mailboxPath); - analyser.event(new FakeMailboxListenerAdded(mSession, Arrays.asList(MessageUid.of(11)), mailboxPath)); + analyser.event(new FakeMailboxListenerAdded(mSession, ImmutableList.of(MessageUid.of(11)), mailboxPath)); analyser.resetEvents(); assertFalse(analyser.isSizeChanged()); } @@ -644,8 +602,15 @@ public class MailboxEventAnalyserTest { SelectedMailboxImpl analyser = new SelectedMailboxImpl(mockManager, imapsession, mailboxPath); - final FakeMailboxListenerFlagsUpdate update = new FakeMailboxListenerFlagsUpdate( - mSession, Arrays.asList(MessageUid.of(90L)), Arrays.asList(new UpdatedFlags(MessageUid.of(90), -1, new Flags(), new Flags())), mailboxPath); + final FakeMailboxListenerFlagsUpdate update = new FakeMailboxListenerFlagsUpdate(mSession, + ImmutableList.of(MessageUid.of(90L)), + ImmutableList.of(UpdatedFlags.builder() + .uid(MessageUid.of(90)) + .modSeq(-1) + .oldFlags(new Flags()) + .newFlags(new Flags()) + .build()), + mailboxPath); analyser.event(update); assertNotNull(analyser.flagUpdateUids()); assertFalse(analyser.flagUpdateUids().iterator().hasNext()); @@ -660,8 +625,15 @@ public class MailboxEventAnalyserTest { SelectedMailboxImpl analyser = new SelectedMailboxImpl(mockManager, imapsession, mailboxPath); - final FakeMailboxListenerFlagsUpdate update = new FakeMailboxListenerFlagsUpdate( - new MyMailboxSession(41), Arrays.asList(uid), Arrays.asList(new UpdatedFlags(uid, -1, new Flags(), new Flags(Flags.Flag.ANSWERED))), mailboxPath); + final FakeMailboxListenerFlagsUpdate update = new FakeMailboxListenerFlagsUpdate(new MyMailboxSession(41), + ImmutableList.of(uid), + ImmutableList.of(UpdatedFlags.builder() + .uid(uid) + .modSeq(-1) + .oldFlags(new Flags()) + .newFlags(new Flags(Flags.Flag.ANSWERED)) + .build()), + mailboxPath); analyser.event(update); final Iterator<MessageUid> iterator = analyser.flagUpdateUids().iterator(); assertNotNull(iterator); @@ -677,8 +649,15 @@ public class MailboxEventAnalyserTest { MyImapSession imapsession = new MyImapSession(mSession); SelectedMailboxImpl analyser = new SelectedMailboxImpl(mockManager, imapsession, mailboxPath); - final FakeMailboxListenerFlagsUpdate update = new FakeMailboxListenerFlagsUpdate( - mSession, Arrays.asList(uid), Arrays.asList(new UpdatedFlags(uid, -1, new Flags(), new Flags(Flags.Flag.ANSWERED))), mailboxPath); + final FakeMailboxListenerFlagsUpdate update = new FakeMailboxListenerFlagsUpdate(mSession, + ImmutableList.of(uid), + ImmutableList.of(UpdatedFlags.builder() + .uid(uid) + .modSeq(-1) + .oldFlags(new Flags()) + .newFlags(new Flags(Flags.Flag.ANSWERED)) + .build()), + mailboxPath); analyser.event(update); analyser.event(update); analyser.deselect(); @@ -695,8 +674,15 @@ public class MailboxEventAnalyserTest { MyImapSession imapsession = new MyImapSession(mSession); SelectedMailboxImpl analyser = new SelectedMailboxImpl(mockManager, imapsession, mailboxPath); - final FakeMailboxListenerFlagsUpdate update = new FakeMailboxListenerFlagsUpdate( - new MyMailboxSession(BASE_SESSION_ID), Arrays.asList(uid), Arrays.asList(new UpdatedFlags(uid, -1, new Flags(), new Flags(Flags.Flag.ANSWERED))), mailboxPath); + final FakeMailboxListenerFlagsUpdate update = new FakeMailboxListenerFlagsUpdate(new MyMailboxSession(BASE_SESSION_ID), + ImmutableList.of(uid), + ImmutableList.of(UpdatedFlags.builder() + .uid(uid) + .modSeq(-1) + .oldFlags(new Flags()) + .newFlags(new Flags(Flags.Flag.ANSWERED)) + .build()), + mailboxPath); analyser.event(update); analyser.setSilentFlagChanges(true); analyser.event(update); @@ -715,8 +701,15 @@ public class MailboxEventAnalyserTest { SelectedMailboxImpl analyser = new SelectedMailboxImpl(mockManager, imapsession, mailboxPath); - final FakeMailboxListenerFlagsUpdate update = new FakeMailboxListenerFlagsUpdate( - mSession, Arrays.asList(MessageUid.of(345)), Arrays.asList(new UpdatedFlags(MessageUid.of(345), -1, new Flags(), new Flags())), mailboxPath); + final FakeMailboxListenerFlagsUpdate update = new FakeMailboxListenerFlagsUpdate(mSession, + ImmutableList.of(MessageUid.of(345)), + ImmutableList.of(UpdatedFlags.builder() + .uid(MessageUid.of(345)) + .modSeq(-1) + .oldFlags(new Flags()) + .newFlags(new Flags()) + .build()), + mailboxPath); analyser.event(update); analyser.setSilentFlagChanges(true); analyser.event(update); @@ -730,20 +723,20 @@ public class MailboxEventAnalyserTest { MyMailboxSession mSession = new MyMailboxSession(BASE_SESSION_ID); MyImapSession imapsession = new MyImapSession(mSession); SelectedMailboxImpl analyser = new SelectedMailboxImpl(mockManager, imapsession, mailboxPath); - - - final FakeMailboxListenerFlagsUpdate update = new FakeMailboxListenerFlagsUpdate( - mSession, Arrays.asList(MessageUid.of(886)), Arrays.asList(new UpdatedFlags(MessageUid.of(886), -1, new Flags(), new Flags(Flags.Flag.RECENT))), mailboxPath); + + + final FakeMailboxListenerFlagsUpdate update = new FakeMailboxListenerFlagsUpdate(mSession, + ImmutableList.of(MessageUid.of(886)), + ImmutableList.of(UpdatedFlags.builder() + .uid(MessageUid.of(886)) + .modSeq(-1) + .oldFlags(new Flags()) + .newFlags(new Flags(Flags.Flag.RECENT)) + .build()), + mailboxPath); analyser.event(update); final Iterator<MessageUid> iterator = analyser.flagUpdateUids().iterator(); assertNotNull(iterator); assertFalse(iterator.hasNext()); } - - /** - * @see org.apache.james.mailbox.MessageManager#myRights(org.apache.james.mailbox.MailboxSession) - */ - public MailboxACLRights myRights(MailboxSession session) throws MailboxException { - return null; - } } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
