### Question:
PMap { public String get( String key, String _default ) { String str = get(key); if (Helper.isEmpty(str)) { return _default; } return str; } PMap();  PMap( int capacity );  PMap( Map<String, String> map );  PMap( String propertiesString ); PMap put( PMap map ); PMap put( String key, Object str ); PMap remove( String key ); long getLong( String key, long _default ); int getInt( String key, int _default ); boolean getBool( String key, boolean _default ); double getDouble( String key, double _default ); String get( String key, String _default ); Map<String, String> toMap(); PMap merge( PMap read ); boolean has( String key ); @Override String toString();  }### Answer:
@Test public void singleStringPropertyCanBeRetrieved() { PMap subject = new PMap("foo=bar"); Assert.assertEquals("bar", subject.get("foo")); }
@Test public void propertyFromStringWithMultiplePropertiesCanBeRetrieved() { PMap subject = new PMap("foo=valueA|bar=valueB"); Assert.assertEquals("valueA", subject.get("foo", "")); Assert.assertEquals("valueB", subject.get("bar", "")); }
@Test public void keyCanHaveAnyCasing() { PMap subject = new PMap("foo=valueA|bar=valueB"); assertEquals("valueA", subject.get("foo", "")); assertEquals("valueA", subject.get("FOO", "")); assertEquals("valueA", subject.get("Foo", "")); }