### Question:
FeatureAdminData { public void addFeature(String toAdd) { Set<String> features = createSingleFeatureSet(toAdd); addFeatures(features); } 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 testAddFeature() { validateDefaultFeatures(); whitelistData.addFeature("foo"); blacklistData.addFeature("foo"); nullData.addFeature("foo"); defaultData.addFeature("foo"); defaultData.addFeature(null); whitelist.add("foo"); blacklist.add("foo"); assertEquals(whitelist, whitelistData.getFeatures()); assertEquals(blacklist, blacklistData.getFeatures()); assertEquals(Sets.newHashSet("foo"), nullData.getFeatures()); assertEquals(Sets.newHashSet("foo"), defaultData.getFeatures()); }