Search in sources :

Example 1 with Entity

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);
}
Also used : Entity(org.hypertrace.core.datamodel.Entity) StructuredTrace(org.hypertrace.core.datamodel.StructuredTrace) Event(org.hypertrace.core.datamodel.Event) Edge(org.hypertrace.core.datamodel.Edge) Test(org.junit.jupiter.api.Test)

Example 2 with Entity

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);
        }
    }
}
Also used : Entity(org.hypertrace.core.datamodel.Entity) StructuredTrace(org.hypertrace.core.datamodel.StructuredTrace) Event(org.hypertrace.core.datamodel.Event) StructuredTraceGraph(org.hypertrace.core.datamodel.shared.StructuredTraceGraph) Edge(org.hypertrace.core.datamodel.Edge) Test(org.junit.jupiter.api.Test)

Example 3 with Entity

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());
}
Also used : AvroEntityConverter.convertToAvroEntity(org.hypertrace.trace.accessor.entities.AvroEntityConverter.convertToAvroEntity) Entity(org.hypertrace.core.datamodel.Entity) Test(org.junit.jupiter.api.Test)

Example 4 with Entity

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);
}
Also used : Entity(org.hypertrace.core.datamodel.Entity) Test(org.junit.jupiter.api.Test)

Example 5 with Entity

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);
}
Also used : Entity(org.hypertrace.core.datamodel.Entity) AttributeValue(org.hypertrace.core.datamodel.AttributeValue) HashMap(java.util.HashMap) ByteString(com.google.protobuf.ByteString) Test(org.junit.jupiter.api.Test)

Aggregations

Entity (org.hypertrace.core.datamodel.Entity)12 Test (org.junit.jupiter.api.Test)10 Event (org.hypertrace.core.datamodel.Event)7 Edge (org.hypertrace.core.datamodel.Edge)6 StructuredTrace (org.hypertrace.core.datamodel.StructuredTrace)5 AvroEntityConverter.convertToAvroEntity (org.hypertrace.trace.accessor.entities.AvroEntityConverter.convertToAvroEntity)3 ByteString (com.google.protobuf.ByteString)1 ByteBuffer (java.nio.ByteBuffer)1 HashMap (java.util.HashMap)1 List (java.util.List)1 AttributeValue (org.hypertrace.core.datamodel.AttributeValue)1 StructuredTraceGraph (org.hypertrace.core.datamodel.shared.StructuredTraceGraph)1 TraceState (org.hypertrace.viewgenerator.generators.ViewGeneratorState.TraceState)1