Repository: logging-log4j2
Updated Branches:
  refs/heads/master 7e9467254 -> 1896c0e24


Tests MessageSupplier APIs.

Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/1896c0e2
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/1896c0e2
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/1896c0e2

Branch: refs/heads/master
Commit: 1896c0e24740ad257423651b44a1f53cbd2400ba
Parents: 7e94672
Author: ggregory <[email protected]>
Authored: Fri Feb 12 16:12:17 2016 -0800
Committer: ggregory <[email protected]>
Committed: Fri Feb 12 16:12:17 2016 -0800

----------------------------------------------------------------------
 .../log4j/LoggerMessageSupplierTest.java        | 197 +++++++++++++++++++
 1 file changed, 197 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/1896c0e2/log4j-api/src/test/java/org/apache/logging/log4j/LoggerMessageSupplierTest.java
----------------------------------------------------------------------
diff --git 
a/log4j-api/src/test/java/org/apache/logging/log4j/LoggerMessageSupplierTest.java
 
b/log4j-api/src/test/java/org/apache/logging/log4j/LoggerMessageSupplierTest.java
new file mode 100644
index 0000000..77a91ae
--- /dev/null
+++ 
b/log4j-api/src/test/java/org/apache/logging/log4j/LoggerMessageSupplierTest.java
@@ -0,0 +1,197 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache license, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the license for the specific language governing permissions and
+ * limitations under the license.
+ */
+package org.apache.logging.log4j;
+
+import static org.hamcrest.CoreMatchers.containsString;
+import static org.hamcrest.CoreMatchers.not;
+import static org.hamcrest.CoreMatchers.startsWith;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThat;
+
+import java.util.List;
+
+import org.apache.logging.log4j.message.FormattedMessage;
+import org.apache.logging.log4j.message.JsonMessage;
+import org.apache.logging.log4j.message.LocalizedMessage;
+import org.apache.logging.log4j.message.MessageFormatMessage;
+import org.apache.logging.log4j.message.ObjectArrayMessage;
+import org.apache.logging.log4j.message.ObjectMessage;
+import org.apache.logging.log4j.message.ParameterizedMessage;
+import org.apache.logging.log4j.message.SimpleMessage;
+import org.apache.logging.log4j.message.StringFormattedMessage;
+import org.apache.logging.log4j.message.ThreadDumpMessage;
+import org.apache.logging.log4j.util.MessageSupplier;
+import org.apache.logging.log4j.util.Supplier;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Tests Logger APIs with MessageSupplier.
+ */
+public class LoggerMessageSupplierTest {
+
+    private final TestLogger logger = (TestLogger) 
LogManager.getLogger("LoggerTest");
+
+    private final List<String> results = logger.getEntries();
+
+    @Test
+    public void flowTracing_MessageSupplierOfFormattedMessage() {
+        logger.traceEntry(new MessageSupplier() {
+            @Override
+            public FormattedMessage get() {
+                return new FormattedMessage("int foo={}", 1234567890);
+            }
+        });
+        assertEquals(1, results.size());
+        assertThat("Incorrect Entry", results.get(0), startsWith("ENTRY[ FLOW 
] TRACE entry"));
+        assertThat("Missing entry data", results.get(0), containsString("int 
foo=1234567890"));
+        assertThat("Bad toString()", results.get(0), 
not(containsString("FormattedMessage")));
+    }
+
+    @Test
+    public void flowTracing_MessageSupplierOfJsonMessage() {
+        logger.traceEntry(new MessageSupplier() {
+            @Override
+            public JsonMessage get() {
+                return new JsonMessage(System.getProperties());
+            }
+        });
+        assertEquals(1, results.size());
+        assertThat("Incorrect Entry", results.get(0), startsWith("ENTRY[ FLOW 
] TRACE entry"));
+        assertThat("Missing entry data", results.get(0), 
containsString("\"java.runtime.name\":"));
+        assertThat("Bad toString()", results.get(0), 
not(containsString("JsonMessage")));
+    }
+
+    @Test
+    public void flowTracing_MessageSupplierOfLocalizedMessage() {
+        logger.traceEntry(new MessageSupplier() {
+            @Override
+            public LocalizedMessage get() {
+                return new LocalizedMessage("int foo={}", 1234567890);
+            }
+        });
+        assertEquals(1, results.size());
+        assertThat("Incorrect Entry", results.get(0), startsWith("ENTRY[ FLOW 
] TRACE entry"));
+        assertThat("Missing entry data", results.get(0), containsString("int 
foo=1234567890"));
+        assertThat("Bad toString()", results.get(0), 
not(containsString("LocalizedMessage")));
+    }
+
+    @Test
+    public void flowTracing_MessageSupplierOfMessageFormatMessage() {
+        logger.traceEntry(new MessageSupplier() {
+            @Override
+            public MessageFormatMessage get() {
+                return new MessageFormatMessage("int foo={0}", 1234567890);
+            }
+        });
+        assertEquals(1, results.size());
+        assertThat("Incorrect Entry", results.get(0), startsWith("ENTRY[ FLOW 
] TRACE entry"));
+        assertThat("Missing entry data", results.get(0), containsString("int 
foo=1,234,567,890"));
+        assertThat("Bad toString()", results.get(0), 
not(containsString("MessageFormatMessage")));
+    }
+
+    @Test
+    public void flowTracing_MessageSupplierOfObjectArrayMessage() {
+        logger.traceEntry(new MessageSupplier() {
+            @Override
+            public ObjectArrayMessage get() {
+                return new ObjectArrayMessage(1234567890);
+            }
+        });
+        assertEquals(1, results.size());
+        assertThat("Incorrect Entry", results.get(0), startsWith("ENTRY[ FLOW 
] TRACE entry"));
+        assertThat("Missing entry data", results.get(0), 
containsString("[1234567890]"));
+        assertThat("Bad toString()", results.get(0), 
not(containsString("ObjectArrayMessage")));
+    }
+
+    @Test
+    public void flowTracing_MessageSupplierOfObjectMessage() {
+        logger.traceEntry(new MessageSupplier() {
+            @Override
+            public ObjectMessage get() {
+                return new ObjectMessage(1234567890);
+            }
+        });
+        assertEquals(1, results.size());
+        assertThat("Incorrect Entry", results.get(0), startsWith("ENTRY[ FLOW 
] TRACE entry"));
+        assertThat("Missing entry data", results.get(0), 
containsString("1234567890"));
+        assertThat("Bad toString()", results.get(0), 
not(containsString("ObjectMessage")));
+    }
+
+    @Test
+    public void flowTracing_MessageSupplierOfParameterizedMessage() {
+        logger.traceEntry(new MessageSupplier() {
+            @Override
+            public ParameterizedMessage get() {
+                return new ParameterizedMessage("int foo={}", 1234567890);
+            }
+        });
+        assertEquals(1, results.size());
+        assertThat("Incorrect Entry", results.get(0), startsWith("ENTRY[ FLOW 
] TRACE entry"));
+        assertThat("Missing entry data", results.get(0), containsString("int 
foo=1234567890"));
+        assertThat("Bad toString()", results.get(0), 
not(containsString("ParameterizedMessage")));
+    }
+
+    @Test
+    public void flowTracing_MessageSupplierOfSimpleMessage() {
+        logger.traceEntry(new MessageSupplier() {
+            @Override
+            public SimpleMessage get() {
+                return new SimpleMessage("1234567890");
+            }
+        });
+        assertEquals(1, results.size());
+        assertThat("Incorrect Entry", results.get(0), startsWith("ENTRY[ FLOW 
] TRACE entry"));
+        assertThat("Missing entry data", results.get(0), 
containsString("1234567890"));
+        assertThat("Bad toString()", results.get(0), 
not(containsString("SimpleMessage")));
+    }
+
+    @Test
+    public void flowTracing_MessageSupplierOfStringFormattedMessage() {
+        logger.traceEntry(new MessageSupplier() {
+            @Override
+            public StringFormattedMessage get() {
+                return new StringFormattedMessage("int foo=%,d", 1234567890);
+            }
+        });
+        assertEquals(1, results.size());
+        assertThat("Incorrect Entry", results.get(0), startsWith("ENTRY[ FLOW 
] TRACE entry"));
+        assertThat("Missing entry data", results.get(0), containsString("int 
foo=1,234,567,890"));
+        assertThat("Bad toString()", results.get(0), 
not(containsString("StringFormattedMessage")));
+    }
+
+    @Test
+    public void flowTracing_MessageSupplierOfThreadDumpMessage() {
+        logger.traceEntry(new MessageSupplier() {
+            @Override
+            public ThreadDumpMessage get() {
+                return new ThreadDumpMessage("Title of ...");
+            }
+        });
+        assertEquals(1, results.size());
+        assertThat("Incorrect Entry", results.get(0), startsWith("ENTRY[ FLOW 
] TRACE entry"));
+        assertThat("Missing entry data", results.get(0), 
containsString("RUNNABLE"));
+        assertThat("Missing entry data", results.get(0), containsString("Title 
of ..."));
+        assertThat("Missing entry data", results.get(0), 
containsString(getClass().getName()));
+    }
+
+    @Before
+    public void setup() {
+        results.clear();
+    }
+
+}

Reply via email to