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 bt...@apache.org on 2019/08/26 11:38:30 UTC

[james-project] 07/11: JAMES-2864 equals % hashCode overriding

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 <dt...@linagora.com>
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: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org