diff options
| author | Matthias Andreas Benkard <code@mail.matthias.benkard.de> | 2024-06-23 15:48:49 +0200 | 
|---|---|---|
| committer | Matthias Andreas Benkard <code@mail.matthias.benkard.de> | 2024-06-23 15:48:49 +0200 | 
| commit | b69b3017699b960ff5133b8ec34bff786bec0f77 (patch) | |
| tree | 7f783564e62f6a8daf073500b378dc0b0105f4e5 /core/src/test | |
| parent | 4df91c9bde01c94efac9e89b8c4dfc1a3f2c14e1 (diff) | |
test: Add FormatterTest.
Change-Id: Id627819583e8c9867b3950b7d8aac6830e5f3f80
Diffstat (limited to 'core/src/test')
| -rw-r--r-- | core/src/test/java/eu/mulk/quarkus/googlecloud/jsonlogging/FormatterTest.java | 88 | 
1 files changed, 88 insertions, 0 deletions
| diff --git a/core/src/test/java/eu/mulk/quarkus/googlecloud/jsonlogging/FormatterTest.java b/core/src/test/java/eu/mulk/quarkus/googlecloud/jsonlogging/FormatterTest.java new file mode 100644 index 0000000..49cda39 --- /dev/null +++ b/core/src/test/java/eu/mulk/quarkus/googlecloud/jsonlogging/FormatterTest.java @@ -0,0 +1,88 @@ +package eu.mulk.quarkus.googlecloud.jsonlogging; + +import jakarta.json.Json; +import org.jboss.logmanager.ExtLogRecord; +import org.jboss.logmanager.Level; +import org.junit.jupiter.api.Test; + +import java.util.Collection; +import java.util.List; + +import static org.junit.jupiter.api.Assertions.assertLinesMatch; + +class FormatterTest { + +  @Test +  void simpleRecord() { +    var logRecord = new ExtLogRecord(Level.INFO, "Hello, world!", FormatterTest.class.getName()); + +    var formatter = new Formatter(List.of(), List.of()); +    var formattingResult = formatter.format(logRecord); + +    assertLinesMatch( +        List.of( +            "\\{" +                + "\"message\":\"Hello, world!\"," +                + "\"severity\":\"INFO\"," +                + "\"timestamp\":\\{\"seconds\":\\d+,\"nanos\":\\d+\\}," +                + "\"logging.googleapis.com/sourceLocation\":" +                + "\\{\"file\":\"ReflectionUtils.java\"," +                + "\"line\":\"\\d+\"," +                + "\"function\":\"org.junit.platform.commons.util.ReflectionUtils.invokeMethod\"" +                + "\\}" +                + "\\}\n"), +        List.of(formattingResult)); +  } + +  @Test +  void structuredRecord() { +    var parameterProvider = +        new StructuredParameterProvider() { +          @Override +          public StructuredParameter getParameter() { +            var b = Json.createObjectBuilder(); +            b.add("traceId", "39f9a49a9567a8bd7087b708f8932550"); +            b.add("spanId", "c7431b14630b633d"); +            return () -> b; +          } +        }; + +    var labelProvider = +        new LabelProvider() { +          @Override +          public Collection<Label> getLabels() { +            return List.of(Label.of("requestId", "123")); +          } +        }; + +    var logRecord = new ExtLogRecord(Level.INFO, "Hello, world!", FormatterTest.class.getName()); +    logRecord.setParameters( +        new Object[] { +          (StructuredParameter) +              () -> Json.createObjectBuilder().add("one", 1).add("two", 2.0).add("yes", true), +          Label.of("a", "b") +        }); + +    var formatter = new Formatter(List.of(parameterProvider), List.of(labelProvider)); +    var formattingResult = formatter.format(logRecord); +    assertLinesMatch( +        List.of( +            "\\{" +                + "\"logging.googleapis.com/labels\":\\{\"a\":\"b\",\"requestId\":\"123\"\\}," +                + "\"message\":\"Hello, world!\"," +                + "\"severity\":\"INFO\"," +                + "\"timestamp\":\\{\"seconds\":\\d+,\"nanos\":\\d+\\}," +                + "\"logging.googleapis.com/sourceLocation\":" +                + "\\{\"file\":\"ReflectionUtils.java\"," +                + "\"line\":\"\\d+\"," +                + "\"function\":\"org.junit.platform.commons.util.ReflectionUtils.invokeMethod\"" +                + "\\}," +                + "\"traceId\":\"39f9a49a9567a8bd7087b708f8932550\"," +                + "\"spanId\":\"c7431b14630b633d\"," +                + "\"one\":1," +                + "\"two\":2.0," +                + "\"yes\":true" +                + "\\}\n"), +        List.of(formattingResult)); +  } +} | 
