Remove equals/hashCode/toString methods from info classes

Mostly these were unused. Only one test assertion in
CodeOwnerConfigInfoSubject required some of the equals methods, but we
can rewrite this so that it no longer relies on the equals methods.

Updating equals/hashCode/toString can easily be forgotten if there are
no dedicated tests for them (e.g. in CodeOwnerConfigInfo they did not
consider the ignoreParentCodeOwners field which was not noticed). Since
they are not really needed and writing tests for them is a hassle (there
are utilities for this, but they are currently not available in upstream
Gerrit) we just drop them.

Signed-off-by: Edwin Kempin <ekempin@google.com>
Change-Id: I74048bb0d1848ebb25b8c7fb93b76114d0bd7b45
diff --git a/java/com/google/gerrit/plugins/codeowners/api/CodeOwnerConfigInfo.java b/java/com/google/gerrit/plugins/codeowners/api/CodeOwnerConfigInfo.java
index b74d8ea..f877f64 100644
--- a/java/com/google/gerrit/plugins/codeowners/api/CodeOwnerConfigInfo.java
+++ b/java/com/google/gerrit/plugins/codeowners/api/CodeOwnerConfigInfo.java
@@ -14,9 +14,7 @@
 
 package com.google.gerrit.plugins.codeowners.api;
 
-import com.google.common.base.MoreObjects;
 import java.util.List;
-import java.util.Objects;
 
 /**
  * Representation of a {@link com.google.gerrit.plugins.codeowners.backend.CodeOwnerConfig} in the
@@ -39,23 +37,4 @@
    * <p>Not set if there are no code owner sets defined in this code owner config.
    */
   public List<CodeOwnerSetInfo> codeOwnerSets;
-
-  @Override
-  public int hashCode() {
-    return Objects.hashCode(codeOwnerSets);
-  }
-
-  @Override
-  public boolean equals(Object o) {
-    if (!(o instanceof CodeOwnerConfigInfo)) {
-      return false;
-    }
-    CodeOwnerConfigInfo other = (CodeOwnerConfigInfo) o;
-    return Objects.equals(codeOwnerSets, other.codeOwnerSets);
-  }
-
-  @Override
-  public String toString() {
-    return MoreObjects.toStringHelper(this).add("codeOwnerSets", codeOwnerSets).toString();
-  }
 }
diff --git a/java/com/google/gerrit/plugins/codeowners/api/CodeOwnerInfo.java b/java/com/google/gerrit/plugins/codeowners/api/CodeOwnerInfo.java
index 934674a..c141bea 100644
--- a/java/com/google/gerrit/plugins/codeowners/api/CodeOwnerInfo.java
+++ b/java/com/google/gerrit/plugins/codeowners/api/CodeOwnerInfo.java
@@ -14,9 +14,7 @@
 
 package com.google.gerrit.plugins.codeowners.api;
 
-import com.google.common.base.MoreObjects;
 import com.google.gerrit.extensions.common.AccountInfo;
-import java.util.Objects;
 
 /**
  * Representation of a code owner in the REST API.
@@ -26,23 +24,4 @@
 public class CodeOwnerInfo {
   /** The account of the code owner. */
   public AccountInfo account;
-
-  @Override
-  public int hashCode() {
-    return Objects.hashCode(account);
-  }
-
-  @Override
-  public boolean equals(Object o) {
-    if (!(o instanceof CodeOwnerInfo)) {
-      return false;
-    }
-    CodeOwnerInfo other = (CodeOwnerInfo) o;
-    return Objects.equals(account, other.account);
-  }
-
-  @Override
-  public String toString() {
-    return MoreObjects.toStringHelper(this).add("account", account).toString();
-  }
 }
diff --git a/java/com/google/gerrit/plugins/codeowners/api/CodeOwnerReferenceInfo.java b/java/com/google/gerrit/plugins/codeowners/api/CodeOwnerReferenceInfo.java
index 1ca0c63..6ba7f69 100644
--- a/java/com/google/gerrit/plugins/codeowners/api/CodeOwnerReferenceInfo.java
+++ b/java/com/google/gerrit/plugins/codeowners/api/CodeOwnerReferenceInfo.java
@@ -14,9 +14,6 @@
 
 package com.google.gerrit.plugins.codeowners.api;
 
-import com.google.common.base.MoreObjects;
-import java.util.Objects;
-
 /**
  * Representation of a {@link com.google.gerrit.plugins.codeowners.backend.CodeOwnerReference} in
  * the REST API.
@@ -26,23 +23,4 @@
 public class CodeOwnerReferenceInfo {
   /** The email of the code owner. */
   public String email;
