1
2
3
4
5
6
7
8
9
10 package ch.qos.logback.core.pattern.parser;
11
12 import static org.junit.Assert.assertEquals;
13 import static org.junit.Assert.assertFalse;
14 import static org.junit.Assert.assertTrue;
15
16 import org.junit.Test;
17
18 import ch.qos.logback.core.Context;
19 import ch.qos.logback.core.ContextBase;
20 import ch.qos.logback.core.pattern.ExceptionalConverter;
21 import ch.qos.logback.core.pattern.PatternLayoutBase;
22 import ch.qos.logback.core.status.StatusChecker;
23 import ch.qos.logback.core.status.StatusManager;
24 import ch.qos.logback.core.util.StatusPrinter;
25
26
27 abstract public class AbstractPatternLayoutBaseTest<E> {
28
29 abstract public PatternLayoutBase<E> getPatternLayoutBase();
30 abstract public E getEventObject();
31 abstract public Context getContext();
32
33 @Test
34 public void testUnStarted() {
35 PatternLayoutBase<E> plb = getPatternLayoutBase();
36 Context context = new ContextBase();
37 plb.setContext(context);
38 String s = plb.doLayout(getEventObject());
39 assertEquals("", s);
40 StatusManager sm = context.getStatusManager();
41 StatusPrinter.print(sm);
42 }
43
44
45
46
47
48
49 @Test
50 public void testConverterStart() {
51 PatternLayoutBase<E> plb = getPatternLayoutBase();
52 plb.setContext(getContext());
53 plb.getInstanceConverterMap().put("EX", ExceptionalConverter.class.getName());
54 plb.setPattern("%EX");
55 plb.start();
56 String result = plb.doLayout(getEventObject());
57 assertFalse(result.contains("%PARSER_ERROR_EX"));
58
59 }
60
61 @Test
62 public void testStarted() {
63 PatternLayoutBase<E> plb = getPatternLayoutBase();
64 Context context = new ContextBase();
65 plb.setContext(context);
66 String s = plb.doLayout(getEventObject());
67 assertEquals("", s);
68 StatusManager sm = context.getStatusManager();
69 StatusPrinter.print(sm);
70 }
71
72 @Test
73 public void testNullPattern() {
74
75 PatternLayoutBase<E> plb = getPatternLayoutBase();
76 Context context = new ContextBase();
77 plb.setContext(context);
78 plb.start();
79 String s = plb.doLayout(getEventObject());
80 assertEquals("", s);
81 StatusChecker checker = new StatusChecker(context.getStatusManager());
82
83 assertTrue(checker.containsMatch("Failed to parse pattern \"null\""));
84 }
85
86 }