### Question:
SubConfiguration implements Configuration { public String[] getAll(String propertyName){ return cfg.getAll(prefix + propertyName); } SubConfiguration();  SubConfiguration(Configuration cfg, String prefix); void setConfiguration(Configuration newCfg); void setPrefix(String newPrefix); String get(String propertyName); String[] getAll(String propertyName); int[] getInts(String propertyName); long[] getLongs(String propertyName); double[] getDoubles(String propertyName); boolean[] getBooleans(String propertyName); String get(String propertyName, String defaultValue); boolean getBoolean(String propertyName); boolean getBoolean(String propertyName, boolean defaultValue); double getDouble(String propertyName); double getDouble(String propertyName, double defaultValue); long getLong(String propertyName); long getLong(String propertyName, long defaultValue); int getInt(String propertyName); int getInt(String propertyName, int defaultValue); void put(String name, Object value); Object getObject(String propertyName); @Override Set<String> keySet();  }### Answer:
@Test public void testGetAll() throws Throwable { Configuration cfg = new SimpleConfiguration(); SubConfiguration subConfiguration = new SubConfiguration(cfg, "testSubConfigurationPrefix"); subConfiguration.put("testString", ""); String[] result = subConfiguration.getAll("testString"); assertEquals(1, result.length, "result.length"); assertEquals("", result[0], "result[0]"); assertSame(cfg, subConfiguration.cfg, "subConfiguration.cfg"); }
@Test public void testGetAll1() throws Throwable { Configuration cfg = new SimpleConfiguration(); SubConfiguration subConfiguration = new SubConfiguration(cfg, "testSubConfigurationPrefix"); String[] result = subConfiguration.getAll("testSubConfigurationPropertyName"); assertEquals(0, result.length, "result.length"); assertSame(cfg, subConfiguration.cfg, "subConfiguration.cfg"); }
@Test public void testGetAllThrowsNullPointerException() throws Throwable { Configuration cfg = new SubConfiguration(); SubConfiguration subConfiguration = new SubConfiguration(cfg, "testSubConfigurationPrefix"); try { subConfiguration.getAll("testSubConfigurationPropertyName"); fail("Expected NullPointerException to be thrown"); } catch (NullPointerException ex) { if (isJavaVersionAtMost(JAVA_14)) { assertNull(ex.getMessage(), "ex.getMessage()"); } else { assertEquals("Cannot invoke \"org.jpos.core.Configuration.getAll(String)\" because \"this.cfg\" is null", ex.getMessage(), "ex.getMessage()"); } assertSame(cfg, subConfiguration.cfg, "subConfiguration.cfg"); } }