1   /**
2    * Logback: the generic, reliable, fast and flexible logging framework.
3    * 
4    * Copyright (C) 1999-2007, QOS.ch
5    * 
6    * This library is free software, you can redistribute it and/or modify it under
7    * the terms of the GNU Lesser General Public License as published by the Free
8    * Software Foundation.
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  }