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 94ebf32ca71f562e2a43336425e7bd3506edaeb8 Author: Tran Tien Duc <[email protected]> AuthorDate: Wed Aug 21 11:35:00 2019 +0700 JAMES-2864 equals % hashCode overriding --- server/mailet/mock-smtp-server/pom.xml | 5 ++++ .../apache/james/mock/smtp/server/Condition.java | 18 ++++++++++++ .../james/mock/smtp/server/MockSMTPBehavior.java | 34 ++++++++++++++++++++++ .../apache/james/mock/smtp/server/Response.java | 34 ++++++++++++++++++++++ .../james/mock/smtp/server/ConditionTest.java | 8 +++++ .../mock/smtp/server/MockSMTPBehaviorTest.java | 14 +++++++++ .../james/mock/smtp/server/ResponseTest.java | 14 +++++++++ 7 files changed, 127 insertions(+) diff --git a/server/mailet/mock-smtp-server/pom.xml b/server/mailet/mock-smtp-server/pom.xml index 78ec7c1..a66b34f 100644 --- a/server/mailet/mock-smtp-server/pom.xml +++ b/server/mailet/mock-smtp-server/pom.xml @@ -42,6 +42,11 @@ <artifactId>guava</artifactId> </dependency> <dependency> + <groupId>nl.jqno.equalsverifier</groupId> + <artifactId>equalsverifier</artifactId> + <scope>test</scope> + </dependency> + <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <scope>test</scope> 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 92c95cb..4700ac3 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 @@ -19,6 +19,8 @@ package org.apache.james.mock.smtp.server; +import java.util.Objects; + import com.google.common.base.Preconditions; class Condition { @@ -36,4 +38,20 @@ class Condition { boolean matches(String line) { return operator.matches(line, matchingValue); } + + @Override + public final boolean equals(Object o) { + if (o instanceof Condition) { + Condition condition = (Condition) o; + + return Objects.equals(this.operator, condition.operator) + && Objects.equals(this.matchingValue, condition.matchingValue); + } + return false; + } + + @Override + public final int hashCode() { + return Objects.hash(operator, matchingValue); + } } diff --git a/server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/MockSMTPBehavior.java b/server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/MockSMTPBehavior.java index 5d1d7b4..371b2ea 100644 --- a/server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/MockSMTPBehavior.java +++ b/server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/MockSMTPBehavior.java @@ -19,6 +19,7 @@ package org.apache.james.mock.smtp.server; +import java.util.Objects; import java.util.Optional; import com.google.common.base.Preconditions; @@ -44,6 +45,21 @@ public class MockSMTPBehavior { public Optional<Integer> getNumberOfAnswers() { return numberOfAnswers; } + + @Override + public final boolean equals(Object o) { + if (o instanceof NumberOfAnswersPolicy) { + NumberOfAnswersPolicy that = (NumberOfAnswersPolicy) o; + + return Objects.equals(this.numberOfAnswers, that.numberOfAnswers); + } + return false; + } + + @Override + public final int hashCode() { + return Objects.hash(numberOfAnswers); + } } private final SMTPCommand smtpCommand; @@ -78,4 +94,22 @@ public class MockSMTPBehavior { public NumberOfAnswersPolicy getNumberOfAnswers() { return numberOfAnswers; } + + @Override + public final boolean equals(Object o) { + if (o instanceof MockSMTPBehavior) { + MockSMTPBehavior that = (MockSMTPBehavior) o; + + return Objects.equals(this.smtpCommand, that.smtpCommand) + && Objects.equals(this.condition, that.condition) + && Objects.equals(this.response, that.response) + && Objects.equals(this.numberOfAnswers, that.numberOfAnswers); + } + return false; + } + + @Override + public final int hashCode() { + return Objects.hash(smtpCommand, condition, response, numberOfAnswers); + } } diff --git a/server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/Response.java b/server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/Response.java index c82e699..3156394 100644 --- a/server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/Response.java +++ b/server/mailet/mock-smtp-server/src/main/java/org/apache/james/mock/smtp/server/Response.java @@ -19,6 +19,8 @@ package org.apache.james.mock.smtp.server; +import java.util.Objects; + import com.google.common.base.Preconditions; class Response { @@ -38,6 +40,21 @@ class Response { public int getCode() { return code; } + + @Override + public final boolean equals(Object o) { + if (o instanceof SMTPStatusCode) { + SMTPStatusCode that = (SMTPStatusCode) o; + + return Objects.equals(this.code, that.code); + } + return false; + } + + @Override + public final int hashCode() { + return Objects.hash(code); + } } public static Response serverReject(SMTPStatusCode code, String message) { @@ -68,4 +85,21 @@ class Response { boolean isServerRejected() { return serverRejected; } + + @Override + public final boolean equals(Object o) { + if (o instanceof Response) { + Response response = (Response) o; + + return Objects.equals(this.serverRejected, response.serverRejected) + && Objects.equals(this.code, response.code) + && Objects.equals(this.message, response.message); + } + return false; + } + + @Override + public final int hashCode() { + return Objects.hash(code, message, serverRejected); + } } diff --git a/server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/ConditionTest.java b/server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/ConditionTest.java index ac400d9..dff65dc 100644 --- a/server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/ConditionTest.java +++ b/server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/ConditionTest.java @@ -24,8 +24,16 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy; import org.junit.jupiter.api.Test; +import nl.jqno.equalsverifier.EqualsVerifier; + class ConditionTest { @Test + void shouldMatchBeanContract() { + EqualsVerifier.forClass(Condition.class) + .verify(); + } + + @Test void constructorShouldThrowWhenNullOperator() { assertThatThrownBy(() -> new Condition(null, "matchingValue")) .isInstanceOf(NullPointerException.class); diff --git a/server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/MockSMTPBehaviorTest.java b/server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/MockSMTPBehaviorTest.java index 5fbeb51..68c3e27 100644 --- a/server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/MockSMTPBehaviorTest.java +++ b/server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/MockSMTPBehaviorTest.java @@ -27,12 +27,20 @@ import java.util.Optional; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; +import nl.jqno.equalsverifier.EqualsVerifier; + class MockSMTPBehaviorTest { private static final Response RESPONSE = Response.serverAccept(Response.SMTPStatusCode.of(250), "message"); @Nested class NumberOfAnswersPolicyTest { @Test + void shouldMatchBeanContract() { + EqualsVerifier.forClass(MockSMTPBehavior.NumberOfAnswersPolicy.class) + .verify(); + } + + @Test void timesShouldThrowWhenNegativeValue() { assertThatThrownBy(() -> MockSMTPBehavior.NumberOfAnswersPolicy.times(-1)) .isInstanceOf(IllegalArgumentException.class); @@ -58,6 +66,12 @@ class MockSMTPBehaviorTest { } @Test + void shouldMatchBeanContract() { + EqualsVerifier.forClass(MockSMTPBehavior.class) + .verify(); + } + + @Test void constructorShouldThrowWhenCommandIsNull() { assertThatThrownBy(() -> new MockSMTPBehavior(null, Optional.empty(), RESPONSE, MockSMTPBehavior.NumberOfAnswersPolicy.anytime())) .isInstanceOf(NullPointerException.class); diff --git a/server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/ResponseTest.java b/server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/ResponseTest.java index 21d07d7..512f2b3 100644 --- a/server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/ResponseTest.java +++ b/server/mailet/mock-smtp-server/src/test/java/org/apache/james/mock/smtp/server/ResponseTest.java @@ -25,6 +25,8 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; +import nl.jqno.equalsverifier.EqualsVerifier; + class ResponseTest { static final int OK_250_CODE = 250; static final Response.SMTPStatusCode OK_250 = Response.SMTPStatusCode.of(OK_250_CODE); @@ -32,6 +34,12 @@ class ResponseTest { @Nested class SMTPStatusCodeTest { @Test + void shouldMatchBeanContract() { + EqualsVerifier.forClass(Response.SMTPStatusCode.class) + .verify(); + } + + @Test void constructorShouldThrowWhenStatusCodeIsNegative() { assertThatThrownBy(() -> Response.SMTPStatusCode.of(-1)) .isInstanceOf(IllegalArgumentException.class); @@ -63,6 +71,12 @@ class ResponseTest { } @Test + void shouldMatchBeanContract() { + EqualsVerifier.forClass(Response.class) + .verify(); + } + + @Test void constructorShouldThrowWhenMessageIsNull() { assertThatThrownBy(() -> Response.serverReject(OK_250, null)) .isInstanceOf(NullPointerException.class); --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
