### Question:
CommonSchemaElements implements SchemaFileElement { @Override public final boolean equals(Object o) { if (this == o) { return true; } if (o instanceof CommonSchemaElements) { CommonSchemaElements other = (CommonSchemaElements) o; return lowerName.equals(other.lowerName); } return false; } protected  CommonSchemaElements(String primaryName,
      Collection<String> names, String oid, String description,
      boolean isObsolete, Map<String, List<String>> extraProperties); static void checkSafeProperties(Map <String,List<String>>
      extraProperties); final String getPrimaryName(); final Set<String> getNormalizedNames(); final Iterable<String> getUserDefinedNames(); final boolean hasName(String lowerName); final String getOID(); final String getNameOrOID(); final String getNormalizedPrimaryNameOrOID(); final boolean hasNameOrOID(String lowerValue); static String getSchemaFile(SchemaFileElement elem); static String getSingleValueProperty(SchemaFileElement elem,
      String propertyName); static void setSchemaFile(SchemaFileElement elem, String schemaFile); final String getDescription(); final boolean isObsolete(); @Override final Map<String, List<String>> getExtraProperties(); static void setExtraProperty(SchemaFileElement elem,
      String name, String value); final void setExtraProperty(String name,
                                     List<String> values); @Override final boolean equals(Object o); @Override final int hashCode(); static String getDefinitionWithFileName(SchemaFileElement elem);  }### Answer:
@Test(dataProvider = "equalsTestData") public final void testEquals(String name1, String oid1, String name2, String oid2, boolean result) throws Exception { SchemaDefinitionBuilder builder1 = getBuilder(name1, oid1); CommonSchemaElements d1 = builder1.getInstance(); SchemaDefinitionBuilder builder2 = getBuilder(name2, oid2); CommonSchemaElements d2 = builder2.getInstance(); Assert.assertEquals(d1.equals(d2), result); Assert.assertEquals(d2.equals(d1), result); }