KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > jester > tests > ReportTest


1 package jester.tests;
2
3 import java.io.PrintWriter JavaDoc;
4 import java.io.StringWriter JavaDoc;
5
6 import jester.*;
7 import junit.framework.*;
8
9 public class ReportTest extends TestCase {
10     private XMLReportWriter myXMLWriter = new MockXMLReportWriter();
11
12     public ReportTest(String JavaDoc name) {
13         super(name);
14     }
15     public static void main(String JavaDoc args[]) {
16         junit.awtui.TestRunner.main(new String JavaDoc[] { "jester.tests.ReportTest" });
17     }
18     public static Test suite() {
19         TestSuite suite = new TestSuite(ReportTest.class);
20         return suite;
21     }
22
23     private Report newRealReport() {
24         return newRealReport(new PrintWriter JavaDoc(new StringWriter JavaDoc()));
25     }
26
27     private Report newRealReport(PrintWriter JavaDoc aPrintWriter) {
28         return new RealReport(new TestConfiguration(), aPrintWriter, myXMLWriter, new MockProgressReporter());
29     }
30     
31     private void startFile(Report aReport, String JavaDoc fileName, String JavaDoc originalContents) throws ConfigurationException, SourceChangeException{
32         aReport.startFile(fileName, new IgnoreListDocument(originalContents,new IgnoreList("")));
33     }
34
35     public void testBottomScore() throws SourceChangeException {
36         Report aReport = newRealReport();
37         startFile(aReport, "sourceFileName", "originalContents");
38         int indexOfChange = 7;
39         aReport.changeThatDidNotCauseTestsToFail(indexOfChange, "valueChangedFrom", "valueChangedTo");
40         assertEquals(0, aReport.totalScore());
41         assertEquals(0, aReport.fileScore());
42     }
43
44     public void testCantFinishDifferentFile() throws SourceChangeException {
45         Report aReport = newRealReport();
46         startFile(aReport, "sourceFileName", "originalContents");
47         try {
48             aReport.finishFile("otherFile");
49             fail("can't finish different file - should have thrown exception");
50         } catch (SourceChangeException ex) {
51         }
52     }
53
54     public void testCantStartTwoFiles() throws SourceChangeException {
55         Report aReport = newRealReport();
56         startFile(aReport, "sourceFileName", "originalContents");
57         try {
58             startFile(aReport, "otherFile", "originalContents");
59             fail("can't start file if haven't finished other - should have thrown exception");
60         } catch (SourceChangeException ex) {
61         }
62     }
63
64     public void testChangesToSameFileOrderedByIndex() throws SourceChangeException {
65         StringWriter JavaDoc sw = new StringWriter JavaDoc();
66         Report aReport = newRealReport(new PrintWriter JavaDoc(sw));
67         startFile(aReport, "sourceFileName1", "theOriginalContentsBeforeChanging");
68         {
69             int indexOfChange4 = 7;
70             aReport.changeThatDidNotCauseTestsToFail(indexOfChange4, "valueChangedFrom4", "valueChangedTo4");
71         }
72         {
73             int indexOfChange1 = 3;
74             aReport.changeThatDidNotCauseTestsToFail(indexOfChange1, "valueChangedFrom1", "valueChangedTo1");
75         }
76         {
77             int indexOfChange3 = 6;
78             aReport.changeThatDidNotCauseTestsToFail(indexOfChange3, "valueChangedFrom3", "valueChangedTo3");
79         }
80         {
81             int indexOfChange2 = 5;
82             aReport.changeThatDidNotCauseTestsToFail(indexOfChange2, "valueChangedFrom2", "valueChangedTo2");
83         }
84         aReport.finishFile("sourceFileName1");
85         String JavaDoc reportString = sw.toString();
86         int indexOfC1 = reportString.indexOf("valueChangedFrom1");
87         int indexOfC2 = reportString.indexOf("valueChangedFrom2");
88         int indexOfC3 = reportString.indexOf("valueChangedFrom3");
89         int indexOfC4 = reportString.indexOf("valueChangedFrom4");
90         assertTrue("change 1 was recorded", indexOfC1 != -1);
91         assertTrue("change 2 was recorded", indexOfC2 != -1);
92         assertTrue("change 3 was recorded", indexOfC3 != -1);
93         assertTrue("change 4 was recorded", indexOfC4 != -1);
94         assertTrue("changes to file 1 are sorted", indexOfC1 < indexOfC2);
95         assertTrue("changes to file 1 are sorted", indexOfC2 < indexOfC3);
96         assertTrue("changes to file 1 are sorted", indexOfC3 < indexOfC4);
97     }
98
99     public void testFileScoreSeparateFromTotalScore() throws SourceChangeException {
100         Report aReport = newRealReport();
101         startFile(aReport, "sourceFileName", "originalContents");
102         {
103             int indexOfChange = 5;
104             aReport.changeThatCausedTestsToFail(indexOfChange, "valueChangedFrom", "valueChangedTo");
105         }
106         {
107             int indexOfChange = 7;
108             aReport.changeThatDidNotCauseTestsToFail(indexOfChange, "valueChangedFrom", "valueChangedTo");
109         }
110         aReport.finishFile("sourceFileName");
111         startFile(aReport, "otherFile", "originalContents");
112         assertEquals(50, aReport.totalScore());
113         assertEquals(Report.INITIAL_SCORE, aReport.fileScore());
114     }
115
116     public void testInitialScore() throws SourceChangeException {
117         Report aReport = newRealReport();
118         assertEquals(Report.INITIAL_SCORE, aReport.totalScore());
119         assertEquals(Report.INITIAL_SCORE, aReport.fileScore());
120
121         aReport = newRealReport();
122         startFile(aReport, "sourceFileName", "originalContents");
123         assertEquals(Report.INITIAL_SCORE, aReport.totalScore());
124         assertEquals(Report.INITIAL_SCORE, aReport.fileScore());
125     }
126
127     public void testMediumScore() throws SourceChangeException {
128         Report aReport = newRealReport();
129         startFile(aReport, "sourceFileName", "originalContents");
130         {
131             int indexOfChange = 5;
132             aReport.changeThatCausedTestsToFail(indexOfChange, "valueChangedFrom", "valueChangedTo");
133         }
134         {
135             int indexOfChange = 7;
136             aReport.changeThatDidNotCauseTestsToFail(indexOfChange, "valueChangedFrom", "valueChangedTo");
137         }
138         assertEquals(50, aReport.totalScore());
139         assertEquals(50, aReport.fileScore());
140     }
141
142     public void testThatChangeThatCausedTestsToFailIsNotIncluded() throws SourceChangeException {
143         StringWriter JavaDoc sw = new StringWriter JavaDoc();
144         Report aReport = newRealReport(new PrintWriter JavaDoc(sw));
145         startFile(aReport, "sourceFileName", "originalContents");
146
147         int indexOfChange = 5;
148         aReport.changeThatCausedTestsToFail(indexOfChange, "valueChangedFrom", "valueChangedTo");
149         aReport.finishFile("sourceFileName");
150         String JavaDoc reportString = sw.toString();
151         assertTrue("report should include interesting stuff1", reportString.indexOf("sourceFileName") != -1);
152         assertTrue("report should not include uninteresting stuff2", reportString.indexOf("valueChangedFrom") == -1);
153         assertTrue("report should not include uninteresting stuff3", reportString.indexOf("valueChangedTo") == -1);
154         assertTrue("report should not include uninteresting stuff4", reportString.indexOf(Integer.toString(indexOfChange)) == -1);
155     }
156
157     public void testThatChangeThatDidNotCauseTestsToFailIsIncluded() throws SourceChangeException {
158         StringWriter JavaDoc sw = new StringWriter JavaDoc();
159         Report aReport = newRealReport(new PrintWriter JavaDoc(sw));
160         startFile(aReport, "sourceFileName", "theOriginalContentsBeforeChanging");
161
162         int indexOfChange = 5;
163         aReport.changeThatDidNotCauseTestsToFail(indexOfChange, "valueChangedFrom", "valueChangedTo");
164         aReport.finishFile("sourceFileName");
165         String JavaDoc reportString = sw.toString();
166         assertTrue("report should include interesting stuff1", reportString.indexOf("sourceFileName") != -1);
167         assertTrue("report should include interesting stuff2", reportString.indexOf("valueChangedFrom") != -1);
168         assertTrue("report should include interesting stuff3", reportString.indexOf("valueChangedTo") != -1);
169         assertTrue("report should include interesting stuff4", reportString.indexOf(Integer.toString(indexOfChange)) != -1);
170     }
171
172     public void testTopScore() throws SourceChangeException {
173         Report aReport = newRealReport();
174         startFile(aReport, "sourceFileName", "originalContents");
175         int indexOfChange = 5;
176         aReport.changeThatCausedTestsToFail(indexOfChange, "valueChangedFrom", "valueChangedTo");
177         assertEquals(100, aReport.totalScore());
178         assertEquals(100, aReport.fileScore());
179     }
180
181     public void testTotalScoreForManyFiles() throws SourceChangeException {
182         Report aReport = newRealReport();
183         //
184
startFile(aReport, "sourceFileName1", "theOriginalContentsBeforeChanging");
185         {
186             int indexOfChange = 5;
187             aReport.changeThatCausedTestsToFail(indexOfChange, "valueChangedFrom", "valueChangedTo");
188         }
189         {
190             int indexOfChange = 7;
191             aReport.changeThatDidNotCauseTestsToFail(indexOfChange, "valueChangedFrom", "valueChangedTo");
192         }
193         assertEquals(50, aReport.fileScore());
194         aReport.finishFile("sourceFileName1");
195         //
196
startFile(aReport, "sourceFileName2", "theOriginalContentsBeforeChanging");
197         {
198             int indexOfChange = 5;
199             aReport.changeThatDidNotCauseTestsToFail(indexOfChange, "valueChangedFrom", "valueChangedTo");
200         }
201         {
202             int indexOfChange = 7;
203             aReport.changeThatCausedTestsToFail(indexOfChange, "valueChangedFrom", "valueChangedTo");
204         }
205         {
206             int indexOfChange = 9;
207             aReport.changeThatDidNotCauseTestsToFail(indexOfChange, "valueChangedFrom", "valueChangedTo");
208         }
209         assertEquals(34, aReport.fileScore());
210         aReport.finishFile("sourceFileName2");
211         //
212
assertEquals(40, aReport.totalScore());
213     }
214
215     public void testFileMustBeStarted() {
216         Report aReport = newRealReport();
217         {
218             try {
219                 int indexOfChange = 5;
220                 aReport.changeThatCausedTestsToFail(indexOfChange, "valueChangedFrom", "valueChangedTo");
221                 fail("can't report on file haven't started (changeThatCausedTestsToFail) - should have thrown exception");
222             } catch (SourceChangeException ex) {
223             }
224         }
225         {
226             try {
227                 int indexOfChange = 7;
228                 aReport.changeThatDidNotCauseTestsToFail(indexOfChange, "valueChangedFrom", "valueChangedTo");
229                 fail("can't report on file haven't started (changeThatDidNotCauseTestsToFail) - should have thrown exception");
230             } catch (SourceChangeException ex) {
231             }
232         }
233     }
234 }
Popular Tags