You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by gg...@apache.org on 2022/03/30 22:18:43 UTC

[logging-log4j2] branch release-2.x updated: More tests for LocalizedMessageFactory.

This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch release-2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git


The following commit(s) were added to refs/heads/release-2.x by this push:
     new c4936b2  More tests for LocalizedMessageFactory.
c4936b2 is described below

commit c4936b20ac85f2c182278394d6c81500ee275df9
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Wed Mar 30 18:18:38 2022 -0400

    More tests for LocalizedMessageFactory.
---
 .../log4j/message/LocalizedMessageFactoryTest.java | 47 +++++++++++++++++++++-
 1 file changed, 45 insertions(+), 2 deletions(-)

diff --git a/log4j-api/src/test/java/org/apache/logging/log4j/message/LocalizedMessageFactoryTest.java b/log4j-api/src/test/java/org/apache/logging/log4j/message/LocalizedMessageFactoryTest.java
index 1e49a6f..a5f4db4 100644
--- a/log4j-api/src/test/java/org/apache/logging/log4j/message/LocalizedMessageFactoryTest.java
+++ b/log4j-api/src/test/java/org/apache/logging/log4j/message/LocalizedMessageFactoryTest.java
@@ -29,10 +29,53 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
 public class LocalizedMessageFactoryTest {
 
     @Test
+    public void testMessageMarkersDataNo() {
+        final LocalizedMessageFactory localizedMessageFactory = new LocalizedMessageFactory(ResourceBundle.getBundle("MF", Locale.US));
+        final Message message = localizedMessageFactory.newMessage("msg1");
+        assertEquals("This is test number {0} with string argument {1}.", message.getFormattedMessage());
+    }
+
+    @Test
+    public void testMessageMarkersNoDataYes() {
+        // Logs the following to the console sadly:
+        //
+        // ERROR StatusLogger Unable to format msg: C:/Program%20Files/Some%20Company/Some%20Product%20Name/
+        // java.util.UnknownFormatConversionException: Conversion = 'F'
+        //  at java.util.Formatter$FormatSpecifier.conversion(Formatter.java:2691)
+        //  at java.util.Formatter$FormatSpecifier.<init>(Formatter.java:2720)
+        //  at java.util.Formatter.parse(Formatter.java:2560)
+        //  at java.util.Formatter.format(Formatter.java:2501)
+        //  at java.util.Formatter.format(Formatter.java:2455)
+        //  at java.lang.String.format(String.java:2981)
+        //  at org.apache.logging.log4j.message.StringFormattedMessage.formatMessage(StringFormattedMessage.java:116)
+        //  at org.apache.logging.log4j.message.StringFormattedMessage.getFormattedMessage(StringFormattedMessage.java:88)
+        //  at org.apache.logging.log4j.message.FormattedMessage.getFormattedMessage(FormattedMessage.java:178)
+        //  at org.apache.logging.log4j.message.LocalizedMessage.getFormattedMessage(LocalizedMessage.java:196)
+        //  at org.apache.logging.log4j.message.LocalizedMessageFactoryTest.testNoMatchPercentInMessage(LocalizedMessageFactoryTest.java:60)
+        //
+        final LocalizedMessageFactory localizedMessageFactory = new LocalizedMessageFactory(ResourceBundle.getBundle("MF", Locale.US));
+        final Message message = localizedMessageFactory.newMessage("msg1", 1, "two");
+        assertEquals("This is test number 1 with string argument two.", message.getFormattedMessage());
+    }
+
+    @Test
     public void testNewMessage() {
-        final LocalizedMessageFactory localizedMessageFactory = new LocalizedMessageFactory(
-                ResourceBundle.getBundle("MF", Locale.US));
+        final LocalizedMessageFactory localizedMessageFactory = new LocalizedMessageFactory(ResourceBundle.getBundle("MF", Locale.US));
         final Message message = localizedMessageFactory.newMessage("hello_world");
         assertEquals("Hello world.", message.getFormattedMessage());
     }
+
+    @Test
+    public void testNoMatch() {
+        final LocalizedMessageFactory localizedMessageFactory = new LocalizedMessageFactory(ResourceBundle.getBundle("MF", Locale.US));
+        final Message message = localizedMessageFactory.newMessage("no match");
+        assertEquals("no match", message.getFormattedMessage());
+    }
+
+    @Test
+    public void testNoMatchPercentInMessage() {
+        final LocalizedMessageFactory localizedMessageFactory = new LocalizedMessageFactory(ResourceBundle.getBundle("MF", Locale.US));
+        final Message message = localizedMessageFactory.newMessage("C:/Program%20Files/Some%20Company/Some%20Product%20Name/");
+        assertEquals("C:/Program%20Files/Some%20Company/Some%20Product%20Name/", message.getFormattedMessage());
+    }
 }