### Question:
ResourceReference implements Cloneable { @Override public int hashCode() { return new HashCodeBuilder(1, 9) .append(getType()) .append(isTyped()) .append(getReference()) .append(getBaseReferences()) .append(getParameters()) .toHashCode(); } ResourceReference(String reference, ResourceType type); void setTyped(boolean typed); boolean isTyped(); void setReference(String reference); String getReference(); void addBaseReference(String baseReference); void addBaseReferences(List<String> baseReferences); List<String> getBaseReferences(); ResourceType getType(); void setType(ResourceType type); void setParameter(String name, String value); void setParameters(Map<String, String> parameters); void removeParameter(String name); String getParameter(String name); Map<String, String> getParameters(); @Override String toString(); @Override ResourceReference clone(); @Override int hashCode(); @Override boolean equals(Object object);  }### Answer:
@Test public void testHashCode() { ResourceReference reference1 = new ResourceReference("reference", ResourceType.DOCUMENT); ResourceReference reference2 = new ResourceReference("reference", ResourceType.DOCUMENT); assertEquals(reference1.hashCode(), reference2.hashCode()); reference1.addBaseReference("base"); reference2.addBaseReference("base"); assertEquals(reference1.hashCode(), reference2.hashCode()); }