### Question:
FeatureAdminData { @Override public int hashCode() { return Objects.hashCode(this.features, this.type); } 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 testHashCode() { assertEquals(Objects.hashCode(this.whitelist, Type.WHITELIST), whitelistData.hashCode()); assertEquals(Objects.hashCode(this.blacklist, Type.BLACKLIST), blacklistData.hashCode()); assertEquals(Objects.hashCode(Sets.newHashSet(), Type.WHITELIST), nullData.hashCode()); assertEquals(Objects.hashCode(Sets.newHashSet(), Type.WHITELIST), defaultData.hashCode()); assertFalse(Objects.hashCode(this.blacklist, Type.WHITELIST) == whitelistData .hashCode()); }