JAMES-2285 MailSpoolTest should rely on MemoryMailQueue

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

Branch: refs/heads/master
Commit: 92da741851771b0e535295af335977f4b78e7a6c
Parents: ad7e51d
Author: benwa <[email protected]>
Authored: Thu Jan 11 14:30:17 2018 +0700
Committer: benwa <[email protected]>
Committed: Thu Jan 18 09:48:49 2018 +0700

----------------------------------------------------------------------
 server/protocols/jmap/pom.xml                   |  5 ++
 .../apache/james/jmap/send/MailSpoolTest.java   | 76 +++++++-------------
 2 files changed, 31 insertions(+), 50 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/92da7418/server/protocols/jmap/pom.xml
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/pom.xml b/server/protocols/jmap/pom.xml
index d51f2ba..7ac74f2 100644
--- a/server/protocols/jmap/pom.xml
+++ b/server/protocols/jmap/pom.xml
@@ -121,6 +121,11 @@
         </dependency>
         <dependency>
             <groupId>${project.groupId}</groupId>
+            <artifactId>james-server-queue-memory</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
             <artifactId>james-server-util</artifactId>
         </dependency>
         <dependency>

http://git-wip-us.apache.org/repos/asf/james-project/blob/92da7418/server/protocols/jmap/src/test/java/org/apache/james/jmap/send/MailSpoolTest.java
----------------------------------------------------------------------
diff --git 
a/server/protocols/jmap/src/test/java/org/apache/james/jmap/send/MailSpoolTest.java
 
b/server/protocols/jmap/src/test/java/org/apache/james/jmap/send/MailSpoolTest.java
index 69b25d9..3bc50b0 100644
--- 
a/server/protocols/jmap/src/test/java/org/apache/james/jmap/send/MailSpoolTest.java
+++ 
b/server/protocols/jmap/src/test/java/org/apache/james/jmap/send/MailSpoolTest.java
@@ -21,80 +21,56 @@ package org.apache.james.jmap.send;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
-import java.util.concurrent.ConcurrentLinkedQueue;
-import java.util.concurrent.TimeUnit;
-
 import org.apache.james.mailbox.model.TestMessageId;
 import org.apache.james.queue.api.MailQueue;
-import org.apache.james.queue.api.MailQueue.MailQueueException;
 import org.apache.james.queue.api.MailQueue.MailQueueItem;
-import org.apache.mailet.Mail;
+import org.apache.james.queue.api.MailQueueFactory;
+import org.apache.james.queue.api.RawMailQueueItemDecoratorFactory;
+import org.apache.james.queue.memory.MemoryMailQueueFactory;
 import org.apache.mailet.base.test.FakeMail;
 import org.junit.Before;
 import org.junit.Test;
 
 public class MailSpoolTest {
+    private static final String USERNAME = "user";
+    private static final TestMessageId MESSAGE_ID = TestMessageId.of(1);
+    private static final String NAME = "Name";
 
     private MailSpool mailSpool;
     private MailQueue myQueue;
 
     @Before
     public void setup() {
-        myQueue = new MyQueue();
+        myQueue = new 
MemoryMailQueueFactory.MemoryMailQueue(MailQueueFactory.SPOOL, new 
RawMailQueueItemDecoratorFactory());
 
         mailSpool = new MailSpool(name -> myQueue);
     }
 
     @Test
     public void sendShouldEnQueueTheMail() throws Exception {
-        FakeMail mail = FakeMail.defaultFakeMail();
+        FakeMail mail = FakeMail.builder()
+            .name(NAME)
+            .build();
 
-        mailSpool.send(mail, new MailMetadata(TestMessageId.of(1), "user"));
+        mailSpool.send(mail, new MailMetadata(MESSAGE_ID, USERNAME));
 
-        assertThat(myQueue.deQueue())
-            .isNotNull()
-            .extracting(MailQueueItem::getMail)
-            .containsExactly(mail);
+        MailQueueItem actual = myQueue.deQueue();
+        assertThat(actual.getMail().getName()).isEqualTo(NAME);
     }
 
-    private static class MyQueue implements MailQueue {
-
-        private ConcurrentLinkedQueue<Mail> queue;
-
-        public MyQueue() {
-            queue = new ConcurrentLinkedQueue<>();
-        }
-
-        @Override
-        public void enQueue(Mail mail) throws MailQueueException {
-            queue.add(mail);
-        }
-
-        @Override
-        public void enQueue(Mail mail, long delay, TimeUnit unit) throws 
MailQueueException {
-        }
-
-        @Override
-        public MailQueueItem deQueue() throws MailQueueException {
-            return new MyMailQueueItem(queue.poll());
-        }
+    @Test
+    public void sendShouldPositionJMAPRelatedMetadata() throws Exception {
+        FakeMail mail = FakeMail.builder()
+            .name(NAME)
+            .build();
+
+        mailSpool.send(mail, new MailMetadata(MESSAGE_ID, USERNAME));
+
+        MailQueueItem actual = myQueue.deQueue();
+        
assertThat(actual.getMail().getAttribute(MailMetadata.MAIL_METADATA_USERNAME_ATTRIBUTE))
+            .isEqualTo(USERNAME);
+        
assertThat(actual.getMail().getAttribute(MailMetadata.MAIL_METADATA_MESSAGE_ID_ATTRIBUTE))
+            .isEqualTo(MESSAGE_ID.serialize());
     }
 
-    private static class MyMailQueueItem implements MailQueueItem {
-
-        private final Mail mail;
-
-        public MyMailQueueItem(Mail mail) {
-            this.mail = mail;
-        }
-
-        @Override
-        public Mail getMail() {
-            return mail;
-        }
-
-        @Override
-        public void done(boolean success) throws MailQueueException {
-        }
-    }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to