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 rc...@apache.org on 2019/12/11 10:28:52 UTC

[james-project] 04/13: [Refactoring] Move MailderMailboxMessageNameTest to JUnit 5

This is an automated email from the ASF dual-hosted git repository.

rcordier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit fea2af330d2ea8f6affa6c986de404111cd55b17
Author: Rene Cordier <rc...@linagora.com>
AuthorDate: Tue Dec 10 17:15:34 2019 +0700

    [Refactoring] Move MailderMailboxMessageNameTest to JUnit 5
---
 mailbox/maildir/pom.xml                            |   5 +
 .../maildir/MailderMailboxMessageNameTest.java     | 167 +++++++++------------
 2 files changed, 74 insertions(+), 98 deletions(-)

diff --git a/mailbox/maildir/pom.xml b/mailbox/maildir/pom.xml
index 282845c..3ea306b 100644
--- a/mailbox/maildir/pom.xml
+++ b/mailbox/maildir/pom.xml
@@ -82,6 +82,11 @@
             <artifactId>commons-lang3</artifactId>
         </dependency>
         <dependency>
+            <groupId>org.junit.jupiter</groupId>
+            <artifactId>junit-jupiter-params</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>org.mockito</groupId>
             <artifactId>mockito-core</artifactId>
             <scope>test</scope>
