### Question:
PackageClass { @Override public boolean equals(Object obj) { if (!(obj instanceof PackageClass)) { return false; } if (this == obj) { return true; } PackageClass rhs = (PackageClass) obj; return new EqualsBuilder() .append(fileName, rhs.fileName) .append(pkg, rhs.pkg) .isEquals(); } protected  PackageClass(String fullyQualifiedName);  PackageClass(String pkg, String fileName);  PackageClass(Class<?> inputClass); String getClassName(); String getFullyQualifiedName(); String getPackage(); PackageClass append(String addName); PackageClass prepend(String prepend); PackageClass replaceName(String replacement); String toString(); @Override boolean equals(Object obj); @Override int hashCode(); String getCanonicalName(); PackageClass replacePackage(String inputPackage);  }### Answer:
@Test public void testEquals() { PackageClass one = new PackageClass(FULLY_QUALIFIED_NAME); PackageClass two = new PackageClass(FULLY_QUALIFIED_NAME); PackageClass three = one.append(TEST_NAME); assertEquals(one, two); assertFalse(one.equals(three)); assertEquals(one.hashCode(), two.hashCode()); assertNotSame(one.hashCode(), three.hashCode()); }