### Question:
FeatureAdminData { private void addFeatures(Set<String> toAdd, Set<String> features) { for (String feature : toAdd) { if (feature != null) { features.add(feature); } } } 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 testAddFeatures() { validateDefaultFeatures(); Set<String> toAdd = Sets.newHashSet("foo", "bar", null); whitelistData.addFeatures(toAdd); blacklistData.addFeatures(toAdd); nullData.addFeatures(toAdd); defaultData.addFeatures(toAdd); Set<String> actuallyAdded = Sets.newHashSet("foo", "bar"); whitelist.addAll(actuallyAdded); blacklist.addAll(actuallyAdded); assertEquals(whitelist, whitelistData.getFeatures()); assertEquals(blacklist, blacklistData.getFeatures()); assertEquals(actuallyAdded, nullData.getFeatures()); assertEquals(actuallyAdded, defaultData.getFeatures()); }