@Nullable
  public Object get(PropertyKey key) {
    if (mUserProps.containsKey(key)) {
      return mUserProps.get(key).orElse(null);
    }
    // In case key is not the reference to the original key
    return PropertyKey.fromString(key.toString()).getDefaultValue();
  }
@Test
  public void get() {
    assertEquals("value", mProperties.get(mKeyWithValue));
    assertEquals(null, mProperties.get(mKeyWithoutValue));
    mProperties.put(mKeyWithoutValue, "newValue1", Source.RUNTIME);
    assertEquals("newValue1", mProperties.get(mKeyWithoutValue));
  }