From 0027ee917d61f8ad2eea3e2c42dd4b7b085cf525 Mon Sep 17 00:00:00 2001 From: Vaibhav090420 Date: Thu, 16 Feb 2023 12:17:43 +0530 Subject: [PATCH 1/4] adding getBooleanAttribute method to data-model(TraceAttributeUtils) --- .../hypertrace/core/datamodel/shared/TraceAttributeUtils.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/data-model/src/main/java/org/hypertrace/core/datamodel/shared/TraceAttributeUtils.java b/data-model/src/main/java/org/hypertrace/core/datamodel/shared/TraceAttributeUtils.java index f4bcd4f..cf30096 100644 --- a/data-model/src/main/java/org/hypertrace/core/datamodel/shared/TraceAttributeUtils.java +++ b/data-model/src/main/java/org/hypertrace/core/datamodel/shared/TraceAttributeUtils.java @@ -14,6 +14,9 @@ public static boolean containsAttribute(StructuredTrace trace, String attribute) && trace.getAttributes().getAttributeMap() != null && trace.getAttributes().getAttributeMap().containsKey(attribute); } + public static boolean getBooleanAttribute(StructuredTrace trace, String attribute) { + return Boolean.parseBoolean(getStringAttribute(trace, attribute)); + } public static String getStringAttribute(StructuredTrace trace, String attribute) { if (trace.getAttributes() == null) { From 009e847512951212d5f3f7465b351a48f33ab3c5 Mon Sep 17 00:00:00 2001 From: Vaibhav090420 Date: Thu, 16 Feb 2023 12:36:11 +0530 Subject: [PATCH 2/4] added unit tests --- .../datamodel/shared/TraceAttributeUtils.java | 1 + .../shared/TraceAttributeUtilsTest.java | 30 +++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/data-model/src/main/java/org/hypertrace/core/datamodel/shared/TraceAttributeUtils.java b/data-model/src/main/java/org/hypertrace/core/datamodel/shared/TraceAttributeUtils.java index cf30096..806969a 100644 --- a/data-model/src/main/java/org/hypertrace/core/datamodel/shared/TraceAttributeUtils.java +++ b/data-model/src/main/java/org/hypertrace/core/datamodel/shared/TraceAttributeUtils.java @@ -14,6 +14,7 @@ public static boolean containsAttribute(StructuredTrace trace, String attribute) && trace.getAttributes().getAttributeMap() != null && trace.getAttributes().getAttributeMap().containsKey(attribute); } + public static boolean getBooleanAttribute(StructuredTrace trace, String attribute) { return Boolean.parseBoolean(getStringAttribute(trace, attribute)); } diff --git a/data-model/src/test/java/org/hypertrace/core/datamodel/shared/TraceAttributeUtilsTest.java b/data-model/src/test/java/org/hypertrace/core/datamodel/shared/TraceAttributeUtilsTest.java index a3a91ff..7da512b 100644 --- a/data-model/src/test/java/org/hypertrace/core/datamodel/shared/TraceAttributeUtilsTest.java +++ b/data-model/src/test/java/org/hypertrace/core/datamodel/shared/TraceAttributeUtilsTest.java @@ -1,7 +1,9 @@ package org.hypertrace.core.datamodel.shared; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -35,4 +37,32 @@ public void getListAttributeTest() { List.of("somevalue1", "somevalue2"), TraceAttributeUtils.getListAttribute(mockTrace, "someattribute")); } + + @Test + public void getStringAttributeTest() { + StructuredTrace mockTrace = mock(StructuredTrace.class); + assertNull(TraceAttributeUtils.getStringAttribute(mockTrace, "someattribute")); + + Map attributeMap = new HashMap<>(); + when(mockTrace.getAttributes()) + .thenReturn(Attributes.newBuilder().setAttributeMap(attributeMap).build()); + assertNull(TraceAttributeUtils.getStringAttribute(mockTrace, "someattribute")); + + attributeMap.put("someattribute", AttributeValue.newBuilder().setValue("somevalue").build()); + assertEquals("somevalue", TraceAttributeUtils.getStringAttribute(mockTrace, "someattribute")); + } + + @Test + public void getBooleanAttributeTest() { + StructuredTrace mockTrace = mock(StructuredTrace.class); + assertFalse(TraceAttributeUtils.getBooleanAttribute(mockTrace, "someattribute")); + + Map attributeMap = new HashMap<>(); + when(mockTrace.getAttributes()) + .thenReturn(Attributes.newBuilder().setAttributeMap(attributeMap).build()); + assertFalse(TraceAttributeUtils.getBooleanAttribute(mockTrace, "someattribute")); + + attributeMap.put("someattribute", AttributeValue.newBuilder().setValue("true").build()); + assertTrue(TraceAttributeUtils.getBooleanAttribute(mockTrace, "someattribute")); + } } From 6c027d5a712dc466afdc9c3dd8cd0f3a56fdacc0 Mon Sep 17 00:00:00 2001 From: Vaibhav090420 Date: Fri, 17 Feb 2023 11:56:41 +0530 Subject: [PATCH 3/4] unit test for xyz & empty --- .../core/datamodel/shared/TraceAttributeUtilsTest.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/data-model/src/test/java/org/hypertrace/core/datamodel/shared/TraceAttributeUtilsTest.java b/data-model/src/test/java/org/hypertrace/core/datamodel/shared/TraceAttributeUtilsTest.java index 7da512b..a3ba93a 100644 --- a/data-model/src/test/java/org/hypertrace/core/datamodel/shared/TraceAttributeUtilsTest.java +++ b/data-model/src/test/java/org/hypertrace/core/datamodel/shared/TraceAttributeUtilsTest.java @@ -64,5 +64,12 @@ public void getBooleanAttributeTest() { attributeMap.put("someattribute", AttributeValue.newBuilder().setValue("true").build()); assertTrue(TraceAttributeUtils.getBooleanAttribute(mockTrace, "someattribute")); + + attributeMap.put( + "someOtherAttribute", AttributeValue.newBuilder().setValue("xyz").build()); + assertFalse(TraceAttributeUtils.getBooleanAttribute(mockTrace, "someOtherAttribute")); + + attributeMap.put("otherAttribute", AttributeValue.newBuilder().setValue("").build()); + assertFalse(TraceAttributeUtils.getBooleanAttribute(mockTrace, "otherAttribute")); } } From 4faff2634cb23aa15a09a6c48bbc5d3a40681e3d Mon Sep 17 00:00:00 2001 From: Vaibhav090420 Date: Fri, 17 Feb 2023 12:00:11 +0530 Subject: [PATCH 4/4] spotless check --- .../core/datamodel/shared/TraceAttributeUtilsTest.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/data-model/src/test/java/org/hypertrace/core/datamodel/shared/TraceAttributeUtilsTest.java b/data-model/src/test/java/org/hypertrace/core/datamodel/shared/TraceAttributeUtilsTest.java index a3ba93a..f3def88 100644 --- a/data-model/src/test/java/org/hypertrace/core/datamodel/shared/TraceAttributeUtilsTest.java +++ b/data-model/src/test/java/org/hypertrace/core/datamodel/shared/TraceAttributeUtilsTest.java @@ -65,8 +65,7 @@ public void getBooleanAttributeTest() { attributeMap.put("someattribute", AttributeValue.newBuilder().setValue("true").build()); assertTrue(TraceAttributeUtils.getBooleanAttribute(mockTrace, "someattribute")); - attributeMap.put( - "someOtherAttribute", AttributeValue.newBuilder().setValue("xyz").build()); + attributeMap.put("someOtherAttribute", AttributeValue.newBuilder().setValue("xyz").build()); assertFalse(TraceAttributeUtils.getBooleanAttribute(mockTrace, "someOtherAttribute")); attributeMap.put("otherAttribute", AttributeValue.newBuilder().setValue("").build());