From d5f1cde746411b19c8a470b9f228acfaae23e520 Mon Sep 17 00:00:00 2001 From: Michael Darakananda Date: Tue, 1 May 2018 12:19:38 -0700 Subject: [PATCH 1/2] properly add equals() and compare fields --- .../google/cloud/BaseServiceException.java | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/google-cloud-core/src/main/java/com/google/cloud/BaseServiceException.java b/google-cloud-core/src/main/java/com/google/cloud/BaseServiceException.java index 470c2cf9a8b4..a0058a2e3f2b 100644 --- a/google-cloud-core/src/main/java/com/google/cloud/BaseServiceException.java +++ b/google-cloud-core/src/main/java/com/google/cloud/BaseServiceException.java @@ -214,12 +214,27 @@ public boolean isRetryable(boolean idempotent, Set retryableErrors) { @Override public String toString() { - return MoreObjects.toStringHelper(this).add("code", code).add("reason", reason).toString(); + return MoreObjects.toStringHelper(this) + .add("code", code) + .add("reason", reason) + .add("rejected", rejected) + .toString(); } @Override public int hashCode() { - return Objects.hash(code, reason); + return Objects.hash(code, reason, rejected); + } + + @Override + public boolean equals(Object obj) { + if (!(obj instanceof Error)) { + return false; + } + Error o = (Error) obj; + return Objects.equals(code, o.code) + && Objects.equals(reason, o.reason) + && Objects.equals(rejected, o.rejected); } } From 0d9a2b39f46b1e56599cf379935c0094c1e44777 Mon Sep 17 00:00:00 2001 From: Michael Darakananda Date: Tue, 1 May 2018 13:33:00 -0700 Subject: [PATCH 2/2] pr comment --- .../google/cloud/BaseServiceExceptionTest.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/google-cloud-core/src/test/java/com/google/cloud/BaseServiceExceptionTest.java b/google-cloud-core/src/test/java/com/google/cloud/BaseServiceExceptionTest.java index 5c5773d26f17..fed2faa88318 100644 --- a/google-cloud-core/src/test/java/com/google/cloud/BaseServiceExceptionTest.java +++ b/google-cloud-core/src/test/java/com/google/cloud/BaseServiceExceptionTest.java @@ -17,6 +17,7 @@ package com.google.cloud; import static com.google.cloud.BaseServiceException.UNKNOWN_CODE; +import static com.google.common.truth.Truth.assertThat; import static org.easymock.EasyMock.createMock; import static org.easymock.EasyMock.expect; import static org.easymock.EasyMock.replay; @@ -132,4 +133,19 @@ public void testTranslateAndThrow() throws Exception { verify(exceptionMock); } } + + @Test + public void testError_Equal() { + BaseServiceException.Error error = new BaseServiceException.Error(0, "reason", true); + assertThat(error).isEqualTo(error); + assertThat(error.hashCode()).isEqualTo(error.hashCode()); + + BaseServiceException.Error sameError = new BaseServiceException.Error(0, "reason", true); + assertThat(error).isEqualTo(sameError); + assertThat(error.hashCode()).isEqualTo(sameError.hashCode()); + + BaseServiceException.Error error2 = new BaseServiceException.Error(1, "other reason", false); + assertThat(error).isNotEqualTo(error2); + assertThat(error.hashCode()).isNotEqualTo(error2.hashCode()); + } }