1
2
3
4
5
6
7
8
9
10 package ch.qos.logback.classic;
11
12 import static org.junit.Assert.assertEquals;
13
14 import org.junit.Before;
15 import org.junit.Test;
16
17 import ch.qos.logback.classic.spi.LoggingEvent;
18 import ch.qos.logback.core.read.ListAppender;
19
20 public class MessageFormattingTest {
21
22 LoggerContext lc;
23 ListAppender<LoggingEvent> listAppender;
24
25 @Before
26 public void setUp() {
27 lc = new LoggerContext();
28 Logger logger = lc.getLogger(LoggerContext.ROOT_NAME);
29 listAppender = new ListAppender<LoggingEvent>();
30 listAppender.setContext(lc);
31 listAppender.start();
32 logger.addAppender(listAppender);
33 }
34
35 @Test
36 public void testFormattingOneArg() {
37 Logger logger = lc.getLogger(LoggerContext.ROOT_NAME);
38 logger.debug("{}", new Integer(12));
39 LoggingEvent event = (LoggingEvent) listAppender.list.get(0);
40 assertEquals("12", event.getFormattedMessage());
41 }
42
43 @Test
44 public void testFormattingTwoArg() {
45 Logger logger = lc.getLogger(LoggerContext.ROOT_NAME);
46 logger.debug("{}-{}", new Integer(12), new Integer(13));
47 LoggingEvent event = (LoggingEvent) listAppender.list.get(0);
48 assertEquals("12-13", event.getFormattedMessage());
49 }
50
51 @Test
52 public void testNoFormatting() {
53 Logger logger = lc.getLogger(LoggerContext.ROOT_NAME);
54 logger.debug("test", new Integer(12), new Integer(13));
55 LoggingEvent event = (LoggingEvent) listAppender.list.get(0);
56 assertEquals("test", event.getFormattedMessage());
57 }
58
59 @Test
60 public void testNoFormatting2() {
61 Logger logger = lc.getLogger(LoggerContext.ROOT_NAME);
62 logger.debug("test");
63 LoggingEvent event = (LoggingEvent) listAppender.list.get(0);
64 assertEquals("test", event.getFormattedMessage());
65 }
66
67 @Test
68 public void testMessageConverter() {
69 Logger logger = lc.getLogger(LoggerContext.ROOT_NAME);
70 logger.debug("{}", 12);
71 LoggingEvent event = (LoggingEvent) listAppender.list.get(0);
72 PatternLayout layout = new PatternLayout();
73 layout.setContext(lc);
74 layout.setPattern("%m");
75 layout.start();
76 String formattedMessage = layout.doLayout(event);
77 assertEquals("12", formattedMessage);
78 }
79
80 }