### Question:
GraphItemImpl implements GraphItem, Serializable { @Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } GraphItemImpl graphItem = (GraphItemImpl) o; return hashcode == graphItem.hashcode && Objects.equals(address, graphItem.address) && Objects.equals(dependencies, graphItem.dependencies); } GraphItemImpl(
            @NonNull String address,
            @NonNull List<GraphItem> dependencies); @NonNull @Override String getArtifactAddress(); @Nullable @Override String getRequestedCoordinates(); @NonNull @Override List<GraphItem> getDependencies(); @Override boolean equals(Object o); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void equals() throws Exception { EqualsVerifier.forClass(GraphItemImpl.class) .withCachedHashCode("hashcode", "computeHashCode", (GraphItemImpl) getRed()) .withPrefabValues(GraphItem.class, getRed(), getBlack()) .verify(); }