-
-  @Override
-  public int hashCode() {
-    return Objects.hashCode(email);
-  }
-
-  @Override
-  public boolean equals(Object o) {
-    if (!(o instanceof CodeOwnerReferenceInfo)) {
-      return false;
-    }
-    CodeOwnerReferenceInfo other = (CodeOwnerReferenceInfo) o;
-    return Objects.equals(email, other.email);
-  }
-
-  @Override
-  public String toString() {
-    return MoreObjects.toStringHelper(this).add("email", email).toString();
-  }
 }
diff --git a/java/com/google/gerrit/plugins/codeowners/api/CodeOwnerSetInfo.java b/java/com/google/gerrit/plugins/codeowners/api/CodeOwnerSetInfo.java
index 54ccc3f..8dccbd6 100644
--- a/java/com/google/gerrit/plugins/codeowners/api/CodeOwnerSetInfo.java
+++ b/java/com/google/gerrit/plugins/codeowners/api/CodeOwnerSetInfo.java
@@ -14,9 +14,7 @@
 
 package com.google.gerrit.plugins.codeowners.api;
 
-import com.google.common.base.MoreObjects;
 import java.util.List;
-import java.util.Objects;
 
 /**
  * Representation of a {@link com.google.gerrit.plugins.codeowners.backend.CodeOwnerSet} in the REST
@@ -31,23 +29,4 @@
    * <p>Not set if there are no code owners defined in this code owner set.
    */
   public List<CodeOwnerReferenceInfo> codeOwners;
-
-  @Override
-  public int hashCode() {
-    return Objects.hashCode(codeOwners);
-  }
-
-  @Override
-  public boolean equals(Object o) {
-    if (!(o instanceof CodeOwnerSetInfo)) {
-      return false;
-    }
-    CodeOwnerSetInfo other = (CodeOwnerSetInfo) o;
-    return Objects.equals(codeOwners, other.codeOwners);
-  }
-
-  @Override
-  public String toString() {
-    return MoreObjects.toStringHelper(this).add("codeOwners", codeOwners).toString();
-  }
 }
diff --git a/java/com/google/gerrit/plugins/codeowners/testing/CodeOwnerConfigInfoSubject.java b/java/com/google/gerrit/plugins/codeowners/testing/CodeOwnerConfigInfoSubject.java
index 116407d..c2fb3be 100644
--- a/java/com/google/gerrit/plugins/codeowners/testing/CodeOwnerConfigInfoSubject.java
+++ b/java/com/google/gerrit/plugins/codeowners/testing/CodeOwnerConfigInfoSubject.java
@@ -14,6 +14,7 @@
 
 package com.google.gerrit.plugins.codeowners.testing;
 
+import static com.google.common.collect.ImmutableList.toImmutableList;
 import static com.google.common.truth.Truth.assertAbout;
 import static com.google.gerrit.plugins.codeowners.testing.CodeOwnerSetInfoSubject.codeOwnerSetInfos;
 import static com.google.gerrit.truth.ListSubject.elements;
@@ -24,9 +25,11 @@
 import com.google.gerrit.plugins.codeowners.api.CodeOwnerConfigInfo;
 import com.google.gerrit.plugins.codeowners.api.CodeOwnerSetInfo;
 import com.google.gerrit.plugins.codeowners.backend.CodeOwnerConfig;
-import com.google.gerrit.plugins.codeowners.restapi.CodeOwnerConfigJson;
+import com.google.gerrit.plugins.codeowners.backend.CodeOwnerReference;
 import com.google.gerrit.truth.ListSubject;
+import com.google.gerrit.truth.NullAwareCorrespondence;
 import com.google.gerrit.truth.OptionalSubject;
+import java.util.List;
 import java.util.Optional;
 
 /** {@link Subject} for doing assertions on {@link CodeOwnerConfigInfo}s. */
@@ -93,9 +96,21 @@
    *     corresponds to the {@link CodeOwnerConfigInfo} of this subject
    */
   public void correspondsTo(CodeOwnerConfig codeOwnerConfig) {
-    check("codeOwnerInfo()")
-        .that(codeOwnerConfigInfo())
-        .isEqualTo(CodeOwnerConfigJson.format(codeOwnerConfig));
+    hasIgnoreParentCodeOwnersThat().isEqualTo(codeOwnerConfig.ignoreParentCodeOwners());
+    hasCodeOwnerSetsThat()
+        .comparingElementsUsing(
+            NullAwareCorrespondence.<CodeOwnerSetInfo, List<String>>transforming(
+                codeOwnerSetInfo ->
+                    codeOwnerSetInfo.codeOwners.stream()
+                        .map(codeOwnerReferenceInfo -> codeOwnerReferenceInfo.email)
+                        .collect(toImmutableList()),
+                "has code owners"))
+        .containsExactly(
+            codeOwnerConfig.codeOwnerSets().stream()
+                .flatMap(
+                    codeOwnerSet ->
+                        codeOwnerSet.codeOwners().stream().map(CodeOwnerReference::email))
+                .collect(toImmutableList()));
   }
 
   private CodeOwnerConfigInfo codeOwnerConfigInfo() {