### Question:
CommentedProperties extends Properties { @Override public synchronized String toString() { return m_propertyString; } CommentedProperties();  CommentedProperties( Properties defaultValues ); @Override synchronized void load( InputStream inStream ); @Override synchronized void load( Reader in ); @Override synchronized Object setProperty( String key, String value ); @Override synchronized void store( OutputStream out, String comments ); @Override synchronized Object put( Object arg0, Object arg1 ); @Override synchronized void putAll( Map< ? , ? > arg0 ); @Override synchronized Object remove( Object key ); @Override synchronized String toString();  }### Answer:
@Test public void testLoadProperties() { Assertions.assertEquals( 5, m_props.keySet().size() ); Assertions.assertEquals( "Foo", m_props.get( "testProp1" ) ); Assertions.assertEquals( "Bar", m_props.get( "testProp2" ) ); Assertions.assertEquals( "", m_props.get( "testProp3" ) ); Assertions.assertEquals( "FooAgain", m_props.get( "testProp4" ) ); Assertions.assertEquals( "BarAgain", m_props.get( "testProp5" ) ); Assertions.assertNull( m_props.get( "testProp6" ) ); Assertions.assertEquals( m_propFileSize, m_props.toString().length() ); }