You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2018/12/18 08:00:56 UTC

[13/13] james-project git commit: MAILBOX-363 MessageMoveEvent can now be in `mailbox/api`

MAILBOX-363 MessageMoveEvent can now be in `mailbox/api`


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/d04e6550
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/d04e6550
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/d04e6550

Branch: refs/heads/master
Commit: d04e655063ac3a2b2dce13ebdab8dd8e145d5a61
Parents: 9cf3186
Author: Benoit Tellier <bt...@linagora.com>
Authored: Mon Dec 17 09:10:37 2018 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Tue Dec 18 14:49:59 2018 +0700

----------------------------------------------------------------------
 .../apache/james/mailbox/MessageMoveEvent.java  | 117 ++++++++++++++
 .../james/mailbox/MessageMoveEventTest.java     | 157 +++++++++++++++++++
 .../spamassassin/SpamAssassinListener.java      |   2 +-
 .../spamassassin/SpamAssassinListenerTest.java  |   2 +-
 .../james/mailbox/store/event/EventFactory.java |   1 +
 .../store/event/MailboxEventDispatcher.java     |   1 +
 .../mailbox/store/event/MessageMoveEvent.java   | 119 --------------
 .../store/event/MessageMoveEventTest.java       | 157 -------------------
 8 files changed, 278 insertions(+), 278 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/d04e6550/mailbox/api/src/main/java/org/apache/james/mailbox/MessageMoveEvent.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/MessageMoveEvent.java b/mailbox/api/src/main/java/org/apache/james/mailbox/MessageMoveEvent.java
new file mode 100644
index 0000000..226ae47
--- /dev/null
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/MessageMoveEvent.java
@@ -0,0 +1,117 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+package org.apache.james.mailbox;
+
+import java.util.Collection;
+
+import org.apache.james.core.User;
+import org.apache.james.mailbox.model.MailboxId;
+import org.apache.james.mailbox.model.MessageId;
+import org.apache.james.mailbox.model.MessageMoves;
+
+import com.google.common.annotations.VisibleForTesting;
+import com.google.common.base.Preconditions;
+import com.google.common.collect.ImmutableList;
+
+public class MessageMoveEvent implements Event {
+
+    public static Builder builder() {
+        return new Builder();
+    }
+
+    public static class Builder {
+        private ImmutableList.Builder<MessageId> messageIds;
+        private User user;
+        private MessageMoves messageMoves;
+
+        private Builder() {
+            messageIds = ImmutableList.builder();
+        }
+
+        public Builder session(MailboxSession session) {
+            this.user = session.getUser();
+            return this;
+        }
+
+        public Builder user(User user) {
+            this.user = user;
+            return this;
+        }
+
+        public Builder messageMoves(MessageMoves messageMoves) {
+            this.messageMoves = messageMoves;
+            return this;
+        }
+
+        public Builder messageId(MessageId messageId) {
+            this.messageIds.add(messageId);
+            return this;
+        }
+
+        public Builder messageId(Collection<MessageId> messageIds) {
+            this.messageIds.addAll(messageIds);
+            return this;
+        }
+
+        public MessageMoveEvent build() {
+            Preconditions.checkNotNull(user, "'user' is mandatory");
+            Preconditions.checkNotNull(messageMoves, "'messageMoves' is mandatory");
+
+            return new MessageMoveEvent(user, messageMoves, messageIds.build());
+        }
+    }
+
+    private final User user;
+    private final MessageMoves messageMoves;
+    private final Collection<MessageId> messageIds;
+
+    @VisibleForTesting
+    MessageMoveEvent(User user, MessageMoves messageMoves, Collection<MessageId> messageIds) {
+        this.user = user;
+        this.messageMoves = messageMoves;
+        this.messageIds = messageIds;
+    }
+
+    public boolean isNoop() {
+        return messageIds.isEmpty();
+    }
+
+    public Collection<MessageId> getMessageIds() {
+        return messageIds;
+    }
+
+    @Override
+    public User getUser() {
+        return user;
+    }
+
+    public MessageMoves getMessageMoves() {
+        return messageMoves;
+    }
+
+    public boolean isMoveTo(MailboxId mailboxId) {
+        return messageMoves.addedMailboxIds()
+                .contains(mailboxId);
+    }
+
+    public boolean isMoveFrom(MailboxId mailboxId) {
+        return messageMoves.removedMailboxIds()
+                .contains(mailboxId);
+    }
+}

