Skip to content

Commit fc8737a

Browse files
adding getBooleanAttribute method to data-model(TraceAttributeUtils) (#42)
* adding getBooleanAttribute method to data-model(TraceAttributeUtils) * added unit tests * unit test for xyz & empty * spotless check
1 parent 4c4ca17 commit fc8737a

File tree

2 files changed

+40
-0
lines changed

2 files changed

+40
-0
lines changed

data-model/src/main/java/org/hypertrace/core/datamodel/shared/TraceAttributeUtils.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@ public static boolean containsAttribute(StructuredTrace trace, String attribute)
1515
&& trace.getAttributes().getAttributeMap().containsKey(attribute);
1616
}
1717

18+
public static boolean getBooleanAttribute(StructuredTrace trace, String attribute) {
19+
return Boolean.parseBoolean(getStringAttribute(trace, attribute));
20+
}
21+
1822
public static String getStringAttribute(StructuredTrace trace, String attribute) {
1923
if (trace.getAttributes() == null) {
2024
return null;

data-model/src/test/java/org/hypertrace/core/datamodel/shared/TraceAttributeUtilsTest.java

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
package org.hypertrace.core.datamodel.shared;
22

33
import static org.junit.jupiter.api.Assertions.assertEquals;
4+
import static org.junit.jupiter.api.Assertions.assertFalse;
45
import static org.junit.jupiter.api.Assertions.assertNull;
6+
import static org.junit.jupiter.api.Assertions.assertTrue;
57
import static org.mockito.Mockito.mock;
68
import static org.mockito.Mockito.when;
79

@@ -35,4 +37,38 @@ public void getListAttributeTest() {
3537
List.of("somevalue1", "somevalue2"),
3638
TraceAttributeUtils.getListAttribute(mockTrace, "someattribute"));
3739
}
40+
41+
@Test
42+
public void getStringAttributeTest() {
43+
StructuredTrace mockTrace = mock(StructuredTrace.class);
44+
assertNull(TraceAttributeUtils.getStringAttribute(mockTrace, "someattribute"));
45+
46+
Map<String, AttributeValue> attributeMap = new HashMap<>();
47+
when(mockTrace.getAttributes())
48+
.thenReturn(Attributes.newBuilder().setAttributeMap(attributeMap).build());
49+
assertNull(TraceAttributeUtils.getStringAttribute(mockTrace, "someattribute"));
50+
51+
attributeMap.put("someattribute", AttributeValue.newBuilder().setValue("somevalue").build());
52+
assertEquals("somevalue", TraceAttributeUtils.getStringAttribute(mockTrace, "someattribute"));
53+
}
54+
55+
@Test
56+
public void getBooleanAttributeTest() {
57+
StructuredTrace mockTrace = mock(StructuredTrace.class);
58+
assertFalse(TraceAttributeUtils.getBooleanAttribute(mockTrace, "someattribute"));
59+
60+
Map<String, AttributeValue> attributeMap = new HashMap<>();
61+
when(mockTrace.getAttributes())
62+
.thenReturn(Attributes.newBuilder().setAttributeMap(attributeMap).build());
63+
assertFalse(TraceAttributeUtils.getBooleanAttribute(mockTrace, "someattribute"));
64+
65+
attributeMap.put("someattribute", AttributeValue.newBuilder().setValue("true").build());
66+
assertTrue(TraceAttributeUtils.getBooleanAttribute(mockTrace, "someattribute"));
67+
68+
attributeMap.put("someOtherAttribute", AttributeValue.newBuilder().setValue("xyz").build());
69+
assertFalse(TraceAttributeUtils.getBooleanAttribute(mockTrace, "someOtherAttribute"));
70+
71+
attributeMap.put("otherAttribute", AttributeValue.newBuilder().setValue("").build());
72+
assertFalse(TraceAttributeUtils.getBooleanAttribute(mockTrace, "otherAttribute"));
73+
}
3874
}

0 commit comments

Comments
 (0)