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 ; 8 import java.util.Collection ; 9 import java.util.Collections ; 10 import java.util.List ; 11 import java.util.Map ; 12 import java.util.TreeMap ; 13 14 19 public final class PackageResult extends MetaTabulatedResult { 20 private final String packageName; 21 22 25 private final Map <String ,ClassResult> classes = new TreeMap <String ,ClassResult>(); 26 27 private int passCount,failCount; 28 29 private final TestResult parent; 30 31 PackageResult(TestResult parent, String packageName) { 32 this.packageName = packageName; 33 this.parent = parent; 34 } 35 36 public String 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 getTitle() { 51 return "Test Result : "+getName(); 52 } 53 54 public String 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 name, StaplerRequest req, StaplerResponse rsp) { 67 return classes.get(name); 68 } 69 70 public Collection <ClassResult> getChildren() { 71 return classes.values(); 72 } 73 74 public List <CaseResult> getFailedTests() { 75 List <CaseResult> r = new ArrayList <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 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 getDisplayName() { 109 return packageName; 110 } 111 } 112 | Popular Tags |