http://git-wip-us.apache.org/repos/asf/james-project/blob/d04e6550/mailbox/api/src/test/java/org/apache/james/mailbox/MessageMoveEventTest.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/MessageMoveEventTest.java b/mailbox/api/src/test/java/org/apache/james/mailbox/MessageMoveEventTest.java
new file mode 100644
index 0000000..1d217ee
--- /dev/null
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/MessageMoveEventTest.java
@@ -0,0 +1,157 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+package org.apache.james.mailbox;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
+
+import org.apache.james.core.User;
+import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MailboxSessionUtil;
+import org.apache.james.mailbox.model.MessageMoves;
+import org.apache.james.mailbox.model.TestId;
+import org.apache.james.mailbox.model.TestMessageId;
+import org.assertj.core.api.JUnitSoftAssertions;
+import org.junit.Rule;
+import org.junit.Test;
+
+public class MessageMoveEventTest {
+
+    @Rule
+    public JUnitSoftAssertions softly = new JUnitSoftAssertions();
+
+    @Test
+    public void builderShouldThrowWhenSessionIsNull() {
+        assertThatThrownBy(() -> MessageMoveEvent.builder()
+                .build())
+            .isInstanceOf(NullPointerException.class);
+    }
+
+    @Test
+    public void builderShouldThrowWhenMessageMovesIsNull() {
+        assertThatThrownBy(() -> MessageMoveEvent.builder()
+                .session(MailboxSessionUtil.create("user@james.org"))
+                .build())
+            .isInstanceOf(NullPointerException.class);
+    }
+
+    @Test
+    public void builderShouldReturnNoopWhenMessagesIsEmpty() {
+        assertThat(MessageMoveEvent.builder()
+                .session(MailboxSessionUtil.create("user@james.org"))
+                .messageMoves(MessageMoves.builder()
+                    .previousMailboxIds(TestId.of(1))
+                    .targetMailboxIds(TestId.of(2))
+                    .build())
+                .build()
+            .isNoop()).isTrue();
+    }
+
+    @Test
+    public void builderShouldNotBeNoopWhenFieldsAreGiven() {
+        MailboxSession session = MailboxSessionUtil.create("user@james.org");
+        MessageMoves messageMoves = MessageMoves.builder()
+            .targetMailboxIds(TestId.of(2))
+            .previousMailboxIds(TestId.of(1))
+            .build();
+
+        MessageMoveEvent event = MessageMoveEvent.builder()
+            .session(session)
+            .messageMoves(messageMoves)
+            .messageId(TestMessageId.of(35))
+            .build();
+
+        assertThat(event.isNoop()).isFalse();
+    }
+
+    @Test
+    public void builderShouldBuildWhenFieldsAreGiven() {
+        String username = "user@james.org";
+        MailboxSession session = MailboxSessionUtil.create(username);
+        MessageMoves messageMoves = MessageMoves.builder()
+            .targetMailboxIds(TestId.of(2))
+            .previousMailboxIds(TestId.of(1))
+            .build();
+
+        TestMessageId messageId = TestMessageId.of(45);
+        MessageMoveEvent event = MessageMoveEvent.builder()
+            .session(session)
+            .messageMoves(messageMoves)
+            .messageId(messageId)
+            .build();
+
+        softly.assertThat(event.getUser()).isEqualTo(User.fromUsername(username));
+        softly.assertThat(event.getMessageMoves()).isEqualTo(messageMoves);
+        softly.assertThat(event.getMessageIds()).containsExactly(messageId);
+    }
+
+    @Test
+    public void isMoveToShouldReturnFalseWhenMailboxIdIsNotInAddedMailboxIds() {
+        MessageMoveEvent event = MessageMoveEvent.builder()
+            .session(MailboxSessionUtil.create("user@james.org"))
+            .messageMoves(MessageMoves.builder()
+                    .previousMailboxIds(TestId.of(1))
+                    .targetMailboxIds(TestId.of(2))
+                    .build())
+            .build();
+
+        assertThat(event.isMoveTo(TestId.of(123))).isFalse();
+    }
+
+    @Test
+    public void isMoveToShouldReturnTrueWhenMailboxIdIsInAddedMailboxIds() {
+        TestId mailboxId = TestId.of(123);
+        MessageMoveEvent event = MessageMoveEvent.builder()
+            .session(MailboxSessionUtil.create("user@james.org"))
+            .messageMoves(MessageMoves.builder()
+                .previousMailboxIds(TestId.of(1))
+                .targetMailboxIds(TestId.of(2), mailboxId)
+                .build())
+            .build();
+
+        assertThat(event.isMoveTo(mailboxId)).isTrue();
+    }
+
+    @Test
+    public void isMoveFromShouldReturnFalseWhenMailboxIdIsNotInRemovedMailboxIds() {
+        MessageMoveEvent event = MessageMoveEvent.builder()
+            .session(MailboxSessionUtil.create("user@james.org"))
+            .messageMoves(MessageMoves.builder()
+                    .previousMailboxIds(TestId.of(1))
+                    .targetMailboxIds(TestId.of(2))
+                    .build())
+            .build();
+
+        assertThat(event.isMoveFrom(TestId.of(123))).isFalse();
+    }
+
+    @Test
+    public void isMoveFromShouldReturnTrueWhenMailboxIdIsInRemovedMailboxIds() {
+        TestId mailboxId = TestId.of(123);
+        MessageMoveEvent event = MessageMoveEvent.builder()
+            .session(MailboxSessionUtil.create("user@james.org"))
+            .messageMoves(MessageMoves.builder()
+                .previousMailboxIds(TestId.of(1), mailboxId)
+                .targetMailboxIds(TestId.of(2))
+                .build())
+            .build();
+
+        assertThat(event.isMoveFrom(mailboxId)).isTrue();
+    }
+}

