### Question:
SubConfiguration implements Configuration { public Object getObject (String propertyName) throws ConfigurationException{ try{ Object ret = Class.forName (get (propertyName)).newInstance(); if(ret instanceof Configurable) ((Configurable)ret).setConfiguration(this); return ret; } catch (Exception e){ throw new ConfigurationException ("Error trying to create an " + "object from property " + prefix + propertyName, e ); } } 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 testGetObjectThrowsConfigurationException() throws Throwable { Configuration cfg = new SubConfiguration(); SubConfiguration subConfiguration = new SubConfiguration(cfg, "testSubConfigurationPrefix"); try { subConfiguration.getObject("testSubConfigurationPropertyName"); fail("Expected ConfigurationException to be thrown"); } catch (ConfigurationException ex) { assertEquals( "Error trying to create an object from property testSubConfigurationPrefixtestSubConfigurationPropertyName", ex.getMessage(), "ex.getMessage()"); if (isJavaVersionAtMost(JAVA_14)) { assertNull(ex.getNested().getMessage(), "ex.getNested().getMessage()"); } else { assertEquals("Cannot invoke \"org.jpos.core.Configuration.get(String)\" because \"this.cfg\" is null", ex.getNested().getMessage(), "ex.getNested().getMessage()"); } assertSame(cfg, subConfiguration.cfg, "subConfiguration.cfg"); } }