3030import java .util .logging .Level ;
3131import java .util .logging .LogRecord ;
3232
33+ import com .fasterxml .jackson .databind .JsonNode ;
34+ import com .fasterxml .jackson .databind .ObjectMapper ;
3335import org .junit .jupiter .api .BeforeEach ;
3436import org .junit .jupiter .api .Test ;
3537
@@ -38,76 +40,69 @@ public class EcsFormatterTest {
3840 private final EcsFormatter formatter = new EcsFormatter ();
3941
4042 private final LogRecord record = new LogRecord (Level .INFO , "Example Meesage" );
43+ private final ObjectMapper objectMapper = new ObjectMapper ();
4144
42- @ Test
43- public void testFormatWithIncludeOriginFlag () {
45+ @ BeforeEach
46+ void setUp () {
47+ record .setInstant (Instant .ofEpochMilli (5 ));
48+ record .setSourceClassName ("ExampleClass" );
49+ record .setSourceMethodName ("exampleMethod" );
50+ record .setThreadID (7 );
51+ record .setLoggerName ("ExampleLogger" );
52+ }
4453
54+ @ Test
55+ public void testFormatWithIncludeOriginFlag () throws Exception {
4556 formatter .setIncludeOrigin (true );
4657
4758 final String result = formatter .format (record );
4859
49- assertThat (result ).isEqualTo (
50- "{ \" @timestamp \" : \" 1970-01-01T00:00:00.005Z \" , \" log.level \" : \" INFO \" , \" message \" : \" Example Meesage \" , \" process.thread.id \" :7, \" log.logger \" : \" ExampleLogger \" , \" log. origin\" :{ \" file.name \" : \" ExampleClass.java \" , \" function \" : \" exampleMethod\" }} \n " );
60+ assertThat (objectMapper . readTree ( result ).get ( "log.origin" ). get ( "file.name" ). textValue ()). isEqualTo ("ExampleClass.java" );
61+ assertThat ( objectMapper . readTree ( result ). get ( " log.origin" ). get ( "function" ). textValue ()). isEqualTo ( " exampleMethod" );
5162 }
5263
5364 @ Test
54- public void testFormatWithoutIncludeOriginFlag () {
55-
56- final String result = formatter .format (record );
57-
58- assertThat (result ).isEqualTo (
59- "{\" @timestamp\" :\" 1970-01-01T00:00:00.005Z\" , \" log.level\" : \" INFO\" , \" message\" :\" Example Meesage\" , \" process.thread.id\" :7,\" log.logger\" :\" ExampleLogger\" }\n " );
65+ public void testFormatWithoutIncludeOriginFlag () throws Exception {
66+ final JsonNode result = objectMapper .readTree (formatter .format (record ));
67+ assertThat (result .get ("log.origin" )).isNull ();
6068 }
6169
6270 @ Test
63- public void testFormatWithoutLoggerName () {
71+ public void testFormatWithoutLoggerName () throws Exception {
6472 record .setLoggerName (null );
6573
66- final String result = formatter .format (record );
74+ final JsonNode result = objectMapper . readTree ( formatter .format (record ) );
6775
68- assertThat (result ).isEqualTo (
69- "{\" @timestamp\" :\" 1970-01-01T00:00:00.005Z\" , \" log.level\" : \" INFO\" , \" message\" :\" Example Meesage\" , \" process.thread.id\" :7}\n " );
76+ assertThat (result .get ("log.logger" )).isNull ();
7077 }
7178
7279 @ Test
73- public void testFormatWithEmptyLoggerName () {
80+ public void testFormatWithEmptyLoggerName () throws Exception {
7481 record .setLoggerName ("" );
7582
76- final String result = formatter .format (record );
83+ final JsonNode result = objectMapper . readTree ( formatter .format (record ) );
7784
78- assertThat (result ).isEqualTo (
79- "{\" @timestamp\" :\" 1970-01-01T00:00:00.005Z\" , \" log.level\" : \" INFO\" , \" message\" :\" Example Meesage\" , \" process.thread.id\" :7,\" log.logger\" :\" \" }\n " );
85+ assertThat (result .get ("log.logger" ).textValue ()).isEmpty ();
8086 }
8187
8288 @ Test
83- public void testFormatWithInnerClassName () {
89+ public void testFormatWithInnerClassName () throws Exception {
8490 formatter .setIncludeOrigin (true );
8591 record .setSourceClassName ("test.ExampleClass$InnerClass" );
8692
87- final String result = formatter .format (record );
88-
89- assertThat (result ).isEqualTo (
90- "{\" @timestamp\" :\" 1970-01-01T00:00:00.005Z\" , \" log.level\" : \" INFO\" , \" message\" :\" Example Meesage\" , \" process.thread.id\" :7,\" log.logger\" :\" ExampleLogger\" ,\" log.origin\" :{\" file.name\" :\" ExampleClass.java\" ,\" function\" :\" exampleMethod\" }}\n " );
93+ JsonNode result = objectMapper .readTree (formatter .format (record ));
94+ assertThat (result .get ("log.origin" ).get ("file.name" ).textValue ()).isEqualTo ("ExampleClass.java" );
95+ assertThat (result .get ("log.origin" ).get ("function" ).textValue ()).isEqualTo ("exampleMethod" );
9196 }
9297
9398 @ Test
94- public void testFormatWithInvalidClassName () {
99+ public void testFormatWithInvalidClassName () throws Exception {
95100 formatter .setIncludeOrigin (true );
96101 record .setSourceClassName ("$test.ExampleClass" );
97102
98- final String result = formatter .format (record );
99-
100- assertThat (result ).isEqualTo (
101- "{\" @timestamp\" :\" 1970-01-01T00:00:00.005Z\" , \" log.level\" : \" INFO\" , \" message\" :\" Example Meesage\" , \" process.thread.id\" :7,\" log.logger\" :\" ExampleLogger\" ,\" log.origin\" :{\" file.name\" :\" <Unknown>\" ,\" function\" :\" exampleMethod\" }}\n " );
102- }
103-
104- @ BeforeEach
105- void setUp () {
106- record .setInstant (Instant .ofEpochMilli (5 ));
107- record .setSourceClassName ("ExampleClass" );
108- record .setSourceMethodName ("exampleMethod" );
109- record .setThreadID (7 );
110- record .setLoggerName ("ExampleLogger" );
103+ JsonNode result = objectMapper .readTree (formatter .format (record ));
104+ assertThat (result .get ("log.origin" ).get ("file.name" ).textValue ()).isEqualTo ("<Unknown>" );
105+ assertThat (result .get ("log.origin" ).get ("function" ).textValue ()).isEqualTo ("exampleMethod" );
111106 }
112107
113108}
0 commit comments