@Test
void testTypedVariableFromJsonNode() throws JsonProcessingException {

    ObjectReader reader = new ObjectMapper().reader();
    TypedValue value = EventUtils.typedValueFromJsonNode(null, null);
    assertNotNull(value);
    assertSame(TypedValue.Kind.UNIT, value.getKind());
    assertEquals(BuiltInType.UNKNOWN.getName(), value.getType());
    value = EventUtils.typedValueFromJsonNode(reader.readTree("true"), null);
    assertNotNull(value);
    assertSame(TypedValue.Kind.UNIT, value.getKind());
    assertEquals(BuiltInType.BOOLEAN.getName(), value.getType());
    value = EventUtils.typedValueFromJsonNode(reader.readTree("12"), null);
    assertNotNull(value);
    assertSame(TypedValue.Kind.UNIT, value.getKind());
    assertEquals(BuiltInType.NUMBER.getName(), value.getType());
    value = EventUtils.typedValueFromJsonNode(reader.readTree("\"test\""), null);
    assertNotNull(value);
    assertSame(TypedValue.Kind.UNIT, value.getKind());
    assertEquals(BuiltInType.STRING.getName(), value.getType());
    value = EventUtils.typedValueFromJsonNode(reader.readTree("[1,2,3]"), null);
    assertNotNull(value);
    assertSame(TypedValue.Kind.COLLECTION, value.getKind());
    assertEquals(BuiltInType.LIST.getName(), value.getType());
    value = EventUtils.typedValueFromJsonNode(reader.readTree("{\"name\": \"John\", \"age\": 45, \"married\": true}"), null);
    assertNotNull(value);
    assertSame(TypedValue.Kind.STRUCTURE, value.getKind());
    assertEquals(BuiltInType.UNKNOWN.getName(), value.getType());
}