1 package ch.qos.logback.classic.pattern; 2 3 import static org.junit.Assert.assertEquals; 4 5 import java.io.PrintWriter; 6 import java.io.StringWriter; 7 8 import org.junit.After; 9 import org.junit.Before; 10 import org.junit.Test; 11 12 import ch.qos.logback.classic.Level; 13 import ch.qos.logback.classic.LoggerContext; 14 import ch.qos.logback.classic.spi.LoggingEvent; 15 import ch.qos.logback.classic.util.TeztHelper; 16 17 public class ThrowableProxyConverterTest { 18 19 LoggerContext lc = new LoggerContext(); 20 ThrowableProxyConverter tpc = new ThrowableProxyConverter(); 21 StringWriter sw = new StringWriter(); 22 PrintWriter pw = new PrintWriter(sw); 23 24 @Before 25 public void setUp() throws Exception { 26 tpc.setContext(lc); 27 tpc.start(); 28 } 29 30 @After 31 public void tearDown() throws Exception { 32 } 33 34 private LoggingEvent createLoggingEvent(Throwable t) { 35 LoggingEvent le = new LoggingEvent(this.getClass().getName(), lc 36 .getLogger(LoggerContext.ROOT_NAME), Level.DEBUG, "test message", t, 37 null); 38 return le; 39 } 40 41 @Test 42 public void smoke() { 43 Exception t = new Exception("smoke"); 44 verify(t); 45 } 46 47 @Test 48 public void nested() { 49 Throwable t = TeztHelper.makeNestedException(1); 50 verify(t); 51 } 52 53 void verify(Throwable t) { 54 t.printStackTrace(pw); 55 56 LoggingEvent le = createLoggingEvent(t); 57 String result = tpc.convert(le); 58 System.out.println(result); 59 result = result.replace("common frames omitted", "more"); 60 assertEquals(sw.toString(), result); 61 } 62 63 64 }