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/12/19 05:40:38 UTC
[james-project] 04/08: JAMES-3007 HealthCheck components equals,
hashCode
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 7f0665081ba4e63a3989c37334ee3fad47113970
Author: Tran Tien Duc <dt...@linagora.com>
AuthorDate: Thu Dec 12 15:47:30 2019 +0700
JAMES-3007 HealthCheck components equals, hashCode
---
.../james/core/healthcheck/ComponentName.java | 26 +++++++++++++++++++
.../org/apache/james/core/healthcheck/Result.java | 29 ++++++++++++++++++++++
.../james/core/healthcheck/ComponentNameTest.java} | 17 +++++++------
.../apache/james/core/healthcheck/ResultTest.java | 8 ++++++
4 files changed, 72 insertions(+), 8 deletions(-)
diff --git a/core/src/main/java/org/apache/james/core/healthcheck/ComponentName.java b/core/src/main/java/org/apache/james/core/healthcheck/ComponentName.java
index ecb248a..0707c0e 100644
--- a/core/src/main/java/org/apache/james/core/healthcheck/ComponentName.java
+++ b/core/src/main/java/org/apache/james/core/healthcheck/ComponentName.java
@@ -19,6 +19,10 @@
package org.apache.james.core.healthcheck;
+import java.util.Objects;
+
+import com.google.common.base.MoreObjects;
+
public class ComponentName {
private final String name;
@@ -29,4 +33,26 @@ public class ComponentName {
public String getName() {
return name;
}
+
+ @Override
+ public final boolean equals(Object o) {
+ if (o instanceof ComponentName) {
+ ComponentName that = (ComponentName) o;
+
+ return Objects.equals(this.name, that.name);
+ }
+ return false;
+ }
+
+ @Override
+ public final int hashCode() {
+ return Objects.hash(name);
+ }
+
+ @Override
+ public String toString() {
+ return MoreObjects.toStringHelper(this)
+ .add("name", name)
+ .toString();
+ }
}
diff --git a/core/src/main/java/org/apache/james/core/healthcheck/Result.java b/core/src/main/java/org/apache/james/core/healthcheck/Result.java
index e204069..6345cda 100644
--- a/core/src/main/java/org/apache/james/core/healthcheck/Result.java
+++ b/core/src/main/java/org/apache/james/core/healthcheck/Result.java
@@ -18,8 +18,11 @@
****************************************************************/
package org.apache.james.core.healthcheck;
+import java.util.Objects;
import java.util.Optional;
+import com.google.common.base.MoreObjects;
+
public class Result {
public static Result healthy(ComponentName componentName) {
@@ -67,4 +70,30 @@ public class Result {
public Optional<String> getCause() {
return cause;
}
+
+ @Override
+ public final boolean equals(Object o) {
+ if (o instanceof Result) {
+ Result result = (Result) o;
+
+ return Objects.equals(this.componentName, result.componentName)
+ && Objects.equals(this.status, result.status)
+ && Objects.equals(this.cause, result.cause);
+ }
+ return false;
+ }
+
+ @Override
+ public final int hashCode() {
+ return Objects.hash(componentName, status, cause);
+ }
+
+ @Override
+ public String toString() {
+ return MoreObjects.toStringHelper(this)
+ .add("componentName", componentName)
+ .add("status", status)
+ .add("cause", cause)
+ .toString();
+ }
}
\ No newline at end of file
diff --git a/core/src/main/java/org/apache/james/core/healthcheck/ComponentName.java b/core/src/test/java/org/apache/james/core/healthcheck/ComponentNameTest.java
similarity index 84%
copy from core/src/main/java/org/apache/james/core/healthcheck/ComponentName.java
copy to core/src/test/java/org/apache/james/core/healthcheck/ComponentNameTest.java
index ecb248a..08f708d 100644
--- a/core/src/main/java/org/apache/james/core/healthcheck/ComponentName.java
+++ b/core/src/test/java/org/apache/james/core/healthcheck/ComponentNameTest.java
@@ -19,14 +19,15 @@
package org.apache.james.core.healthcheck;
-public class ComponentName {
- private final String name;
+import org.junit.jupiter.api.Test;
- public ComponentName(String name) {
- this.name = name;
- }
+import nl.jqno.equalsverifier.EqualsVerifier;
+
+class ComponentNameTest {
- public String getName() {
- return name;
+ @Test
+ void shouldMatchBeanContract() {
+ EqualsVerifier.forClass(ComponentName.class)
+ .verify();
}
-}
+}
\ No newline at end of file
diff --git a/core/src/test/java/org/apache/james/core/healthcheck/ResultTest.java b/core/src/test/java/org/apache/james/core/healthcheck/ResultTest.java
index e2e96fe..e504ccd 100644
--- a/core/src/test/java/org/apache/james/core/healthcheck/ResultTest.java
+++ b/core/src/test/java/org/apache/james/core/healthcheck/ResultTest.java
@@ -23,11 +23,19 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy;
import org.junit.jupiter.api.Test;
+import nl.jqno.equalsverifier.EqualsVerifier;
+
class ResultTest {
private static final ComponentName COMPONENT_NAME = new ComponentName("component");
@Test
+ void shouldMatchBeanContract() {
+ EqualsVerifier.forClass(Result.class)
+ .verify();
+ }
+
+ @Test
void componentNameShouldBeKeptWhenHealthy() {
Result result = Result.healthy(COMPONENT_NAME);
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org