View Javadoc

1   package org.apache.maven.surefire.report;
2   
3   import java.io.PrintWriter;
4   
5   import junit.framework.TestCase;
6   
7   /**
8    * @author Kristian Rosenvold
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 }