From 93dde1d259e86b00db701a753b84ad2c253e21ec Mon Sep 17 00:00:00 2001 From: Kavindu Dodanduwa Date: Fri, 9 Jun 2023 07:57:08 -0700 Subject: [PATCH] chore: expose get value for metadata (#468) expose get value for metadata Signed-off-by: Kavindu Dodanduwa Co-authored-by: Justin Abrahms --- src/main/java/dev/openfeature/sdk/FlagMetadata.java | 5 ++++- .../java/dev/openfeature/sdk/FlagMetadataTest.java | 13 ++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) 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 Boolean getBoolean(final String key) { 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 @@ public void builder_validation() { // 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 @@ public void value_type_validation() { .build(); // then - assertThat(flagMetadata.getBoolean("string")).isNull(); + assertThat(flagMetadata.getBoolean("string")).isNull(); } @Test