### 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(PMap map);  PMap(String propertiesString); PMap put(PMap map); PMap put(String key, Object str); PMap remove(String key); boolean has(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 isEmpty(); @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 keyCannotHaveAnyCasing() { PMap subject = new PMap("foo=valueA|bar=valueB"); assertEquals("valueA", subject.get("foo", "")); assertEquals("", subject.get("Foo", "")); }