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