### Question:
FeatureAdminData { @Override public boolean equals(Object obj) { if (obj instanceof FeatureAdminData) { FeatureAdminData test = (FeatureAdminData) obj; return this.getFeatures().equals(test.getFeatures()) && this.getType().equals(test.getType()); } return false; } FeatureAdminData();  FeatureAdminData(Set<String> features, Type type); void addFeatures(Set<String> toAdd); void addFeature(String toAdd); void clearFeatures(); void removeFeatures(Set<String> toRemove); void removeFeature(String toRemove); Set<String> getFeatures(); Type getType(); void setType(Type type); @Override boolean equals(Object obj); @Override int hashCode();  }### Answer:
@Test public void testEquals() { assertTrue(whitelistData.equals(new FeatureAdminData(whitelist, Type.WHITELIST))); assertFalse(whitelistData.equals(new FeatureAdminData(whitelist,Type.BLACKLIST))); assertFalse(whitelistData.equals(new FeatureAdminData(new HashSet<String>(), Type.WHITELIST))); assertFalse(whitelistData.equals(new FeatureAdminData(Sets.newHashSet(EE), Type.WHITELIST))); assertFalse(whitelistData.equals(null)); assertTrue(blacklistData.equals(new FeatureAdminData(blacklist, Type.BLACKLIST))); assertTrue(nullData.equals(defaultData)); assertFalse(nullData.equals(whitelistData)); }