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