### Question:
DefaultConfiguration implements Configuration { @Override public Configuration getChild(String key) { NodeList nl = element.getChildNodes(); for (int i = 0; i < nl.getLength(); ++i) { Node n = nl.item(i); if (n.getNodeName().equals(key)) { return new DefaultConfiguration((Element) n); } } return NullConfiguration.INSTANCE; } DefaultConfiguration(String key);   DefaultConfiguration(Element element); static String toString(Document document); void addChild(DefaultConfiguration configuration); @Override Configuration getChild(String key); @Override Configuration getChild(String key, boolean required); @Override Configuration[] getChildren(String key); @Override String[] getAttributeNames(); @Override String getAttribute(String key); @Override String getAttribute(String key, String defaultValue); @Override boolean getAttributeAsBoolean(String key, boolean defaultValue); @Override float getAttributeAsFloat(String key); @Override float getAttributeAsFloat(String key, float defaultValue); @Override int getAttributeAsInteger(String key, int defaultValue); @Override String getValue(); @Override String getValue(String defaultValue); @Override boolean getValueAsBoolean(); @Override boolean getValueAsBoolean(boolean defaultValue); @Override int getValueAsInteger(); @Override int getValueAsInteger(int defaultValue); @Override float getValueAsFloat(); @Override float getValueAsFloat(float defaultValue); @Override String getLocation();  }### Answer:
@Test public void testGetChild() { Configuration fontsConfig = configuration.getChild("fonts"); assertEquals("fonts element should be direct child", "fop/fonts", fontsConfig.getLocation()); }