### Question:
TypeDefPatch extends TypeDefElementHeader { @Override public boolean equals(Object objectToCompare) { if (this == objectToCompare) { return true; } if (objectToCompare == null || getClass() != objectToCompare.getClass()) { return false; } TypeDefPatch that = (TypeDefPatch) objectToCompare; return applyToVersion == that.applyToVersion && updateToVersion == that.updateToVersion && Objects.equals(typeDefGUID, that.typeDefGUID) && Objects.equals(typeDefName, that.typeDefName) && typeDefStatus == that.typeDefStatus && Objects.equals(newVersionName, that.newVersionName) && Objects.equals(updatedBy, that.updatedBy) && Objects.equals(updateTime, that.updateTime) && Objects.equals(description, that.description) && Objects.equals(descriptionGUID, that.descriptionGUID) && Objects.equals(propertyDefinitions, that.propertyDefinitions) && Objects.equals(typeDefOptions, that.typeDefOptions) && Objects.equals(externalStandardMappings, that.externalStandardMappings) && Objects.equals(validInstanceStatusList, that.validInstanceStatusList) && initialStatus == that.initialStatus && Objects.equals(validEntityDefs, that.validEntityDefs) && Objects.equals(endDef1, that.endDef1) && Objects.equals(endDef2, that.endDef2); } TypeDefPatch();  TypeDefPatch(TypeDefPatch   template); String getTypeDefGUID(); void setTypeDefGUID(String typeDefGUID); String getTypeDefName(); void setTypeDefName(String typeDefName); TypeDefStatus getTypeDefStatus(); void setTypeDefStatus(TypeDefStatus typeDefStatus); long getApplyToVersion(); void setApplyToVersion(long applyToVersion); long getUpdateToVersion(); void setUpdateToVersion(long updateToVersion); String getNewVersionName(); void setNewVersionName(String newVersionName); String getUpdatedBy(); void setUpdatedBy(String updatedBy); Date getUpdateTime(); void setUpdateTime(Date updateTime); String getDescription(); void setDescription(String description); String getDescriptionGUID(); void setDescriptionGUID(String descriptionGUID); List<TypeDefAttribute> getPropertyDefinitions(); void setPropertyDefinitions(List<TypeDefAttribute> propertyDefinitions); Map<String, String> getTypeDefOptions(); void setTypeDefOptions(Map<String, String> typeDefOptions); List<ExternalStandardMapping> getExternalStandardMappings(); void setExternalStandardMappings(List<ExternalStandardMapping> externalStandardMappings); List<InstanceStatus> getValidInstanceStatusList(); void setValidInstanceStatusList(List<InstanceStatus> validInstanceStatusList); InstanceStatus getInitialStatus(); void setInitialStatus(InstanceStatus initialStatus); List<TypeDefLink> getValidEntityDefs(); void setValidEntityDefs(List<TypeDefLink> validEntityDefs); RelationshipEndDef getEndDef1(); void setEndDef1(RelationshipEndDef endDef1); RelationshipEndDef getEndDef2(); void setEndDef2(RelationshipEndDef endDef2); @Override String toString(); @Override boolean equals(Object objectToCompare); @Override int hashCode();  }### Answer:
@Test public void testEquals() { assertTrue(getTestObject().equals(getTestObject())); TypeDefPatch testObject = getTestObject(); assertTrue(testObject.equals(testObject)); assertFalse(getTestObject().equals(null)); assertFalse(getTestObject().equals("A String")); TypeDefPatch differentObject = new TypeDefPatch(); assertFalse(testObject.equals(differentObject)); differentObject = getTestObject(); differentObject.setNewVersionName("DifferentHomeId"); assertFalse(testObject.equals(differentObject)); }