use of org.hypertrace.core.datamodel.Entity in project hypertrace-ingester by hypertrace.
the class GraphBuilderUtilTest method testIsStructuredTraceChangedForSizeCondition.
@Test
public void testIsStructuredTraceChangedForSizeCondition() {
Entity entity = mock(Entity.class);
Event parent = mock(Event.class);
Event child = mock(Event.class);
Edge eventEdge = mock(Edge.class);
// same size
StructuredTrace cachedTrace = mock(StructuredTrace.class);
when(cachedTrace.getCustomerId()).thenReturn("__defaultTenant");
when(cachedTrace.getTraceId()).thenReturn(ByteBuffer.wrap("2ebbc19b6428510f".getBytes()));
when(cachedTrace.getEntityList()).thenReturn(List.of(entity));
when(cachedTrace.getEventList()).thenReturn(List.of(parent, child));
when(cachedTrace.getEntityEdgeList()).thenReturn(List.of());
when(cachedTrace.getEntityEventEdgeList()).thenReturn(List.of());
when(cachedTrace.getEventEdgeList()).thenReturn(List.of(eventEdge));
StructuredTrace underTestTrace = mock(StructuredTrace.class);
when(underTestTrace.getCustomerId()).thenReturn("__defaultTenant");
when(underTestTrace.getTraceId()).thenReturn(ByteBuffer.wrap("2ebbc19b6428510f".getBytes()));
when(underTestTrace.getEntityList()).thenReturn(List.of(entity));
when(underTestTrace.getEventList()).thenReturn(List.of(parent, child));
when(underTestTrace.getEntityEdgeList()).thenReturn(List.of());
when(underTestTrace.getEntityEventEdgeList()).thenReturn(List.of());
when(underTestTrace.getEventEdgeList()).thenReturn(List.of(eventEdge));
boolean result = GraphBuilderUtil.isStructuredTraceChanged(cachedTrace, underTestTrace);
Assertions.assertFalse(result);
}
use of org.hypertrace.core.datamodel.Entity in project hypertrace-ingester by hypertrace.
the class StructuredTraceGraphBuilderTest method testBuildGraph.
@Test
void testBuildGraph() {
Entity entity = mock(Entity.class);
Event parent = mock(Event.class);
Event child = mock(Event.class);
Edge eventEdge = mock(Edge.class);
StructuredTrace underTestTrace = mock(StructuredTrace.class);
when(underTestTrace.getCustomerId()).thenReturn("__defaultTenant");
when(underTestTrace.getTraceId()).thenReturn(ByteBuffer.wrap("2ebbc19b6428510f".getBytes()));
when(underTestTrace.getEntityList()).thenReturn(List.of(entity));
when(underTestTrace.getEventList()).thenReturn(List.of(parent, child));
when(underTestTrace.getEntityEdgeList()).thenReturn(List.of());
when(underTestTrace.getEntityEventEdgeList()).thenReturn(List.of());
when(underTestTrace.getEventEdgeList()).thenReturn(List.of(eventEdge));
try (MockedStatic<StructuredTrace> builderMockedStatic = mockStatic(StructuredTrace.class)) {
StructuredTrace.Builder builder = mock(StructuredTrace.Builder.class);
when(builder.build()).thenReturn(underTestTrace);
builderMockedStatic.when(() -> StructuredTrace.newBuilder(underTestTrace)).thenReturn(builder);
try (MockedConstruction<StructuredTraceGraph> mocked = mockConstruction(StructuredTraceGraph.class)) {
// calls first time
StructuredTraceGraph actual = StructuredTraceGraphBuilder.buildGraph(underTestTrace);
// calls second time, this time it returns from cache
StructuredTraceGraph cached = StructuredTraceGraphBuilder.buildGraph(underTestTrace);
Assertions.assertEquals(actual, cached);
}
}
}
use of org.hypertrace.core.datamodel.Entity in project hypertrace-ingester by hypertrace.
the class AvroEntityConverterTest method convertsPrimitives.
@Test
void convertsPrimitives() {
org.hypertrace.entity.data.service.v1.Entity inputEntity = BASIC_ENTITY.toBuilder().putAttributes("string", stringAttributeValue("string-value")).putAttributes("long", longAttributeValue(42)).putAttributes("double", doubleAttributeValue(10.2)).putAttributes("boolean", booleanAttributeValue(true)).build();
Entity expectedAvroEntity = Entity.newBuilder(BASIC_AVRO_ENTITY).setAttributesBuilder(Attributes.newBuilder().setAttributeMap(Map.of("string", buildAttributeValue("string-value"), "long", buildAttributeValue("42"), "double", buildAttributeValue("10.2"), "boolean", buildAttributeValue("true")))).build();
assertEquals(expectedAvroEntity, convertToAvroEntity(TENANT_ID, inputEntity).blockingGet());
}
use of org.hypertrace.core.datamodel.Entity in project hypertrace-ingester by hypertrace.
the class EntityAvroConverterTest method testListOfListsNotConverted.
@Test
public void testListOfListsNotConverted() {
org.hypertrace.entity.data.service.v1.Entity entity = org.hypertrace.entity.data.service.v1.Entity.newBuilder().setEntityId("entity-id").setEntityName("entity-name").setEntityType("entity-type").setTenantId("entity-tenant-id").putAllAttributes(Map.of("attr1", org.hypertrace.entity.data.service.v1.AttributeValue.newBuilder().setValueList(AttributeValueList.newBuilder().addValues(org.hypertrace.entity.data.service.v1.AttributeValue.newBuilder().setValueList(AttributeValueList.newBuilder().addValues(org.hypertrace.entity.data.service.v1.AttributeValue.newBuilder().setValue(Value.newBuilder().setString("l1"))).addValues(org.hypertrace.entity.data.service.v1.AttributeValue.newBuilder().setValue(Value.newBuilder().setString("l2"))).addValues(org.hypertrace.entity.data.service.v1.AttributeValue.newBuilder().setValue(Value.newBuilder().setString("l3"))))).build()).build())).build();
Entity avroEntity1 = EntityAvroConverter.convertToAvroEntity(entity, true);
assertEquals(Entity.newBuilder().setEntityId("entity-id").setEntityName("entity-name").setEntityType("entity-type").setCustomerId("entity-tenant-id").setAttributesBuilder(Attributes.newBuilder().setAttributeMap(Map.of())).build(), avroEntity1);
}
use of org.hypertrace.core.datamodel.Entity in project hypertrace-ingester by hypertrace.
the class EntityAvroConverterTest method testConvertToAvroEntity.
@Test
public void testConvertToAvroEntity() {
Map<String, org.hypertrace.entity.data.service.v1.AttributeValue> attributeValueMap = new HashMap<>();
attributeValueMap.put("attr1", org.hypertrace.entity.data.service.v1.AttributeValue.newBuilder().setValue(Value.newBuilder().setString("v1")).build());
attributeValueMap.put("attr2", org.hypertrace.entity.data.service.v1.AttributeValue.newBuilder().setValue(Value.newBuilder().setBoolean(true)).build());
attributeValueMap.put("attr3", org.hypertrace.entity.data.service.v1.AttributeValue.newBuilder().setValue(Value.newBuilder().setInt(23)).build());
attributeValueMap.put("attr4", org.hypertrace.entity.data.service.v1.AttributeValue.newBuilder().setValueList(AttributeValueList.newBuilder().addValues(org.hypertrace.entity.data.service.v1.AttributeValue.newBuilder().setValue(Value.newBuilder().setString("l1"))).addValues(org.hypertrace.entity.data.service.v1.AttributeValue.newBuilder().setValue(Value.newBuilder().setString("l2"))).addValues(org.hypertrace.entity.data.service.v1.AttributeValue.newBuilder().setValue(Value.newBuilder().setString("l3"))).addValues(org.hypertrace.entity.data.service.v1.AttributeValue.newBuilder().setValue(Value.newBuilder().setBytes(ByteString.copyFrom("l4".getBytes()))))).build());
attributeValueMap.put("attr5", org.hypertrace.entity.data.service.v1.AttributeValue.newBuilder().setValue(Value.newBuilder().setBytes(ByteString.copyFrom("test-bytes".getBytes()))).build());
attributeValueMap.put("attr6", org.hypertrace.entity.data.service.v1.AttributeValue.newBuilder().setValue(Value.newBuilder().setDouble(33.0)).build());
attributeValueMap.put("attr7", org.hypertrace.entity.data.service.v1.AttributeValue.newBuilder().setValue(Value.newBuilder().setFloat(18.0f)).build());
attributeValueMap.put("attr8", org.hypertrace.entity.data.service.v1.AttributeValue.newBuilder().setValue(Value.newBuilder().setTimestamp(46)).build());
attributeValueMap.put("attr9", org.hypertrace.entity.data.service.v1.AttributeValue.newBuilder().setValue(Value.newBuilder()).build());
attributeValueMap.put("attr10", org.hypertrace.entity.data.service.v1.AttributeValue.newBuilder().setValueMap(AttributeValueMap.newBuilder().putAllValues(Map.of("k1", org.hypertrace.entity.data.service.v1.AttributeValue.newBuilder().setValue(Value.newBuilder().setString("v11")).build(), "k2", org.hypertrace.entity.data.service.v1.AttributeValue.newBuilder().setValue(Value.newBuilder().setString("v12")).build()))).build());
attributeValueMap.put("attr11", org.hypertrace.entity.data.service.v1.AttributeValue.newBuilder().setValue(Value.newBuilder().setLong(37)).build());
org.hypertrace.entity.data.service.v1.Entity entity = org.hypertrace.entity.data.service.v1.Entity.newBuilder().setEntityId("entity-id").setEntityName("entity-name").setEntityType("entity-type").setTenantId("entity-tenant-id").putAllAttributes(attributeValueMap).build();
Entity avroEntity1 = EntityAvroConverter.convertToAvroEntity(entity, false);
assertEquals(Entity.newBuilder().setEntityId("entity-id").setEntityName("entity-name").setEntityType("entity-type").setCustomerId("entity-tenant-id").build(), avroEntity1);
Entity avroEntity2 = EntityAvroConverter.convertToAvroEntity(entity, true);
assertEquals(Entity.newBuilder().setEntityId("entity-id").setEntityName("entity-name").setEntityType("entity-type").setCustomerId("entity-tenant-id").setAttributesBuilder(Attributes.newBuilder().setAttributeMap(Map.of("attr1", AttributeValue.newBuilder().setValue("v1").build(), "attr2", AttributeValue.newBuilder().setValue("true").build(), "attr3", AttributeValue.newBuilder().setValue("23").build(), "attr4", AttributeValue.newBuilder().setValueList(List.of("l1", "l2", "l3", HexUtils.getHex("l4".getBytes()))).build(), "attr5", AttributeValue.newBuilder().setBinaryValue(ByteBuffer.wrap("test-bytes".getBytes())).build(), "attr6", AttributeValue.newBuilder().setValue("33.0").build(), "attr7", AttributeValue.newBuilder().setValue("18.0").build(), "attr8", AttributeValue.newBuilder().setValue("46").build(), "attr11", AttributeValue.newBuilder().setValue("37").build()))).build(), avroEntity2);
}
Aggregations