### Question:
AttributeTypeDef extends TypeDefElementHeader { @Override public boolean equals(Object object) { if (this == object) { return true; } if (object == null || getClass() != object.getClass()) { return false; } AttributeTypeDef that = (AttributeTypeDef) object; return version == that.version && Objects.equals(versionName, that.versionName) && category == that.category && Objects.equals(guid, that.guid) && Objects.equals(name, that.name) && Objects.equals(description, that.description) && Objects.equals(descriptionGUID, that.descriptionGUID); } protected  AttributeTypeDef(); protected  AttributeTypeDef(AttributeTypeDefCategory   category); protected  AttributeTypeDef(AttributeTypeDefCategory   category,
                               String                     guid,
                               String                     name); protected  AttributeTypeDef(AttributeTypeDef template); abstract AttributeTypeDef cloneFromSubclass(); long getVersion(); void setVersion(long version); String getVersionName(); void setVersionName(String versionName); AttributeTypeDefCategory getCategory(); void setCategory(AttributeTypeDefCategory category); String getGUID(); void setGUID(String guid); String getName(); void setName(String name); String getDescription(); void setDescription(String description); String getDescriptionGUID(); void setDescriptionGUID(String descriptionGUID); @Override String toString(); @Override boolean equals(Object object); @Override int hashCode();  }### Answer:
@Test public void testEquals() { assertTrue(getTestObject().equals(getTestObject())); AttributeTypeDef testObject = getTestObject(); assertTrue(testObject.equals(testObject)); assertFalse(getTestObject().equals(null)); assertFalse(getTestObject().equals("AString")); }