http://git-wip-us.apache.org/repos/asf/james-project/blob/d04e6550/mailbox/plugin/spamassassin/src/main/java/org/apache/james/mailbox/spamassassin/SpamAssassinListener.java
----------------------------------------------------------------------
diff --git a/mailbox/plugin/spamassassin/src/main/java/org/apache/james/mailbox/spamassassin/SpamAssassinListener.java b/mailbox/plugin/spamassassin/src/main/java/org/apache/james/mailbox/spamassassin/SpamAssassinListener.java
index 56b512c..b6ffcd4 100644
--- a/mailbox/plugin/spamassassin/src/main/java/org/apache/james/mailbox/spamassassin/SpamAssassinListener.java
+++ b/mailbox/plugin/spamassassin/src/main/java/org/apache/james/mailbox/spamassassin/SpamAssassinListener.java
@@ -27,13 +27,13 @@ import javax.inject.Inject;
 import org.apache.james.mailbox.Event;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MessageMoveEvent;
 import org.apache.james.mailbox.Role;
 import org.apache.james.mailbox.SystemMailboxesProvider;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.model.MailboxId;
 import org.apache.james.mailbox.model.MessageRange;
 import org.apache.james.mailbox.store.MailboxSessionMapperFactory;
-import org.apache.james.mailbox.store.event.MessageMoveEvent;
 import org.apache.james.mailbox.store.event.SpamEventListener;
 import org.apache.james.mailbox.store.mail.MessageMapper;
 import org.apache.james.mailbox.store.mail.model.Mailbox;

http://git-wip-us.apache.org/repos/asf/james-project/blob/d04e6550/mailbox/plugin/spamassassin/src/test/java/org/apache/james/mailbox/spamassassin/SpamAssassinListenerTest.java
----------------------------------------------------------------------
diff --git a/mailbox/plugin/spamassassin/src/test/java/org/apache/james/mailbox/spamassassin/SpamAssassinListenerTest.java b/mailbox/plugin/spamassassin/src/test/java/org/apache/james/mailbox/spamassassin/SpamAssassinListenerTest.java
index 13d1516..dba49a6 100644
--- a/mailbox/plugin/spamassassin/src/test/java/org/apache/james/mailbox/spamassassin/SpamAssassinListenerTest.java
+++ b/mailbox/plugin/spamassassin/src/test/java/org/apache/james/mailbox/spamassassin/SpamAssassinListenerTest.java
@@ -36,6 +36,7 @@ import org.apache.james.mailbox.DefaultMailboxes;
 import org.apache.james.mailbox.MailboxListener;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.MailboxSessionUtil;