diff --git a/mailbox/maildir/src/test/java/org/apache/james/mailbox/maildir/MailderMailboxMessageNameTest.java b/mailbox/maildir/src/test/java/org/apache/james/mailbox/maildir/MailderMailboxMessageNameTest.java
index 69e7cd5..7d467e3 100644
--- a/mailbox/maildir/src/test/java/org/apache/james/mailbox/maildir/MailderMailboxMessageNameTest.java
+++ b/mailbox/maildir/src/test/java/org/apache/james/mailbox/maildir/MailderMailboxMessageNameTest.java
@@ -20,96 +20,82 @@ package org.apache.james.mailbox.maildir;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
-import java.util.ArrayList;
-import java.util.List;
+import java.util.stream.Stream;
 
 import javax.mail.Flags;
 
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-@RunWith(value = Parameterized.class)
-public class MailderMailboxMessageNameTest {
-
-    private String validName;
-    private Parts parts;
-
-    public MailderMailboxMessageNameTest(Parts parts) {
-        this.validName = parts.fullName;
-        this.parts = parts;
-    }
-
-    @Parameterized.Parameters
-    public static List<Object[]> testData() {
-        List<Object[]> args = new ArrayList<>();
-        // no size, two flags
-        Parts parts = Parts.fullName("1328026049.19146_0.km1111:2,RS").timeSeconds(1328026049)
-                .baseName("1328026049.19146_0.km1111").flagAnswered().flagSeen();
-        args.add(toObjectArray(parts));
-
-        // size and flag
-        parts = Parts.fullName("1328613172.M569643P1862V0000000000000902I00EE42CE_0.km1111,S=13103:2,S")
-                .timeSeconds(1328613172).size(13103L)
-                .baseName("1328613172.M569643P1862V0000000000000902I00EE42CE_0.km1111").flagSeen();
-        args.add(toObjectArray(parts));
-
-        // size, no flags
-        parts = Parts.fullName("1340124194.M723289P3184V0000000000000902I006780E9_6.km1111,S=1344:2,")
-                .baseName("1340124194.M723289P3184V0000000000000902I006780E9_6.km1111").timeSeconds(1340124194)
-                .size(1344L);
-        args.add(toObjectArray(parts));
-
-        // three flags, no size
-        parts = Parts.fullName("1106685752.12132_0.km1111:2,FRS").baseName("1106685752.12132_0.km1111")
-                .timeSeconds(1106685752).flagFlagged().flagAnswered().flagSeen();
-        args.add(toObjectArray(parts));
-
-        // with dovecot attributes
-        parts = Parts.fullName("1035478339.27041_118.foo.org,S=1000,W=1030:2,S")
-                .baseName("1035478339.27041_118.foo.org").timeSeconds(1035478339).size(1000L).flagSeen();
-        args.add(toObjectArray(parts));
-
-        parts = parts.copy();
-        parts.fullName = "1035478339.27041_118.foo.org,W=1030,S=1000:2,S";
-        args.add(toObjectArray(parts));
-
-        // new mail, no info part at all. found in courier maildirs
-        parts = Parts.fullName("1355543030.15049_0.foo.org").baseName("1355543030.15049_0.foo.org")
-                .timeSeconds(1355543030).noFlags();
-        args.add(toObjectArray(parts));
-
-        // new mail, generated by james
-        parts = Parts.fullName("1356001301.e563087e30181513.foohost,S=629:2,")
-                .baseName("1356001301.e563087e30181513.foohost").timeSeconds(1356001301).size(629L);
-        args.add(toObjectArray(parts));
-
-        parts = Parts.fullName("1355675588.5c7e107958851103.foohost,S=654:2,S").timeSeconds(1355675588)
-                .baseName("1355675588.5c7e107958851103.foohost").size(654L).flagSeen();
-        args.add(toObjectArray(parts));
-
-        parts = Parts.fullName("1355675651.f3dd564265174501.foohost,S=661:2,")
-                .baseName("1355675651.f3dd564265174501.foohost").timeSeconds(1355675651).size(661L);
-        args.add(toObjectArray(parts));
-
-        return args;
-    }
-    
-    private static Object[] toObjectArray(Parts validName) {
-        return new Object[] { validName };
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.MethodSource;
+
+class MailderMailboxMessageNameTest {
+
+    private static Stream<Arguments> testParsing() {
+        return Stream.of(
+                // no size, two flags
+                Parts.fullName("1328026049.19146_0.km1111:2,RS").timeSeconds(1328026049)
+                    .baseName("1328026049.19146_0.km1111")
+                    .flagAnswered()
+                    .flagSeen(),
+                // size and flag
+                Parts.fullName("1328613172.M569643P1862V0000000000000902I00EE42CE_0.km1111,S=13103:2,S")
+                    .timeSeconds(1328613172)
+                    .size(13103L)
+                    .baseName("1328613172.M569643P1862V0000000000000902I00EE42CE_0.km1111")
+                    .flagSeen(),
+                // size, no flags
+                Parts.fullName("1340124194.M723289P3184V0000000000000902I006780E9_6.km1111,S=1344:2,")
+                    .baseName("1340124194.M723289P3184V0000000000000902I006780E9_6.km1111")
+                    .timeSeconds(1340124194)
+                    .size(1344L),
+                // three flags, no size
+                Parts.fullName("1106685752.12132_0.km1111:2,FRS")
+                    .baseName("1106685752.12132_0.km1111")
+                    .timeSeconds(1106685752)
+                    .flagFlagged()
+                    .flagAnswered()
+                    .flagSeen(),
+                // with dovecot attributes
+                Parts.fullName("1035478339.27041_118.foo.org,S=1000,W=1030:2,S")
+                    .baseName("1035478339.27041_118.foo.org")
+                    .timeSeconds(1035478339)
+                    .size(1000L)
+                    .flagSeen(),
+                Parts.fullName("1035478339.27041_118.foo.org,W=1030,S=1000:2,S")
+                    .baseName("1035478339.27041_118.foo.org")
+                    .timeSeconds(1035478339)
+                    .size(1000L)
+                    .flagSeen(),
+                // new mail, no info part at all. found in courier maildirs
+                Parts.fullName("1355543030.15049_0.foo.org")
+                    .baseName("1355543030.15049_0.foo.org")
+                    .timeSeconds(1355543030)
+                    .noFlags(),
+                // new mail, generated by james
+                Parts.fullName("1356001301.e563087e30181513.foohost,S=629:2,")
+                    .baseName("1356001301.e563087e30181513.foohost")
+                    .timeSeconds(1356001301)
+                    .size(629L),
+                Parts.fullName("1355675588.5c7e107958851103.foohost,S=654:2,S")
+                    .timeSeconds(1355675588)
+                    .baseName("1355675588.5c7e107958851103.foohost")
+                    .size(654L)
+                    .flagSeen(),
+                Parts.fullName("1355675651.f3dd564265174501.foohost,S=661:2,")
+                    .baseName("1355675651.f3dd564265174501.foohost")
+                    .timeSeconds(1355675651)
+                    .size(661L))
+            .map(Arguments::of);
     }
 
-    @Test
-    public void testParsing() throws Exception {
-        try {
-            parseValidName(validName, parts);
-        } catch (Throwable e) {
-            throw new Exception("Valid name '" + validName + "' failed.", e);
-        }
+    @ParameterizedTest
+    @MethodSource
+    void testParsing(Parts parts) {
+        parseValidName(parts);
     }
 
-    private void parseValidName(String name, Parts parts) throws Exception {
-        MaildirMessageName mn = new MaildirMessageName(null, name);
+    private void parseValidName(Parts parts) {
+        MaildirMessageName mn = new MaildirMessageName(null, parts.fullName);
         mn.setMessageNameStrictParse(false);
         if (parts.time == null) {
             assertThat(mn.getInternalDate()).describedAs("date").isNull();
@@ -147,11 +133,6 @@ public class MailderMailboxMessageNameTest {
             return this;
         }
 
-        public Parts flagRecent() {
-            this.flags.add(Flags.Flag.RECENT);
-            return this;
-        }
-
         public Parts flagAnswered() {
             this.flags.add(Flags.Flag.ANSWERED);
             return this;
@@ -162,16 +143,6 @@ public class MailderMailboxMessageNameTest {
             return this;
         }
 
-        public Parts flagDeleted() {
-            this.flags.add(Flags.Flag.DELETED);
-            return this;
-        }
-
-        public Parts flagDraft() {
-            this.flags.add(Flags.Flag.DRAFT);
-            return this;
-        }
-
         public Parts baseName(String baseName) {
             this.baseName = baseName;
             return this;


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