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]