+import org.apache.james.mailbox.MessageMoveEvent;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
 import org.apache.james.mailbox.exception.MailboxException;
@@ -50,7 +51,6 @@ import org.apache.james.mailbox.store.SimpleMessageMetaData;
 import org.apache.james.mailbox.store.StoreMailboxManager;
 import org.apache.james.mailbox.store.SystemMailboxesProviderImpl;
 import org.apache.james.mailbox.store.event.EventFactory;
-import org.apache.james.mailbox.store.event.MessageMoveEvent;
 import org.apache.james.mailbox.store.mail.MailboxMapper;
 import org.apache.james.mailbox.store.mail.model.Mailbox;
 import org.apache.james.mailbox.store.mail.model.impl.PropertyBuilder;

http://git-wip-us.apache.org/repos/asf/james-project/blob/d04e6550/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/EventFactory.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/EventFactory.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/EventFactory.java
index fca9602..433bf8f 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/EventFactory.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/EventFactory.java
@@ -29,6 +29,7 @@ import org.apache.james.core.quota.QuotaCount;
 import org.apache.james.core.quota.QuotaSize;
 import org.apache.james.mailbox.MailboxListener;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MessageMoveEvent;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.acl.ACLDiff;
 import org.apache.james.mailbox.model.MailboxId;

http://git-wip-us.apache.org/repos/asf/james-project/blob/d04e6550/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxEventDispatcher.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxEventDispatcher.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxEventDispatcher.java
index 4721aa8..1ebe27e 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxEventDispatcher.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxEventDispatcher.java
@@ -33,6 +33,7 @@ import org.apache.james.core.quota.QuotaSize;
 import org.apache.james.mailbox.Event;
 import org.apache.james.mailbox.MailboxListener;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MessageMoveEvent;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.acl.ACLDiff;
 import org.apache.james.mailbox.model.MailboxId;

http://git-wip-us.apache.org/repos/asf/james-project/blob/d04e6550/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MessageMoveEvent.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MessageMoveEvent.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MessageMoveEvent.java
deleted file mode 100644
index 4b73263..0000000
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MessageMoveEvent.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one   *
- * or more contributor license agreements.  See the NOTICE file *
- * distributed with this work for additional information        *
- * regarding copyright ownership.  The ASF licenses this file   *
- * to you under the Apache License, Version 2.0 (the            *
- * "License"); you may not use this file except in compliance   *
- * with the License.  You may obtain a copy of the License at   *
- *                                                              *
- *   http://www.apache.org/licenses/LICENSE-2.0                 *
- *                                                              *
- * Unless required by applicable law or agreed to in writing,   *
- * software distributed under the License is distributed on an  *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
- * KIND, either express or implied.  See the License for the    *
- * specific language governing permissions and limitations      *
- * under the License.                                           *
- ****************************************************************/
-package org.apache.james.mailbox.store.event;
-
-import java.util.Collection;
-
-import org.apache.james.core.User;
-import org.apache.james.mailbox.Event;
-import org.apache.james.mailbox.MailboxSession;
-import org.apache.james.mailbox.model.MailboxId;
-import org.apache.james.mailbox.model.MessageId;
-import org.apache.james.mailbox.model.MessageMoves;
-
-import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Preconditions;
-import com.google.common.collect.ImmutableList;
-
-public class MessageMoveEvent implements Event {
-
-    public static Builder builder() {
-        return new Builder();
-    }
-
-    public static class Builder {
-        private ImmutableList.Builder<MessageId> messageIds;
-        private User user;
-        private MessageMoves messageMoves;
-
-        private Builder() {
-            messageIds = ImmutableList.builder();
-        }
-
-        public Builder session(MailboxSession session) {
-            this.user = session.getUser();
-            return this;
-        }
-
-        public Builder user(User user) {
-            this.user = user;
-            return this;
-        }
-
-        public Builder messageMoves(MessageMoves messageMoves) {
-            this.messageMoves = messageMoves;
-            return this;
-        }
-
-        public Builder messageId(MessageId messageId) {
-            this.messageIds.add(messageId);
-            return this;
-        }
-
-        public Builder messageId(Collection<MessageId> messageIds) {
-            this.messageIds.addAll(messageIds);
-            return this;
-        }
-
-        public MessageMoveEvent build() {
-            Preconditions.checkNotNull(user, "'user' is mandatory");
-            Preconditions.checkNotNull(messageMoves, "'messageMoves' is mandatory");
-
-            return new MessageMoveEvent(user, messageMoves, messageIds.build());
-        }
-    }
-
-    private final User user;
-    private final MessageMoves messageMoves;
-    private final Collection<MessageId> messageIds;
-
-    @VisibleForTesting
-    MessageMoveEvent(User user, MessageMoves messageMoves, Collection<MessageId> messageIds) {
-        this.user = user;
-        this.messageMoves = messageMoves;
-        this.messageIds = messageIds;
-    }
-
-    public boolean isNoop() {
-        return messageIds.isEmpty();
-    }
-
-    public Collection<MessageId> getMessageIds() {
-        return messageIds;
-    }
-
-    @Override
-    public User getUser() {
-        return user;
-    }
-
-    public MessageMoves getMessageMoves() {
-        return messageMoves;
-    }
-
-    public boolean isMoveTo(MailboxId mailboxId) {
-        return messageMoves.addedMailboxIds()
-                .contains(mailboxId);
-    }
-
-    public boolean isMoveFrom(MailboxId mailboxId) {
-        return messageMoves.removedMailboxIds()
-                .contains(mailboxId);
-    }
-}

