diff --git a/src/main/java/dev/openfeature/sdk/FlagMetadata.java b/src/main/java/dev/openfeature/sdk/FlagMetadata.java index e9b6ccb6..7cd91f8d 100644 --- a/src/main/java/dev/openfeature/sdk/FlagMetadata.java +++ b/src/main/java/dev/openfeature/sdk/FlagMetadata.java @@ -77,7 +77,10 @@ public class FlagMetadata { return getValue(key, Boolean.class); } - private T getValue(final String key, final Class type) { + /** + * Generic value retrieval for the given key. + */ + public T getValue(final String key, final Class type) { final Object o = metadata.get(key); if (o == null) { diff --git a/src/test/java/dev/openfeature/sdk/FlagMetadataTest.java b/src/test/java/dev/openfeature/sdk/FlagMetadataTest.java index b52eb6de..8f96e610 100644 --- a/src/test/java/dev/openfeature/sdk/FlagMetadataTest.java +++ b/src/test/java/dev/openfeature/sdk/FlagMetadataTest.java @@ -22,11 +22,22 @@ class FlagMetadataTest { // then assertThat(flagMetadata.getString("string")).isEqualTo("string"); + assertThat(flagMetadata.getValue("string", String.class)).isEqualTo("string"); + assertThat(flagMetadata.getInteger("integer")).isEqualTo(1); + assertThat(flagMetadata.getValue("integer", Integer.class)).isEqualTo(1); + assertThat(flagMetadata.getLong("long")).isEqualTo(1L); + assertThat(flagMetadata.getValue("long", Long.class)).isEqualTo(1L); + assertThat(flagMetadata.getFloat("float")).isEqualTo(1.5f); + assertThat(flagMetadata.getValue("float", Float.class)).isEqualTo(1.5f); + assertThat(flagMetadata.getDouble("double")).isEqualTo(Double.MAX_VALUE); + assertThat(flagMetadata.getValue("double", Double.class)).isEqualTo(Double.MAX_VALUE); + assertThat(flagMetadata.getBoolean("boolean")).isEqualTo(Boolean.FALSE); + assertThat(flagMetadata.getValue("boolean", Boolean.class)).isEqualTo(Boolean.FALSE); } @Test @@ -38,7 +49,7 @@ class FlagMetadataTest { .build(); // then - assertThat(flagMetadata.getBoolean("string")).isNull(); + assertThat(flagMetadata.getBoolean("string")).isNull(); } @Test