You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by vy...@apache.org on 2021/07/09 13:38:07 UTC
[logging-log4j2] 03/05: Consolidate MessageResolver tests.
This is an automated email from the ASF dual-hosted git repository.
vy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
commit 4285d94a5703db75e22737af5f9a81043237cb4a
Author: Volkan Yazici <vo...@gmail.com>
AuthorDate: Wed Jul 7 10:55:45 2021 +0200
Consolidate MessageResolver tests.
---
.../template/json/JsonTemplateLayoutTest.java | 163 +--------------------
.../json/resolver/MessageResolverTest.java | 158 ++++++++++++++++++++
2 files changed, 159 insertions(+), 162 deletions(-)
diff --git a/log4j-layout-template-json/src/test/java/org/apache/logging/log4j/layout/template/json/JsonTemplateLayoutTest.java b/log4j-layout-template-json/src/test/java/org/apache/logging/log4j/layout/template/json/JsonTemplateLayoutTest.java
index b2ae188..1a55237 100644
--- a/log4j-layout-template-json/src/test/java/org/apache/logging/log4j/layout/template/json/JsonTemplateLayoutTest.java
+++ b/log4j-layout-template-json/src/test/java/org/apache/logging/log4j/layout/template/json/JsonTemplateLayoutTest.java
@@ -72,7 +72,6 @@ import java.time.temporal.TemporalAccessor;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
-import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ArrayBlockingQueue;
@@ -82,10 +81,7 @@ import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
-import static org.apache.logging.log4j.layout.template.json.TestHelpers.CONFIGURATION;
-import static org.apache.logging.log4j.layout.template.json.TestHelpers.asMap;
-import static org.apache.logging.log4j.layout.template.json.TestHelpers.usingSerializedLogEventAccessor;
-import static org.apache.logging.log4j.layout.template.json.TestHelpers.writeJson;
+import static org.apache.logging.log4j.layout.template.json.TestHelpers.*;
import static org.assertj.core.api.Assertions.assertThat;
@SuppressWarnings("DoubleBraceInitialization")
@@ -293,91 +289,6 @@ class JsonTemplateLayoutTest {
}
@Test
- void test_MapMessage_serialization() {
-
- // Create the event template.
- final String eventTemplate = writeJson(asMap(
- "message", asMap("$resolver", "message")));
-
- // Create the layout.
- final JsonTemplateLayout layout = JsonTemplateLayout
- .newBuilder()
- .setConfiguration(CONFIGURATION)
- .setEventTemplate(eventTemplate)
- .build();
-
- // Create the log event with a MapMessage.
- final StringMapMessage mapMessage = new StringMapMessage()
- .with("key1", "val1")
- .with("key2", 0xDEADBEEF)
- .with("key3", Collections.singletonMap("key3.1", "val3.1"));
- final LogEvent logEvent = Log4jLogEvent
- .newBuilder()
- .setLoggerName(LOGGER_NAME)
- .setLevel(Level.INFO)
- .setMessage(mapMessage)
- .setTimeMillis(System.currentTimeMillis())
- .build();
-
- // Check the serialized event.
- usingSerializedLogEventAccessor(layout, logEvent, accessor -> {
- assertThat(accessor.getString(new String[]{"message", "key1"})).isEqualTo("val1");
- assertThat(accessor.getInteger(new String[]{"message", "key2"})).isEqualTo(0xDEADBEEF);
- assertThat(accessor.getString(new String[]{"message", "key3", "key3.1"})).isEqualTo("val3.1");
- });
-
- }
-
- @Test
- void test_message_fallbackKey() {
-
- // Create the event template.
- final String eventTemplate = writeJson(asMap(
- "message", asMap(
- "$resolver", "message",
- "fallbackKey", "formattedMessage")));
-
- // Create the layout.
- final JsonTemplateLayout layout = JsonTemplateLayout
- .newBuilder()
- .setConfiguration(CONFIGURATION)
- .setEventTemplate(eventTemplate)
- .build();
-
- // Create a log event with a MapMessage.
- final Message mapMessage = new StringMapMessage()
- .with("key1", "val1");
- final LogEvent mapMessageLogEvent = Log4jLogEvent
- .newBuilder()
- .setLoggerName(LOGGER_NAME)
- .setLevel(Level.INFO)
- .setMessage(mapMessage)
- .setTimeMillis(System.currentTimeMillis())
- .build();
-
- // Check the serialized MapMessage.
- usingSerializedLogEventAccessor(layout, mapMessageLogEvent, accessor ->
- assertThat(accessor.getString(new String[]{"message", "key1"}))
- .isEqualTo("val1"));
-
- // Create a log event with a SimpleMessage.
- final Message simpleMessage = new SimpleMessage("simple");
- final LogEvent simpleMessageLogEvent = Log4jLogEvent
- .newBuilder()
- .setLoggerName(LOGGER_NAME)
- .setLevel(Level.INFO)
- .setMessage(simpleMessage)
- .setTimeMillis(System.currentTimeMillis())
- .build();
-
- // Check the serialized MapMessage.
- usingSerializedLogEventAccessor(layout, simpleMessageLogEvent, accessor ->
- assertThat(accessor.getString(new String[]{"message", "formattedMessage"}))
- .isEqualTo("simple"));
-
- }
-
- @Test
void test_property_injection() {
// Create the log event.
@@ -666,78 +577,6 @@ class JsonTemplateLayoutTest {
}
@Test
- void test_StringMapMessage() {
-
- // Create the log event.
- final StringMapMessage message = new StringMapMessage();
- message.put("message", "Hello, World!");
- message.put("bottle", "Kickapoo Joy Juice");
- final LogEvent logEvent = Log4jLogEvent
- .newBuilder()
- .setLoggerName(LOGGER_NAME)
- .setLevel(Level.INFO)
- .setMessage(message)
- .build();
-
- // Create the event template.
- final String eventTemplate = writeJson(asMap(
- "message", asMap("$resolver", "message")));
-
- // Create the layout.
- final JsonTemplateLayout layout = JsonTemplateLayout
- .newBuilder()
- .setConfiguration(CONFIGURATION)
- .setStackTraceEnabled(true)
- .setEventTemplate(eventTemplate)
- .build();
-
- // Check the serialized event.
- usingSerializedLogEventAccessor(layout, logEvent, accessor -> {
- assertThat(accessor.getString(new String[]{"message", "message"})).isEqualTo("Hello, World!");
- assertThat(accessor.getString(new String[]{"message", "bottle"})).isEqualTo("Kickapoo Joy Juice");
- });
-
- }
-
- @Test
- void test_ObjectMessage() {
-
- // Create the log event.
- final int id = 0xDEADBEEF;
- final String name = "name-" + id;
- final Object attachment = new LinkedHashMap<String, Object>() {{
- put("id", id);
- put("name", name);
- }};
- final ObjectMessage message = new ObjectMessage(attachment);
- final LogEvent logEvent = Log4jLogEvent
- .newBuilder()
- .setLoggerName(LOGGER_NAME)
- .setLevel(Level.INFO)
- .setMessage(message)
- .build();
-
- // Create the event template.
- final String eventTemplate = writeJson(asMap(
- "message", asMap("$resolver", "message")));
-
- // Create the layout.
- JsonTemplateLayout layout = JsonTemplateLayout
- .newBuilder()
- .setConfiguration(CONFIGURATION)
- .setStackTraceEnabled(true)
- .setEventTemplate(eventTemplate)
- .build();
-
- // Check the serialized event.
- usingSerializedLogEventAccessor(layout, logEvent, accessor -> {
- assertThat(accessor.getInteger(new String[]{"message", "id"})).isEqualTo(id);
- assertThat(accessor.getString(new String[]{"message", "name"})).isEqualTo(name);
- });
-
- }
-
- @Test
void test_StackTraceElement_template() {
// Create the stack trace element template.
diff --git a/log4j-layout-template-json/src/test/java/org/apache/logging/log4j/layout/template/json/resolver/MessageResolverTest.java b/log4j-layout-template-json/src/test/java/org/apache/logging/log4j/layout/template/json/resolver/MessageResolverTest.java
index 7aa8b24..34b2f77 100644
--- a/log4j-layout-template-json/src/test/java/org/apache/logging/log4j/layout/template/json/resolver/MessageResolverTest.java
+++ b/log4j-layout-template-json/src/test/java/org/apache/logging/log4j/layout/template/json/resolver/MessageResolverTest.java
@@ -16,19 +16,30 @@
*/
package org.apache.logging.log4j.layout.template.json.resolver;
+import org.apache.logging.log4j.core.LogEvent;
+import org.apache.logging.log4j.core.impl.Log4jLogEvent;
import org.apache.logging.log4j.core.test.junit.LoggerContextSource;
import org.apache.logging.log4j.core.test.junit.Named;
+import org.apache.logging.log4j.layout.template.json.JsonTemplateLayout;
import org.apache.logging.log4j.layout.template.json.util.JsonReader;
import org.apache.logging.log4j.core.test.appender.ListAppender;
+import org.apache.logging.log4j.message.Message;
+import org.apache.logging.log4j.message.ObjectMessage;
+import org.apache.logging.log4j.message.SimpleMessage;
+import org.apache.logging.log4j.message.StringMapMessage;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.Test;
import java.nio.charset.StandardCharsets;
import java.util.Collections;
+import java.util.LinkedHashMap;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
+import static org.apache.logging.log4j.layout.template.json.TestHelpers.*;
+import static org.assertj.core.api.Assertions.assertThat;
+
class MessageResolverTest {
/**
@@ -74,4 +85,151 @@ class MessageResolverTest {
}
+ @Test
+ void test_message_fallbackKey() {
+
+ // Create the event template.
+ final String eventTemplate = writeJson(asMap(
+ "message", asMap(
+ "$resolver", "message",
+ "fallbackKey", "formattedMessage")));
+
+ // Create the layout.
+ final JsonTemplateLayout layout = JsonTemplateLayout
+ .newBuilder()
+ .setConfiguration(CONFIGURATION)
+ .setEventTemplate(eventTemplate)
+ .build();
+
+ // Create a log event with a MapMessage.
+ final Message mapMessage = new StringMapMessage()
+ .with("key1", "val1");
+ final LogEvent mapMessageLogEvent = Log4jLogEvent
+ .newBuilder()
+ .setMessage(mapMessage)
+ .setTimeMillis(System.currentTimeMillis())
+ .build();
+
+ // Check the serialized MapMessage.
+ usingSerializedLogEventAccessor(layout, mapMessageLogEvent, accessor ->
+ assertThat(accessor.getString(new String[]{"message", "key1"}))
+ .isEqualTo("val1"));
+
+ // Create a log event with a SimpleMessage.
+ final Message simpleMessage = new SimpleMessage("simple");
+ final LogEvent simpleMessageLogEvent = Log4jLogEvent
+ .newBuilder()
+ .setMessage(simpleMessage)
+ .setTimeMillis(System.currentTimeMillis())
+ .build();
+
+ // Check the serialized MapMessage.
+ usingSerializedLogEventAccessor(layout, simpleMessageLogEvent, accessor ->
+ assertThat(accessor.getString(new String[]{"message", "formattedMessage"}))
+ .isEqualTo("simple"));
+
+ }
+
+ @Test
+ void test_StringMapMessage() {
+
+ // Create the log event.
+ final StringMapMessage message = new StringMapMessage();
+ message.put("message", "Hello, World!");
+ message.put("bottle", "Kickapoo Joy Juice");
+ final LogEvent logEvent = Log4jLogEvent
+ .newBuilder()
+ .setMessage(message)
+ .build();
+
+ // Create the event template.
+ final String eventTemplate = writeJson(asMap(
+ "message", asMap("$resolver", "message")));
+
+ // Create the layout.
+ final JsonTemplateLayout layout = JsonTemplateLayout
+ .newBuilder()
+ .setConfiguration(CONFIGURATION)
+ .setStackTraceEnabled(true)
+ .setEventTemplate(eventTemplate)
+ .build();
+
+ // Check the serialized event.
+ usingSerializedLogEventAccessor(layout, logEvent, accessor -> {
+ assertThat(accessor.getString(new String[]{"message", "message"})).isEqualTo("Hello, World!");
+ assertThat(accessor.getString(new String[]{"message", "bottle"})).isEqualTo("Kickapoo Joy Juice");
+ });
+
+ }
+
+ @Test
+ void test_ObjectMessage() {
+
+ // Create the log event.
+ final int id = 0xDEADBEEF;
+ final String name = "name-" + id;
+ final Object attachment = new LinkedHashMap<String, Object>() {{
+ put("id", id);
+ put("name", name);
+ }};
+ final ObjectMessage message = new ObjectMessage(attachment);
+ final LogEvent logEvent = Log4jLogEvent
+ .newBuilder()
+ .setMessage(message)
+ .build();
+
+ // Create the event template.
+ final String eventTemplate = writeJson(asMap(
+ "message", asMap("$resolver", "message")));
+
+ // Create the layout.
+ JsonTemplateLayout layout = JsonTemplateLayout
+ .newBuilder()
+ .setConfiguration(CONFIGURATION)
+ .setStackTraceEnabled(true)
+ .setEventTemplate(eventTemplate)
+ .build();
+
+ // Check the serialized event.
+ usingSerializedLogEventAccessor(layout, logEvent, accessor -> {
+ assertThat(accessor.getInteger(new String[]{"message", "id"})).isEqualTo(id);
+ assertThat(accessor.getString(new String[]{"message", "name"})).isEqualTo(name);
+ });
+
+ }
+
+ @Test
+ void test_MapMessage_serialization() {
+
+ // Create the event template.
+ final String eventTemplate = writeJson(asMap(
+ "message", asMap("$resolver", "message")));
+
+ // Create the layout.
+ final JsonTemplateLayout layout = JsonTemplateLayout
+ .newBuilder()
+ .setConfiguration(CONFIGURATION)
+ .setEventTemplate(eventTemplate)
+ .build();
+
+ // Create the log event with a MapMessage.
+ final StringMapMessage mapMessage = new StringMapMessage()
+ .with("key1", "val1")
+ .with("key2", 0xDEADBEEF)
+ .with("key3", Collections.singletonMap("key3.1", "val3.1"));
+ final LogEvent logEvent = Log4jLogEvent
+ .newBuilder()
+ .setMessage(mapMessage)
+ .setTimeMillis(System.currentTimeMillis())
+ .build();
+
+ // Check the serialized event.
+ usingSerializedLogEventAccessor(layout, logEvent, accessor -> {
+ assertThat(accessor.getString(new String[]{"message", "key1"})).isEqualTo("val1");
+ assertThat(accessor.getInteger(new String[]{"message", "key2"})).isEqualTo(0xDEADBEEF);
+ assertThat(accessor.getString(new String[]{"message", "key3", "key3.1"})).isEqualTo("val3.1");
+ });
+
+ }
+
}