### Question:
Configuration { public String removeProperty(String configType, String propertyName) { String previousValue = null; if (properties.containsKey(configType)) { previousValue = properties.get(configType).remove(propertyName); } if (parentConfiguration != null) { String parentPreviousValue = parentConfiguration.removeProperty(configType, propertyName); if (previousValue == null) { previousValue = parentPreviousValue; } } return previousValue; } Configuration(Map<String, Map<String, String>> properties,
                       Map<String, Map<String, Map<String, String>>> attributes,
                       Configuration parentConfiguration);  Configuration(Map<String, Map<String, String>> properties,
                       Map<String, Map<String, Map<String, String>>> attributes); Map<String, Map<String, String>> getProperties(); Map<String, Map<String, String>> getFullProperties(); Map<String, Map<String, String>> getFullProperties(int depthLimit); Map<String, Map<String, Map<String, String>>> getAttributes(); Map<String, Map<String, Map<String, String>>> getFullAttributes(); String getPropertyValue(String configType, String propertyName); String getAttributeValue(String configType, String propertyName, String attributeName); String setProperty(String configType, String propertyName, String value); String removeProperty(String configType, String propertyName); Set<String> moveProperties(String sourceConfigType, String targetConfigType, Set<String> propertiesToMove); boolean isPropertySet(String configType, String propertyName); String setAttribute(String configType, String propertyName, String attributeName, String attributeValue); Collection<String> getAllConfigTypes(); Configuration getParentConfiguration(); void setParentConfiguration(Configuration parent); void removeConfigType(String configType);  }### Answer:
@Test public void testRemoveProperty() { Configuration configuration = createConfigurationWithParents_PropsOnly(); assertEquals("val3.1", configuration.removeProperty("type1", "prop3")); assertNull(configuration.getPropertyValue("type1", "prop3")); assertEquals("val9.3", configuration.removeProperty("type1", "prop9")); assertNull(configuration.getPropertyValue("type1", "prop9")); assertEquals("val1.3", configuration.removeProperty("type1", "prop1")); assertNull(configuration.getPropertyValue("type1", "prop1")); assertEquals("val4.3", configuration.removeProperty("type2", "prop4")); assertNull(configuration.getPropertyValue("type2", "prop4")); assertEquals("val2.2", configuration.removeProperty("type1", "prop2")); assertNull(configuration.getPropertyValue("type1", "prop2")); assertNull(configuration.getPropertyValue("typeXXX", "XXXXX")); assertNull(configuration.getPropertyValue("type1", "XXXXX")); }