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

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

commit be8a19e2bd42bcfede9974332476eb96b2694f85
Author: Tran Tien Duc <[email protected]>
AuthorDate: Thu Aug 22 15:10:07 2019 +0700

    JAMES-2864 Fluent Operators
---
 .../apache/james/mock/smtp/server/Condition.java   |  4 +-
 .../apache/james/mock/smtp/server/Operator.java    | 15 +++++-
 .../james/mock/smtp/server/OperatorTest.java       | 63 ++++++++++++++++------
 3 files changed, 62 insertions(+), 20 deletions(-)

diff --git 
a/server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/Condition.java
 
b/server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/Condition.java
index 4700ac3..2fde09a 100644
--- 
a/server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/Condition.java
+++ 
b/server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/Condition.java
@@ -36,7 +36,9 @@ class Condition {
     }
 
     boolean matches(String line) {
-        return operator.matches(line, matchingValue);
+        return operator.actual(line)
+            .expected(matchingValue)
+            .matches();
     }
 
     @Override
diff --git 
a/server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/Operator.java
 
b/server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/Operator.java
index fa81b3f..992343f 100644
--- 
a/server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/Operator.java
+++ 
b/server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/Operator.java
@@ -20,7 +20,18 @@
 package org.apache.james.mock.smtp.server;
 
 public interface Operator {
-    Operator CONTAINS = String::contains;
 
-    boolean matches(String testedValue, String referenceValue);
+    @FunctionalInterface
+    interface Expected {
+        Matcher expected(String expected);
+    }
+
+    @FunctionalInterface
+    interface Matcher {
+        boolean matches();
+    }
+
+    Operator CONTAINS = actual -> expected -> () -> actual.contains(expected);
+
+    Expected actual(String actual);
 }
diff --git 
a/server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/OperatorTest.java
 
b/server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/OperatorTest.java
index aa6421a..bd2eedd 100644
--- 
a/server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/OperatorTest.java
+++ 
b/server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/OperatorTest.java
@@ -30,62 +30,91 @@ class OperatorTest {
     @Nested
     class ContainsTest {
         @Test
-        void containsShouldReturnTrueWhenTestedValueContainsReferenceValue() {
-            assertThat(Operator.CONTAINS.matches("this contains matchme 
string", "matchme"))
+        void containsShouldReturnTrueWhenActualContainsExpected() {
+            assertThat(Operator.CONTAINS
+                    .actual("this contains matchme string")
+                    .expected("matchme")
+                    .matches())
                 .isTrue();
         }
 
         @Test
         void containsShouldReturnTrueWhenBothValuesAreEqual() {
-            assertThat(Operator.CONTAINS.matches("matchme", "matchme"))
+            assertThat(Operator.CONTAINS
+                    .actual("matchme")
+                    .expected("matchme")
+                    .matches())
                 .isTrue();
         }
 
         @Test
-        void 
containsShouldReturnFalseWhenTestedValueDoesNotContainReferenceValue() {
-            assertThat(Operator.CONTAINS.matches("this contains an other 
string", "matchme"))
+        void containsShouldReturnFalseWhenActualDoesNotContainExpected() {
+            assertThat(Operator.CONTAINS
+                    .actual("this contains an other string")
+                    .expected("matchme")
+                    .matches())
                 .isFalse();
         }
 
         @Test
-        void containsShouldReturnFalseWhenReferenceValueContainsTestedValue() {
-            assertThat(Operator.CONTAINS.matches("matchme", "this contains 
matchme"))
+        void containsShouldReturnFalseWhenExpectedContainsActual() {
+            assertThat(Operator.CONTAINS
+                    .actual("matchme")
+                    .expected("this contains matchme")
+                    .matches())
                 .isFalse();
         }
 
         @Test
         void containsShouldBeCaseSensitive() {
-            assertThat(Operator.CONTAINS.matches("this contains matchme 
string", "Matchme"))
+            assertThat(Operator.CONTAINS.actual("this contains matchme string")
+                    .expected("Matchme")
+                    .matches())
                 .isFalse();
         }
 
         @Test
-        void containsShouldThrowOnNullTestedValue() {
-            assertThatThrownBy(() -> Operator.CONTAINS.matches(null, 
"matchme"))
+        void containsShouldThrowOnNullActual() {
+            assertThatThrownBy(() -> Operator.CONTAINS
+                    .actual(null)
+                    .expected("matchme")
+                    .matches())
                 .isInstanceOf(NullPointerException.class);
         }
 
         @Test
-        void containsShouldThrowOnNullReferenceValue() {
-            assertThatThrownBy(() -> Operator.CONTAINS.matches("this contains 
matchme string", null))
+        void containsShouldThrowOnNullExpected() {
+            assertThatThrownBy(() -> Operator.CONTAINS
+                    .actual("this contains matchme string")
+                    .expected(null)
+                    .matches())
                 .isInstanceOf(NullPointerException.class);
         }
 
         @Test
-        void containsShouldReturnTrueWhenReferenceValueIsEmpty() {
-            assertThat(Operator.CONTAINS.matches("this contains matchme 
string", ""))
+        void containsShouldReturnTrueWhenExpectedIsEmpty() {
+            assertThat(Operator.CONTAINS
+                    .actual("this contains matchme string")
+                    .expected("")
+                    .matches())
                 .isTrue();
         }
 
         @Test
-        void containsShouldReturnFalseWhenTestedValueIsEmpty() {
-            assertThat(Operator.CONTAINS.matches("", "matchme"))
+        void containsShouldReturnFalseWhenActualIsEmpty() {
+            assertThat(Operator.CONTAINS
+                    .actual("")
+                    .expected("matchme")
+                    .matches())
                 .isFalse();
         }
 
         @Test
         void containsShouldReturnTrueWhenBothValuesAreEmpty() {
-            assertThat(Operator.CONTAINS.matches("", ""))
+            assertThat(Operator.CONTAINS
+                    .actual("")
+                    .expected("")
+                    .matches())
                 .isTrue();
         }
     }


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

Reply via email to