### Question:
OverridableReadOnlyPropertiesImpl implements OverridableReadOnlyProperties { @Override public String getProperty(String key) { return getProperty(key, null); } OverridableReadOnlyPropertiesImpl(Properties... propertieses);  OverridableReadOnlyPropertiesImpl(List<Properties> propertieses); @Override String getProperty(String key); @Override String getProperty(String key, String defaultValue); @Override String getRequiredProperty(String key);  }### Answer:
@Test public void getProperty_not_exists() throws Exception { assertThat(overridableReadOnlyPropertiesImpl.getProperty("key.not.exists")).isNull(); }
@Test public void getProperty_former() throws Exception { assertThat(overridableReadOnlyPropertiesImpl.getProperty("former.value")).isEqualTo(formerProperties.getProperty("former.value")); }
@Test public void getProperty_latter() throws Exception { assertThat(overridableReadOnlyPropertiesImpl.getProperty("latter.value")).isEqualTo(latterProperties.getProperty("latter.value")); }
@Test public void getProperty_overriden() throws Exception { assertThat(overridableReadOnlyPropertiesImpl.getProperty("overriden.value")).isEqualTo(latterProperties.getProperty("overriden.value")); }
@Test public void getProperty_not_exists_default() throws Exception { assertThat(overridableReadOnlyPropertiesImpl.getProperty("key.not.exists", "this is default")).isEqualTo("this is default"); }