Repository: logging-log4j2 Updated Branches: refs/heads/master 8b0e21408 -> f157cc2ff
LOG4J2-1296 added additional unit tests for ParameterFormatter Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/f157cc2f Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/f157cc2f Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/f157cc2f Branch: refs/heads/master Commit: f157cc2ff083753356881254c518467062ea4b36 Parents: 8b0e214 Author: rpopma <[email protected]> Authored: Tue Mar 8 23:17:38 2016 +1100 Committer: rpopma <[email protected]> Committed: Tue Mar 8 23:17:38 2016 +1100 ---------------------------------------------------------------------- .../log4j/message/ParameterFormatterTest.java | 68 +++++++++++++++++++- 1 file changed, 66 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/f157cc2f/log4j-api/src/test/java/org/apache/logging/log4j/message/ParameterFormatterTest.java ---------------------------------------------------------------------- diff --git a/log4j-api/src/test/java/org/apache/logging/log4j/message/ParameterFormatterTest.java b/log4j-api/src/test/java/org/apache/logging/log4j/message/ParameterFormatterTest.java index 4158b17..e6a0dbd 100644 --- a/log4j-api/src/test/java/org/apache/logging/log4j/message/ParameterFormatterTest.java +++ b/log4j-api/src/test/java/org/apache/logging/log4j/message/ParameterFormatterTest.java @@ -17,7 +17,6 @@ package org.apache.logging.log4j.message; import java.util.ArrayList; -import java.util.IdentityHashMap; import java.util.List; import java.util.Objects; @@ -101,8 +100,73 @@ public class ParameterFormatterTest { } @Test - public void testFormatMessage() throws Exception { + public void testFormatMessage3StringArgs() { + final String testMsg = "Test message {}{} {}"; + final String[] args = { "a", "b", "c" }; + final StringBuilder sb = new StringBuilder(); + ParameterFormatter.formatMessage(sb, testMsg, args, 3); + final String result = sb.toString(); + assertEquals("Test message ab c", result); + } + + @Test + public void testFormatMessageNullArgs() { + final String testMsg = "Test message {} {} {} {} {} {}"; + final String[] args = { "a", null, "c", null, null, null }; + final StringBuilder sb = new StringBuilder(); + ParameterFormatter.formatMessage(sb, testMsg, args, 6); + final String result = sb.toString(); + assertEquals("Test message a null c null null null", result); + } + + @Test + public void testFormatMessageStringArgsIgnoresSuperfluousArgs() { + final String testMsg = "Test message {}{} {}"; + final String[] args = { "a", "b", "c", "unnecessary", "superfluous" }; + final StringBuilder sb = new StringBuilder(); + ParameterFormatter.formatMessage(sb, testMsg, args, 5); + final String result = sb.toString(); + assertEquals("Test message ab c", result); + } + + @Test + public void testFormatMessageStringArgsWithEscape() { + final String testMsg = "Test message \\{}{} {}"; + final String[] args = { "a", "b", "c" }; + final StringBuilder sb = new StringBuilder(); + ParameterFormatter.formatMessage(sb, testMsg, args, 3); + final String result = sb.toString(); + assertEquals("Test message {}a b", result); + } + + @Test + public void testFormatMessageStringArgsWithTrailingEscape() { + final String testMsg = "Test message {}{} {}\\"; + final String[] args = { "a", "b", "c" }; + final StringBuilder sb = new StringBuilder(); + ParameterFormatter.formatMessage(sb, testMsg, args, 3); + final String result = sb.toString(); + assertEquals("Test message ab c\\", result); + } + @Test + public void testFormatMessageStringArgsWithTrailingEscapedEscape() { + final String testMsg = "Test message {}{} {}\\\\"; + final String[] args = { "a", "b", "c" }; + final StringBuilder sb = new StringBuilder(); + ParameterFormatter.formatMessage(sb, testMsg, args, 3); + final String result = sb.toString(); + assertEquals("Test message ab c\\\\", result); + } + + @Test + public void testFormatMessageStringArgsWithEscapedEscape() { + final String testMsg = "Test message \\\\{}{} {}"; + final String[] args = { "a", "b", "c" }; + final StringBuilder sb = new StringBuilder(); + ParameterFormatter.formatMessage(sb, testMsg, args, 3); + final String result = sb.toString(); + assertEquals("Test message \\ab c", result); } @Test
