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 42769f59e55daef36a52fa9fceadaf2bbe99c753 Author: Benoit Tellier <[email protected]> AuthorDate: Tue Nov 12 11:25:30 2019 +0700 MAILBOX-391 MailboxQuery should implement Equals & HashCode --- .../apache/james/mailbox/model/search/ExactName.java | 17 +++++++++++++++++ .../james/mailbox/model/search/MailboxQuery.java | 18 ++++++++++++++++++ .../james/mailbox/model/search/PrefixedRegex.java | 18 ++++++++++++++++++ .../james/mailbox/model/search/PrefixedWildcard.java | 17 +++++++++++++++++ .../james/mailbox/model/search/ExactNameTest.java | 9 ++++++++- .../james/mailbox/model/search/MailboxQueryTest.java | 8 ++++++++ .../james/mailbox/model/search/PrefixedRegexTest.java | 9 +++++++++ .../mailbox/model/search/PrefixedWildcardTest.java | 8 ++++++++ 8 files changed, 103 insertions(+), 1 deletion(-) diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/model/search/ExactName.java b/mailbox/api/src/main/java/org/apache/james/mailbox/model/search/ExactName.java index 347e978..1a9b0c8 100644 --- a/mailbox/api/src/main/java/org/apache/james/mailbox/model/search/ExactName.java +++ b/mailbox/api/src/main/java/org/apache/james/mailbox/model/search/ExactName.java @@ -19,6 +19,8 @@ package org.apache.james.mailbox.model.search; +import java.util.Objects; + import com.google.common.base.Preconditions; public class ExactName implements MailboxNameExpression { @@ -45,4 +47,19 @@ public class ExactName implements MailboxNameExpression { public boolean isWild() { return false; } + + @Override + public final boolean equals(Object o) { + if (o instanceof ExactName) { + ExactName exactName = (ExactName) o; + + return Objects.equals(this.name, exactName.name); + } + return false; + } + + @Override + public final int hashCode() { + return Objects.hash(name); + } } diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/model/search/MailboxQuery.java b/mailbox/api/src/main/java/org/apache/james/mailbox/model/search/MailboxQuery.java index 388280f..4ed7c58 100644 --- a/mailbox/api/src/main/java/org/apache/james/mailbox/model/search/MailboxQuery.java +++ b/mailbox/api/src/main/java/org/apache/james/mailbox/model/search/MailboxQuery.java @@ -19,6 +19,7 @@ package org.apache.james.mailbox.model.search; +import java.util.Objects; import java.util.Optional; import org.apache.james.core.Username; @@ -182,6 +183,23 @@ public class MailboxQuery { return new UserBound(namespace, user, mailboxNameExpression); } + @Override + public final boolean equals(Object o) { + if (o instanceof MailboxQuery) { + MailboxQuery that = (MailboxQuery) o; + + return Objects.equals(this.namespace, that.namespace) + && Objects.equals(this.user, that.user) + && Objects.equals(this.mailboxNameExpression, that.mailboxNameExpression); + } + return false; + } + + @Override + public final int hashCode() { + return Objects.hash(namespace, user, mailboxNameExpression); + } + public String toString() { return MoreObjects.toStringHelper(this) .add("namespace", namespace) diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/model/search/PrefixedRegex.java b/mailbox/api/src/main/java/org/apache/james/mailbox/model/search/PrefixedRegex.java index 3c96a69..86e6743 100644 --- a/mailbox/api/src/main/java/org/apache/james/mailbox/model/search/PrefixedRegex.java +++ b/mailbox/api/src/main/java/org/apache/james/mailbox/model/search/PrefixedRegex.java @@ -19,6 +19,7 @@ package org.apache.james.mailbox.model.search; +import java.util.Objects; import java.util.Optional; import java.util.StringTokenizer; import java.util.regex.Pattern; @@ -109,4 +110,21 @@ public class PrefixedRegex implements MailboxNameExpression { return Pattern.quote(token); } } + + @Override + public final boolean equals(Object o) { + if (o instanceof PrefixedRegex) { + PrefixedRegex that = (PrefixedRegex) o; + + return Objects.equals(this.pathDelimiter, that.pathDelimiter) + && Objects.equals(this.prefix, that.prefix) + && Objects.equals(this.regex, that.regex); + } + return false; + } + + @Override + public final int hashCode() { + return Objects.hash(prefix, regex, pathDelimiter); + } } diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/model/search/PrefixedWildcard.java b/mailbox/api/src/main/java/org/apache/james/mailbox/model/search/PrefixedWildcard.java index cbc1934..ae1e6fb 100644 --- a/mailbox/api/src/main/java/org/apache/james/mailbox/model/search/PrefixedWildcard.java +++ b/mailbox/api/src/main/java/org/apache/james/mailbox/model/search/PrefixedWildcard.java @@ -19,6 +19,8 @@ package org.apache.james.mailbox.model.search; +import java.util.Objects; + import com.google.common.base.Preconditions; public class PrefixedWildcard implements MailboxNameExpression { @@ -44,4 +46,19 @@ public class PrefixedWildcard implements MailboxNameExpression { public boolean isWild() { return true; } + + @Override + public final boolean equals(Object o) { + if (o instanceof PrefixedWildcard) { + PrefixedWildcard that = (PrefixedWildcard) o; + + return Objects.equals(this.prefix, that.prefix); + } + return false; + } + + @Override + public final int hashCode() { + return Objects.hash(prefix); + } } diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/model/search/ExactNameTest.java b/mailbox/api/src/test/java/org/apache/james/mailbox/model/search/ExactNameTest.java index c63bf00..94ca305 100644 --- a/mailbox/api/src/test/java/org/apache/james/mailbox/model/search/ExactNameTest.java +++ b/mailbox/api/src/test/java/org/apache/james/mailbox/model/search/ExactNameTest.java @@ -24,11 +24,18 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy; import org.junit.Test; -public class ExactNameTest { +import nl.jqno.equalsverifier.EqualsVerifier; +public class ExactNameTest { public static final String NAME = "toto"; @Test + public void shouldMatchBeanContract() { + EqualsVerifier.forClass(ExactName.class) + .verify(); + } + + @Test public void constructorShouldThrowOnNullName() { assertThatThrownBy(() -> new ExactName(null)) .isInstanceOf(NullPointerException.class); diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/model/search/MailboxQueryTest.java b/mailbox/api/src/test/java/org/apache/james/mailbox/model/search/MailboxQueryTest.java index 08c907f..4f87989 100644 --- a/mailbox/api/src/test/java/org/apache/james/mailbox/model/search/MailboxQueryTest.java +++ b/mailbox/api/src/test/java/org/apache/james/mailbox/model/search/MailboxQueryTest.java @@ -27,6 +27,8 @@ import org.apache.james.mailbox.model.search.MailboxQuery.Builder; import org.junit.Before; import org.junit.Test; +import nl.jqno.equalsverifier.EqualsVerifier; + public class MailboxQueryTest { private static final String CURRENT_USER = "user"; @@ -38,6 +40,12 @@ public class MailboxQueryTest { } @Test + public void shouldMatchBeanContract() { + EqualsVerifier.forClass(MailboxQuery.class) + .verify(); + } + + @Test public void buildShouldMatchAllValuesWhenMatchesAll() throws Exception { MailboxQuery actual = MailboxQuery.builder() diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/model/search/PrefixedRegexTest.java b/mailbox/api/src/test/java/org/apache/james/mailbox/model/search/PrefixedRegexTest.java index 03a8351..6092e05 100644 --- a/mailbox/api/src/test/java/org/apache/james/mailbox/model/search/PrefixedRegexTest.java +++ b/mailbox/api/src/test/java/org/apache/james/mailbox/model/search/PrefixedRegexTest.java @@ -23,12 +23,21 @@ import static org.assertj.core.api.Assertions.assertThat; import org.junit.Test; +import nl.jqno.equalsverifier.EqualsVerifier; + public class PrefixedRegexTest { private static final char PATH_DELIMITER = '.'; private static final String PREFIX = "name"; private static final String EMPTY_PREFIX = ""; @Test + public void shouldMatchBeanContract() { + EqualsVerifier.forClass(PrefixedRegex.class) + .withIgnoredFields("pattern") + .verify(); + } + + @Test public void isWildShouldReturnTrueWhenOnlyFreeWildcard() throws Exception { PrefixedRegex prefixedRegex = new PrefixedRegex(PREFIX, "*", PATH_DELIMITER); diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/model/search/PrefixedWildcardTest.java b/mailbox/api/src/test/java/org/apache/james/mailbox/model/search/PrefixedWildcardTest.java index 762b025..9f67a64 100644 --- a/mailbox/api/src/test/java/org/apache/james/mailbox/model/search/PrefixedWildcardTest.java +++ b/mailbox/api/src/test/java/org/apache/james/mailbox/model/search/PrefixedWildcardTest.java @@ -24,10 +24,18 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy; import org.junit.Test; +import nl.jqno.equalsverifier.EqualsVerifier; + public class PrefixedWildcardTest { public static final String NAME = "toto"; @Test + public void shouldMatchBeanContract() { + EqualsVerifier.forClass(PrefixedWildcard.class) + .verify(); + } + + @Test public void constructorShouldThrowOnNullName() { assertThatThrownBy(() -> new PrefixedWildcard(null)) .isInstanceOf(NullPointerException.class); --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