http://git-wip-us.apache.org/repos/asf/james-project/blob/d04e6550/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/MessageMoveEventTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/MessageMoveEventTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/MessageMoveEventTest.java
deleted file mode 100644
index e2737ed..0000000
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/MessageMoveEventTest.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one   *
- * or more contributor license agreements.  See the NOTICE file *
- * distributed with this work for additional information        *
- * regarding copyright ownership.  The ASF licenses this file   *
- * to you under the Apache License, Version 2.0 (the            *
- * "License"); you may not use this file except in compliance   *
- * with the License.  You may obtain a copy of the License at   *
- *                                                              *
- *   http://www.apache.org/licenses/LICENSE-2.0                 *
- *                                                              *
- * Unless required by applicable law or agreed to in writing,   *
- * software distributed under the License is distributed on an  *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
- * KIND, either express or implied.  See the License for the    *
- * specific language governing permissions and limitations      *
- * under the License.                                           *
- ****************************************************************/
-package org.apache.james.mailbox.store.event;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.assertj.core.api.Assertions.assertThatThrownBy;
-
-import org.apache.james.core.User;
-import org.apache.james.mailbox.MailboxSession;
-import org.apache.james.mailbox.MailboxSessionUtil;
-import org.apache.james.mailbox.model.MessageMoves;
-import org.apache.james.mailbox.model.TestId;
-import org.apache.james.mailbox.model.TestMessageId;
-import org.assertj.core.api.JUnitSoftAssertions;
-import org.junit.Rule;
-import org.junit.Test;
-
-public class MessageMoveEventTest {
-
-    @Rule
-    public JUnitSoftAssertions softly = new JUnitSoftAssertions();
-
-    @Test
-    public void builderShouldThrowWhenSessionIsNull() {
-        assertThatThrownBy(() -> MessageMoveEvent.builder()
-                .build())
-            .isInstanceOf(NullPointerException.class);
-    }
-
-    @Test
-    public void builderShouldThrowWhenMessageMovesIsNull() {
-        assertThatThrownBy(() -> MessageMoveEvent.builder()
-                .session(MailboxSessionUtil.create("user@james.org"))
-                .build())
-            .isInstanceOf(NullPointerException.class);
-    }
-
-    @Test
-    public void builderShouldReturnNoopWhenMessagesIsEmpty() {
-        assertThat(MessageMoveEvent.builder()
-                .session(MailboxSessionUtil.create("user@james.org"))
-                .messageMoves(MessageMoves.builder()
-                    .previousMailboxIds(TestId.of(1))
-                    .targetMailboxIds(TestId.of(2))
-                    .build())
-                .build()
-            .isNoop()).isTrue();
-    }
-
-    @Test
-    public void builderShouldNotBeNoopWhenFieldsAreGiven() {
-        MailboxSession session = MailboxSessionUtil.create("user@james.org");
-        MessageMoves messageMoves = MessageMoves.builder()
-            .targetMailboxIds(TestId.of(2))
-            .previousMailboxIds(TestId.of(1))
-            .build();
-
-        MessageMoveEvent event = MessageMoveEvent.builder()
-            .session(session)
-            .messageMoves(messageMoves)
-            .messageId(TestMessageId.of(35))
-            .build();
-
-        assertThat(event.isNoop()).isFalse();
-    }
-
-    @Test
-    public void builderShouldBuildWhenFieldsAreGiven() {
-        String username = "user@james.org";
-        MailboxSession session = MailboxSessionUtil.create(username);
-        MessageMoves messageMoves = MessageMoves.builder()
-            .targetMailboxIds(TestId.of(2))
-            .previousMailboxIds(TestId.of(1))
-            .build();
-
-        TestMessageId messageId = TestMessageId.of(45);
-        MessageMoveEvent event = MessageMoveEvent.builder()
-            .session(session)
-            .messageMoves(messageMoves)
-            .messageId(messageId)
-            .build();
-
-        softly.assertThat(event.getUser()).isEqualTo(User.fromUsername(username));
-        softly.assertThat(event.getMessageMoves()).isEqualTo(messageMoves);
-        softly.assertThat(event.getMessageIds()).containsExactly(messageId);
-    }
-
-    @Test
-    public void isMoveToShouldReturnFalseWhenMailboxIdIsNotInAddedMailboxIds() {
-        MessageMoveEvent event = MessageMoveEvent.builder()
-            .session(MailboxSessionUtil.create("user@james.org"))
-            .messageMoves(MessageMoves.builder()
-                    .previousMailboxIds(TestId.of(1))
-                    .targetMailboxIds(TestId.of(2))
-                    .build())
-            .build();
-
-        assertThat(event.isMoveTo(TestId.of(123))).isFalse();
-    }
-
-    @Test
-    public void isMoveToShouldReturnTrueWhenMailboxIdIsInAddedMailboxIds() {
-        TestId mailboxId = TestId.of(123);
-        MessageMoveEvent event = MessageMoveEvent.builder()
-            .session(MailboxSessionUtil.create("user@james.org"))
-            .messageMoves(MessageMoves.builder()
-                .previousMailboxIds(TestId.of(1))
-                .targetMailboxIds(TestId.of(2), mailboxId)
-                .build())
-            .build();
-
-        assertThat(event.isMoveTo(mailboxId)).isTrue();
-    }
-
-    @Test
-    public void isMoveFromShouldReturnFalseWhenMailboxIdIsNotInRemovedMailboxIds() {
-        MessageMoveEvent event = MessageMoveEvent.builder()
-            .session(MailboxSessionUtil.create("user@james.org"))
-            .messageMoves(MessageMoves.builder()
-                    .previousMailboxIds(TestId.of(1))
-                    .targetMailboxIds(TestId.of(2))
-                    .build())
-            .build();
-
-        assertThat(event.isMoveFrom(TestId.of(123))).isFalse();
-    }
-
-    @Test
-    public void isMoveFromShouldReturnTrueWhenMailboxIdIsInRemovedMailboxIds() {
-        TestId mailboxId = TestId.of(123);
-        MessageMoveEvent event = MessageMoveEvent.builder()
-            .session(MailboxSessionUtil.create("user@james.org"))
-            .messageMoves(MessageMoves.builder()
-                .previousMailboxIds(TestId.of(1), mailboxId)
-                .targetMailboxIds(TestId.of(2))
-                .build())
-            .build();
-
-        assertThat(event.isMoveFrom(mailboxId)).isTrue();
-    }
-}


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org