KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > polyglot > pth > StdOutputController


1 /*
2  * Author : Stephen Chong
3  * Created: Feb 5, 2004
4  */

5 package polyglot.pth;
6
7 import java.io.PrintStream JavaDoc;
8 import java.util.Iterator JavaDoc;
9
10 import polyglot.util.ErrorQueue;
11
12 /**
13  *
14  */

15 public class StdOutputController extends OutputController{
16     public StdOutputController(PrintStream JavaDoc out) {
17         super(out);
18     }
19      
20     protected void startScriptTestSuite(ScriptTestSuite sts) {
21         out.println("Test script " + sts.getName());
22     }
23     protected void finishScriptTestSuite(ScriptTestSuite sts) {
24         if (!sts.success() && sts.failureMessage != null) {
25             out.println(sts.failureMessage);
26         }
27
28         out.println(sts.getName() + ": " +
29             sts.getSuccesfulTestCount() + " out of " + sts.getTotalTestCount() +
30             " tests succeeded.");
31     }
32
33     protected void startSourceFileTest(SourceFileTest sft) {
34         out.print(" " + sft.getName() + ": ");
35     }
36     
37     protected void finishSourceFileTest(SourceFileTest sft, ErrorQueue eq) {
38         if (sft.success()) {
39             out.println("OK");
40         }
41         else if (sft.getFailureMessage() != null) {
42             out.println(sft.getFailureMessage());
43         }
44         else {
45             out.println("Failed (no message)");
46         }
47     }
48     
49
50     public void displayTestSuiteResults(String JavaDoc suiteName, TestSuite ts) {
51         TestSuiteResult tsr = ts.getTestSuiteResult();
52         
53         if (tsr == null || tsr.testResults.isEmpty()) {
54             out.println("No test results for " + suiteName);
55             return;
56         }
57     
58         out.print("Test script \"" + tsr.testName + "\"");
59         out.println(" Last run: " + getDateDisplay(tsr.dateTestRun));
60         out.println(" Contains tests:");
61         
62         int total = 0;
63         int grandTotal = 0;
64         int lastSuccess = 0;
65         int neverRun = 0;
66         int neverSuccess = 0;
67         for (Iterator JavaDoc iter = ts.getTests().iterator(); iter.hasNext(); ) {
68             Test t = (Test)iter.next();
69             String JavaDoc testName = t.getName();
70             TestResult tr = (TestResult)tsr.testResults.get(testName);
71             if (TestSuite.executeTest(testName, tr)) {
72                 displayTestResults(tr, testName);
73
74                 total++;
75                 if (tr != null && tr.dateLastSuccess != null && tr.dateLastSuccess.equals(tr.dateTestRun)) {
76                     lastSuccess++;
77                 }
78                 if (tr == null || tr.dateTestRun == null) {
79                     neverRun++;
80                 }
81                 if (tr == null || tr.dateLastSuccess == null) {
82                     neverSuccess++;
83                 }
84             }
85             grandTotal++;
86         }
87         out.print("Total tests displayed: " + total);
88         if (total != grandTotal) {
89             out.print(" (out of " + grandTotal + " in script)");
90         }
91         out.println();
92         out.println(" Succeeded last run: " + lastSuccess);
93         out.println(" Never run : " + neverRun);
94         out.println(" Never succeeded : " + neverSuccess);
95     }
96
97     private static final int TEST_NAME_COLUMN_WIDTH = 30;
98     public void displayTestResults(TestResult tr, String JavaDoc testName) {
99         StringBuffer JavaDoc sb = new StringBuffer JavaDoc();
100         sb.append(" ");
101         sb.append(testName);
102         while (sb.length() < TEST_NAME_COLUMN_WIDTH) {
103             sb.append(' ');
104         }
105         sb.append(" run ");
106         sb.append(getDateDisplay(tr==null?null:tr.dateTestRun));
107         sb.append("; success ");
108         sb.append(getDateDisplay(tr==null?null:tr.dateLastSuccess));
109         out.println(sb.toString());
110     }
111 }
112
Popular Tags