### Question:
PropertyConfiguration { @NotNull public <T> Optional<T> getValueOrEmpty(@NotNull final NullableProperty<T> property) { assertPropertyNotNull(property); try { return getValue(property); } catch (final InvalidPropertyException e) { return Optional.empty(); } } PropertyConfiguration(@NotNull final List<PropertySource> orderedPropertySources); @NotNull Optional<T> getValueOrEmpty(@NotNull final NullableProperty<T> property); @NotNull T getValueOrDefault(@NotNull final ValuedProperty<T> property); @NotNull Optional<T> getValue(@NotNull final NullableProperty<T> property); @NotNull T getValue(@NotNull final ValuedProperty<T> property); boolean wasKeyProvided(@NotNull final String key); boolean wasPropertyProvided(@NotNull final TypedProperty<T> property); Optional<String> getPropertySource(@NotNull final Property property); Optional<String> getPropertyOrigin(@NotNull final Property property); @NotNull Set<String> getKeys(); Optional<ValueParseException> getPropertyException(@NotNull final TypedProperty<T> property); Optional<String> getRaw(@NotNull final Property property); @NotNull Map<String, String> getRaw(); @NotNull Map<String, String> getRaw(@NotNull final Set<String> keys); @NotNull Map<String, String> getRaw(@NotNull final Predicate<String> predicate); @NotNull Map<String, String> getRaw(@NotNull final PassthroughProperty property);  }### Answer:
@Test public void getValueOrNull() { final NullableProperty<String> nullableProperty = new NullableTestProperty("example.key"); Assertions.assertEquals(Optional.empty(), configOf(Pair.of(nullableProperty.getKey(), UNKNOWN_VALUE)).getValueOrEmpty(nullableProperty), "An unknown value should fail to parse and the config should provide null."); }