View Javadoc

1   package com.atlassian.logging.log4j;
2   
3   import org.apache.log4j.Level;
4   import org.apache.log4j.Logger;
5   import org.apache.log4j.helpers.PatternConverter;
6   import org.apache.log4j.spi.LoggingEvent;
7   import org.hamcrest.CoreMatchers;
8   import org.junit.Test;
9   
10  import static org.junit.Assert.*;
11  
12  public class CategoryCollapsingPatternParserTest
13  {
14  
15      private static final String FQ_LOGGER_NAME = "com.atlassian.logging.log4j.FQName";
16  
17      Logger logger = Logger.getLogger(FQ_LOGGER_NAME);
18  
19      private LoggingEvent basicLogEvent = new LoggingEvent(FQ_LOGGER_NAME, logger, System.currentTimeMillis(), Level.ALL, "Some message", null);
20  
21      @Test
22      public void test_that_it_consumes_its_pattern_length_strategy() throws Exception
23      {
24          // assemble
25          PatternConverter converter = createConverter("%Q %m");
26  
27          // act
28          StringBuffer sb = new StringBuffer();
29          converter.format(sb, basicLogEvent);
30  
31          // assert
32          String actual = sb.toString();
33          assertThat(actual, CoreMatchers.equalTo(FQ_LOGGER_NAME));
34  
35      }
36  
37      @Test
38      public void test_that_it_consumes_its_pattern_segment_strategy() throws Exception
39      {
40          // assemble
41          PatternConverter converter = createConverter("%q %m");
42  
43          // act
44          StringBuffer sb = new StringBuffer();
45          converter.format(sb, basicLogEvent);
46  
47          // assert
48          String actual = sb.toString();
49          assertThat(actual, CoreMatchers.equalTo(FQ_LOGGER_NAME));
50  
51      }
52  
53      @Test
54      public void test_it_collapses_to_spec_length_strategy() throws Exception
55      {
56          PatternConverter converter = createConverter("%Q{5} %m");
57  
58          // act
59          StringBuffer sb = new StringBuffer();
60          converter.format(sb, basicLogEvent);
61  
62          // assert
63          String actual = sb.toString();
64          assertThat(actual, CoreMatchers.equalTo("c.a.l.log4j.FQName"));
65      }
66  
67      @Test
68      public void test_it_collapses_to_spec_segment_strategy() throws Exception
69      {
70          PatternConverter converter = createConverter("%q{2} %m");
71  
72          // act
73          StringBuffer sb = new StringBuffer();
74          converter.format(sb, basicLogEvent);
75  
76          // assert
77          String actual = sb.toString();
78          assertThat(actual, CoreMatchers.equalTo("c.a.logging.log4j.FQName"));
79      }
80  
81      private PatternConverter createConverter(String pattern)
82      {
83          CategoryCollapsingPatternParser parser = new CategoryCollapsingPatternParser(pattern, -1);
84          return parser.parse();
85      }
86  }