KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > polyglot > pth > VerboseOutputController


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.text.DateFormat JavaDoc;
9 import java.util.Calendar JavaDoc;
10 import java.util.Date JavaDoc;
11 import java.util.Iterator JavaDoc;
12 import java.util.regex.Pattern JavaDoc;
13
14 import polyglot.util.*;
15 import polyglot.util.ErrorQueue;
16 import polyglot.util.SilentErrorQueue;
17 import polyglot.util.StdErrorQueue;
18
19 /**
20  *
21  */

22 public class VerboseOutputController extends OutputController{
23     private boolean alwaysShowErrorQ;
24     public VerboseOutputController(PrintStream JavaDoc out, boolean alwaysShowErrorQ) {
25         super(out);
26         this.alwaysShowErrorQ = alwaysShowErrorQ;
27     }
28      
29     protected void startScriptTestSuite(ScriptTestSuite sts) {
30         out.println("Test script " + sts.getName());
31         if (sts.getDescription() != null && sts.getDescription().length() > 0) {
32             out.println(" Description : " + sts.getDescription());
33         }
34         if (sts.getTestResult() != null) {
35             out.println(" Last run : " + getDateDisplay(sts.getTestResult().dateTestRun));
36             out.println(" Last success: " + getDateDisplay(sts.getTestResult().dateLastSuccess));
37         }
38         out.println("==============================");
39     }
40     protected void finishScriptTestSuite(ScriptTestSuite sts) {
41         out.println("Test script " + sts.getName() + " finished");
42         if (!sts.success() && sts.failureMessage != null) {
43             out.println(sts.failureMessage);
44         }
45
46         out.println(" " +
47             sts.getSuccesfulTestCount() + " out of " + sts.getTotalTestCount() +
48             " tests succeeded.");
49     }
50
51     protected void startSourceFileTest(SourceFileTest sft) {
52         out.println(sft.getName() + ": ");
53         if (sft.getDescription() != null && sft.getDescription().length() > 0) {
54             out.println(" Description : " + sft.getDescription());
55         }
56         if (sft.getTestResult() != null) {
57             out.println(" Last run : " + getDateDisplay(sft.getTestResult().dateTestRun));
58             out.println(" Last success: " + getDateDisplay(sft.getTestResult().dateLastSuccess));
59         }
60     }
61         
62     protected void finishSourceFileTest(SourceFileTest sft, ErrorQueue eq) {
63         if (sft.success()) {
64             out.println(" Test completed OK");
65         }
66         else {
67             out.print(" Test failed");
68             if (sft.getFailureMessage() != null) {
69                 out.println(": " + sft.getFailureMessage());
70             }
71             else {
72                 out.println();
73             }
74         }
75         if (alwaysShowErrorQ || !sft.success()) {
76             StdErrorQueue stdeq = new StdErrorQueue(out,
77                          eq.errorCount() + 1,
78                          sft.getName());
79                          
80             SilentErrorQueue seq = (SilentErrorQueue)eq;
81             for (Iterator JavaDoc i = seq.getErrors().iterator(); i.hasNext(); ) {
82                 ErrorInfo ei = (ErrorInfo)i.next();
83                 stdeq.enqueue(ei);
84             }
85             stdeq.flush();
86             if (seq.errorCount() > 0) {
87                 out.println("-----------------------------");
88             }
89         }
90     }
91     
92
93     public void displayTestSuiteResults(String JavaDoc suiteName, TestSuite ts) {
94         TestSuiteResult tsr = ts.getTestSuiteResult();
95         if (tsr == null || tsr.testResults.isEmpty()) {
96             out.println("No test results for " + suiteName);
97             return;
98         }
99     
100         out.println("Test script " + tsr.testName);
101         out.println(" Last run : " + getDateDisplay(tsr.dateTestRun));
102         out.println(" Last success: " + getDateDisplay(tsr.dateLastSuccess));
103
104         int total = 0;
105         int lastSuccess = 0;
106         int neverRun = 0;
107         int neverSuccess = 0;
108         for (Iterator JavaDoc iter = ts.getTests().iterator(); iter.hasNext(); ) {
109             Test t = (Test)iter.next();
110             String JavaDoc testName = t.getName();
111             TestResult tr = (TestResult)tsr.testResults.get(testName);
112             if (TestSuite.executeTest(testName, tr)) {
113                 displayTestResults(tr, testName);
114             }
115             total++;
116             if (tr != null && tr.dateLastSuccess != null && tr.dateLastSuccess.equals(tr.dateTestRun)) {
117                 lastSuccess++;
118             }
119             if (tr == null || tr.dateTestRun == null) {
120                 neverRun++;
121             }
122             if (tr == null || tr.dateLastSuccess == null) {
123                 neverSuccess++;
124             }
125         }
126         out.println("Total tests: " + total);
127         out.println(" Succeeded last run: " + lastSuccess);
128         out.println(" Never run : " + neverRun);
129         out.println(" Never succeeded : " + neverSuccess);
130     }
131
132     public void displayTestResults(TestResult tr, String JavaDoc testName) {
133         out.println(" " + testName);
134         out.println(" Last run : " + getDateDisplay(tr==null?null:tr.dateTestRun));
135         out.println(" Last success: " + getDateDisplay(tr==null?null:tr.dateLastSuccess));
136     }
137 }
138
Popular Tags