|
20 | 20 |
|
21 | 21 | import org.apache.logging.log4j.message.AbstractMessageFactory;
|
22 | 22 | import org.apache.logging.log4j.message.DefaultFlowMessageFactory;
|
| 23 | +import org.apache.logging.log4j.message.FlowMessageFactory; |
23 | 24 | import org.apache.logging.log4j.message.Message;
|
24 | 25 | import org.apache.logging.log4j.message.MessageFactory;
|
25 | 26 | import org.apache.logging.log4j.message.ParameterizedMessageFactory;
|
26 | 27 | import org.junit.jupiter.api.Test;
|
27 |
| -import org.junitpioneer.jupiter.ClearSystemProperty; |
| 28 | +import org.junit.jupiter.api.TestInfo; |
28 | 29 | import org.junitpioneer.jupiter.SetSystemProperty;
|
29 | 30 |
|
| 31 | +@SetSystemProperty( |
| 32 | + key = "log4j2.messageFactory", |
| 33 | + value = "org.apache.logging.log4j.core.LoggerMessageFactoryCustomizationTest$AlternativeTestMessageFactory") |
| 34 | +@SetSystemProperty( |
| 35 | + key = "log4j2.flowMessageFactory", |
| 36 | + value = "org.apache.logging.log4j.core.LoggerMessageFactoryCustomizationTest$AlternativeTestFlowMessageFactory") |
30 | 37 | class LoggerMessageFactoryCustomizationTest {
|
31 | 38 |
|
32 | 39 | @Test
|
33 |
| - @ClearSystemProperty(key = "log4j2.messageFactory") |
34 |
| - @ClearSystemProperty(key = "log4j2.flowMessageFactory") |
35 |
| - void arguments_should_be_honored() { |
36 |
| - final LoggerContext loggerContext = |
37 |
| - new LoggerContext(LoggerMessageFactoryCustomizationTest.class.getSimpleName()); |
38 |
| - final Logger logger = new Logger( |
39 |
| - loggerContext, "arguments_should_be_honored", new TestMessageFactory(), new TestFlowMessageFactory()); |
40 |
| - assertTestMessageFactories(logger); |
| 40 | + void arguments_should_be_honored(TestInfo testInfo) { |
| 41 | + try (LoggerContext loggerContext = |
| 42 | + new LoggerContext(LoggerMessageFactoryCustomizationTest.class.getSimpleName())) { |
| 43 | + Logger logger = new Logger( |
| 44 | + loggerContext, testInfo.getDisplayName(), new TestMessageFactory(), new TestFlowMessageFactory()); |
| 45 | + assertTestMessageFactories(logger, TestMessageFactory.class, TestFlowMessageFactory.class); |
| 46 | + } |
41 | 47 | }
|
42 | 48 |
|
43 | 49 | @Test
|
44 |
| - @SetSystemProperty( |
45 |
| - key = "log4j2.messageFactory", |
46 |
| - value = "org.apache.logging.log4j.core.LoggerMessageFactoryCustomizationTest$TestMessageFactory") |
47 |
| - @SetSystemProperty( |
48 |
| - key = "log4j2.flowMessageFactory", |
49 |
| - value = "org.apache.logging.log4j.core.LoggerMessageFactoryCustomizationTest$TestFlowMessageFactory") |
50 |
| - void properties_should_be_honored() { |
51 |
| - final LoggerContext loggerContext = |
52 |
| - new LoggerContext(LoggerMessageFactoryCustomizationTest.class.getSimpleName()); |
53 |
| - final Logger logger = new Logger(loggerContext, "properties_should_be_honored", null, null); |
54 |
| - assertTestMessageFactories(logger); |
| 50 | + void properties_should_be_honored(TestInfo testInfo) { |
| 51 | + try (LoggerContext loggerContext = |
| 52 | + new LoggerContext(LoggerMessageFactoryCustomizationTest.class.getSimpleName())) { |
| 53 | + Logger logger = loggerContext.getLogger(testInfo.getDisplayName()); |
| 54 | + assertTestMessageFactories( |
| 55 | + logger, AlternativeTestMessageFactory.class, AlternativeTestFlowMessageFactory.class); |
| 56 | + } |
55 | 57 | }
|
56 | 58 |
|
57 |
| - private static void assertTestMessageFactories(Logger logger) { |
58 |
| - assertThat((MessageFactory) logger.getMessageFactory()).isInstanceOf(TestMessageFactory.class); |
59 |
| - assertThat(logger.getFlowMessageFactory()).isInstanceOf(TestFlowMessageFactory.class); |
| 59 | + private static void assertTestMessageFactories( |
| 60 | + Logger logger, |
| 61 | + Class<? extends MessageFactory> messageFactoryClass, |
| 62 | + Class<? extends FlowMessageFactory> flowMessageFactoryClass) { |
| 63 | + assertThat(logger.getMessageFactory().getClass()).isEqualTo(messageFactoryClass); |
| 64 | + assertThat(logger.getFlowMessageFactory().getClass()).isEqualTo(flowMessageFactoryClass); |
60 | 65 | }
|
61 | 66 |
|
62 |
| - public static final class TestMessageFactory extends AbstractMessageFactory { |
| 67 | + public static class TestMessageFactory extends AbstractMessageFactory { |
63 | 68 |
|
64 | 69 | @Override
|
65 | 70 | public Message newMessage(final String message, final Object... params) {
|
66 | 71 | return ParameterizedMessageFactory.INSTANCE.newMessage(message, params);
|
67 | 72 | }
|
68 | 73 | }
|
69 | 74 |
|
70 |
| - public static final class TestFlowMessageFactory extends DefaultFlowMessageFactory {} |
| 75 | + public static class AlternativeTestMessageFactory extends TestMessageFactory {} |
| 76 | + |
| 77 | + public static class TestFlowMessageFactory extends DefaultFlowMessageFactory {} |
| 78 | + |
| 79 | + public static class AlternativeTestFlowMessageFactory extends TestFlowMessageFactory {} |
71 | 80 | }
|
0 commit comments