### Question:
FeaturableConfig { @Override public boolean equals(Object object) { if (this == object) { return true; } if (object == null || object.getClass() != getClass()) { return false; } final FeaturableConfig other = (FeaturableConfig) object; return clazz.equals(other.clazz) && setup.equals(other.setup); } FeaturableConfig(String clazz, String setup); static void clearCache(); static FeaturableConfig imports(Configurer configurer); static FeaturableConfig imports(Xml root); static Xml exportClass(String clazz); static Xml exportSetup(String setup); static List<Feature> getFeatures(ClassLoader loader, Services services, Setup setup); String getClassName(); String getSetupName(); @Override int hashCode(); @Override boolean equals(Object object); @Override String toString(); static final String DEFAULT_FILENAME; static final String NODE_FEATURABLE; static final String ATT_CLASS; static final String ATT_SETUP; static final String NODE_FEATURES; static final String NODE_FEATURE; }### Answer:
@Test void testEquals() { final FeaturableConfig config = new FeaturableConfig("class", "setup"); assertEquals(config, config); assertEquals(config, new FeaturableConfig("class", "setup")); assertNotEquals(config, null); assertNotEquals(config, new Object()); assertNotEquals(config, new FeaturableConfig("", "setup")); assertNotEquals(config, new FeaturableConfig("class", "")); }