diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/identity/AuthorInfo.java b/bramble-api/src/main/java/org/briarproject/bramble/api/identity/AuthorInfo.java index a93b414052b58128ef4f0d98667a9f8116de6616..8c90d9aff05e6003c2a30b87d0a1bac37c6ab6f8 100644 --- a/bramble-api/src/main/java/org/briarproject/bramble/api/identity/AuthorInfo.java +++ b/bramble-api/src/main/java/org/briarproject/bramble/api/identity/AuthorInfo.java @@ -35,4 +35,18 @@ public class AuthorInfo { return alias; } + @Override + public int hashCode() { + int hashCode = status.ordinal(); + if (alias != null) hashCode += alias.hashCode(); + return hashCode; + } + + @Override + public boolean equals(Object o) { + if (!(o instanceof AuthorInfo)) return false; + AuthorInfo info = (AuthorInfo) o; + return status == info.status && + (alias == null ? info.alias == null : alias.equals(info.alias)); + } } diff --git a/bramble-api/src/test/java/org/briarproject/bramble/api/identity/AuthorInfoTest.java b/bramble-api/src/test/java/org/briarproject/bramble/api/identity/AuthorInfoTest.java new file mode 100644 index 0000000000000000000000000000000000000000..9c059c84ec47ad08ffbc3c545488a92f7df1ee02 --- /dev/null +++ b/bramble-api/src/test/java/org/briarproject/bramble/api/identity/AuthorInfoTest.java @@ -0,0 +1,42 @@ +package org.briarproject.bramble.api.identity; + +import org.briarproject.bramble.test.BrambleTestCase; +import org.junit.Test; + +import static org.briarproject.bramble.api.identity.AuthorInfo.Status.NONE; +import static org.briarproject.bramble.api.identity.AuthorInfo.Status.VERIFIED; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; + +public class AuthorInfoTest extends BrambleTestCase { + + @Test + public void testEquals() { + assertEquals( + new AuthorInfo(NONE), + new AuthorInfo(NONE, null) + ); + assertEquals( + new AuthorInfo(NONE, "test"), + new AuthorInfo(NONE, "test") + ); + + assertNotEquals( + new AuthorInfo(NONE), + new AuthorInfo(VERIFIED) + ); + assertNotEquals( + new AuthorInfo(NONE, "test"), + new AuthorInfo(NONE) + ); + assertNotEquals( + new AuthorInfo(NONE), + new AuthorInfo(NONE, "test") + ); + assertNotEquals( + new AuthorInfo(NONE, "a"), + new AuthorInfo(NONE, "b") + ); + } + +}