1 package org.apache.maven.surefire.report;
2
3 import java.io.PrintWriter;
4
5 import junit.framework.TestCase;
6
7
8
9
10 public class LegacyPojoStackTraceWriterTest
11 extends TestCase
12 {
13
14 public void testWriteTrimmedTraceToString()
15 {
16 String stackTrace = "junit.framework.AssertionFailedError: blah\n" +
17 " at junit.framework.Assert.fail(Assert.java:47)\n" +
18 " at TestSurefire3.testQuote(TestSurefire3.java:23)\n" +
19 " at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n" +
20 " at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)\n" +
21 " at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)\n" +
22 " at java.lang.reflect.Method.invoke(Method.java:585)\n" +
23 " at junit.framework.TestCase.runTest(TestCase.java:154)\n" +
24 " at junit.framework.TestCase.runBare(TestCase.java:127)\n" +
25 " at junit.framework.TestResult$1.protect(TestResult.java:106)\n" +
26 " at junit.framework.TestResult.runProtected(TestResult.java:124)\n" +
27 " at junit.framework.TestResult.run(TestResult.java:109)\n" +
28 " at junit.framework.TestCase.run(TestCase.java:118)\n" +
29 " at junit.framework.TestSuite.runTest(TestSuite.java:208)\n" +
30 " at junit.framework.TestSuite.run(TestSuite.java:203)\n" +
31 " at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n" +
32 " at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)\n" +
33 " at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)\n" +
34 " at java.lang.reflect.Method.invoke(Method.java:585)\n" +
35 " at org.apache.maven.surefire.junit.JUnitTestSet.execute(JUnitTestSet.java:213)\n" +
36 " at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)\n"
37 +
38 " at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)\n"
39 +
40 " at org.apache.maven.surefire.Surefire.run(Surefire.java:132)\n" +
41 " at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n" +
42 " at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)\n" +
43 " at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)\n" +
44 " at java.lang.reflect.Method.invoke(Method.java:585)\n" +
45 " at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:318)\n" +
46 " at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:956)\n";
47 MockThrowable t = new MockThrowable( stackTrace );
48 LegacyPojoStackTraceWriter w = new LegacyPojoStackTraceWriter( "TestSurefire3", "testQuote", t );
49 String out = w.writeTrimmedTraceToString();
50 String expected = "junit.framework.AssertionFailedError: blah\n" +
51 " at junit.framework.Assert.fail(Assert.java:47)\n" +
52 " at TestSurefire3.testQuote(TestSurefire3.java:23)\n";
53 assertEquals( expected, out );
54 }
55
56 public void testCausedBy()
57 {
58 String stackTrace = "java.lang.RuntimeException: blah\n" +
59 " at TestSurefire3.testBlah(TestSurefire3.java:45)\n" +
60 " at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n" +
61 " at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)\n" +
62 " at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)\n" +
63 " at java.lang.reflect.Method.invoke(Method.java:585)\n" +
64 " at junit.framework.TestCase.runTest(TestCase.java:154)\n" +
65 " at junit.framework.TestCase.runBare(TestCase.java:127)\n" +
66 " at junit.framework.TestResult$1.protect(TestResult.java:106)\n" +
67 " at junit.framework.TestResult.runProtected(TestResult.java:124)\n" +
68 " at junit.framework.TestResult.run(TestResult.java:109)\n" +
69 " at junit.framework.TestCase.run(TestCase.java:118)\n" +
70 " at junit.framework.TestSuite.runTest(TestSuite.java:208)\n" +
71 " at junit.framework.TestSuite.run(TestSuite.java:203)\n" +
72 " at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n" +
73 " at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)\n" +
74 " at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)\n" +
75 " at java.lang.reflect.Method.invoke(Method.java:585)\n" +
76 " at org.apache.maven.surefire.junit.JUnitTestSet.execute(JUnitTestSet.java:213)\n" +
77 " at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)\n"
78 +
79 " at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)\n"
80 +
81 " at org.apache.maven.surefire.Surefire.run(Surefire.java:132)\n" +
82 " at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n" +
83 " at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)\n" +
84 " at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)\n" +
85 " at java.lang.reflect.Method.invoke(Method.java:585)\n" +
86 " at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:318)\n" +
87 " at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:956)\n" +
88 "Caused by: junit.framework.AssertionFailedError: \"\n" +
89 " at junit.framework.Assert.fail(Assert.java:47)\n" +
90 " at TestSurefire3.testQuote(TestSurefire3.java:23)\n" +
91 " at TestSurefire3.testBlah(TestSurefire3.java:43)\n" +
92 " at TestSurefire3.testBlah(TestSurefire3.java:43)\n" +
93 " ... 26 more\n";
94 MockThrowable t = new MockThrowable( stackTrace );
95 LegacyPojoStackTraceWriter w = new LegacyPojoStackTraceWriter( "TestSurefire3", "testBlah", t );
96 String out = w.writeTrimmedTraceToString();
97 String expected = "java.lang.RuntimeException: blah\n" +
98 " at TestSurefire3.testBlah(TestSurefire3.java:45)\n" +
99 "Caused by: junit.framework.AssertionFailedError: \"\n" +
100 " at junit.framework.Assert.fail(Assert.java:47)\n" +
101 " at TestSurefire3.testQuote(TestSurefire3.java:23)\n" +
102 " at TestSurefire3.testBlah(TestSurefire3.java:43)\n" +
103 " at TestSurefire3.testBlah(TestSurefire3.java:43)\n" +
104 " ... 26 more\n";
105 assertEquals( expected, out );
106 }
107
108 class MockThrowable
109 extends Throwable
110 {
111 private static final long serialVersionUID = 1L;
112
113 private final String stackTrace;
114
115 public MockThrowable( String stackTrace )
116 {
117 this.stackTrace = stackTrace;
118 }
119
120 public void printStackTrace( PrintWriter s )
121 {
122 s.write( stackTrace );
123 }
124 }
125
126 }