KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > hudson > tasks > junit > PackageResult


1 package hudson.tasks.junit;
2
3 import hudson.model.AbstractBuild;
4 import org.kohsuke.stapler.StaplerRequest;
5 import org.kohsuke.stapler.StaplerResponse;
6
7 import java.util.ArrayList JavaDoc;
8 import java.util.Collection JavaDoc;
9 import java.util.Collections JavaDoc;
10 import java.util.List JavaDoc;
11 import java.util.Map JavaDoc;
12 import java.util.TreeMap JavaDoc;
13
14 /**
15  * Cumulative test result for a package.
16  *
17  * @author Kohsuke Kawaguchi
18  */

19 public final class PackageResult extends MetaTabulatedResult {
20     private final String JavaDoc packageName;
21
22     /**
23      * All {@link ClassResult}s keyed by their short name.
24      */

25     private final Map JavaDoc<String JavaDoc,ClassResult> classes = new TreeMap JavaDoc<String JavaDoc,ClassResult>();
26
27     private int passCount,failCount;
28
29     private final TestResult parent;
30
31     PackageResult(TestResult parent, String JavaDoc packageName) {
32         this.packageName = packageName;
33         this.parent = parent;
34     }
35
36     public String JavaDoc getName() {
37         return packageName;
38     }
39
40     public AbstractBuild<?,?> getOwner() {
41         return parent.getOwner();
42     }
43
44     public PackageResult getPreviousResult() {
45         TestResult tr = parent.getPreviousResult();
46         if(tr==null) return null;
47         return tr.byPackage(getName());
48     }
49
50     public String JavaDoc getTitle() {
51         return "Test Result : "+getName();
52     }
53
54     public String JavaDoc getChildTitle() {
55         return "Class";
56     }
57
58     public int getPassCount() {
59         return passCount;
60     }
61
62     public int getFailCount() {
63         return failCount;
64     }
65
66     public ClassResult getDynamic(String JavaDoc name, StaplerRequest req, StaplerResponse rsp) {
67         return classes.get(name);
68     }
69
70     public Collection JavaDoc<ClassResult> getChildren() {
71         return classes.values();
72     }
73
74     public List JavaDoc<CaseResult> getFailedTests() {
75         List JavaDoc<CaseResult> r = new ArrayList JavaDoc<CaseResult>();
76         for (ClassResult clr : classes.values()) {
77             for (CaseResult cr : clr.getChildren()) {
78                 if(!cr.isPassed())
79                     r.add(cr);
80             }
81         }
82         Collections.sort(r,CaseResult.BY_AGE);
83         return r;
84     }
85
86     void add(CaseResult r) {
87         String JavaDoc n = r.getSimpleName();
88         ClassResult c = classes.get(n);
89         if(c==null)
90             classes.put(n,c=new ClassResult(this,n));
91         c.add(r);
92     }
93
94     void freeze() {
95         passCount=failCount=0;
96         for (ClassResult cr : classes.values()) {
97             cr.freeze();
98             passCount += cr.getPassCount();
99             failCount += cr.getFailCount();
100         }
101     }
102
103
104     public int compareTo(PackageResult that) {
105         return this.packageName.compareTo(that.packageName);
106     }
107
108     public String JavaDoc getDisplayName() {
109         return packageName;
110     }
111 }
112
Popular Tags