package hudson.plugins.seleniumhq; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.Serializable; /** * * @author Pascal Martin * */ public class SuiteResult implements Serializable { private int numTestPasses; private int numTestFailures; private int numCommandPasses; private int numCommandFailures; private int numCommandErrors; public SuiteResult(int numTestPasses, int numTestFailures) { this.numTestPasses = numTestPasses; this.numTestFailures = numTestFailures; } public SuiteResult(int numTestPasses, int numTestFailures, int numCommandPasses, int numCommandFailures, int numCommandErrors) { this.numTestPasses = numTestPasses; this.numTestFailures = numTestFailures; this.numCommandPasses = numCommandPasses; this.numCommandFailures = numCommandFailures; this.numCommandErrors = numCommandErrors; } public int getNumTestPasses() { return numTestPasses; } public int getNumTestFailures() { return numTestFailures; } public int numCommandPasses() { return numCommandPasses; } public int numCommandFailures() { return numCommandFailures; } public int numCommandErrors() { return numCommandErrors; } public static SuiteResult parse(InputStream xmlReport) throws Exception { int numTestPasses = 0; int numTestFailures = 0; int numCommandPasses = 0; int numCommandFailures = 0; int numCommandErrors = 0; BufferedReader buff = null; try { buff = new BufferedReader( new InputStreamReader(xmlReport)); numTestPasses = Integer.valueOf(readInfo(buff,"numTestPasses:")).intValue(); numTestFailures = Integer.valueOf(readInfo(buff,"numTestFailures:")).intValue(); numCommandPasses = Integer.valueOf(readInfo(buff,"numCommandPasses:")).intValue(); numCommandFailures = Integer.valueOf(readInfo(buff,"numCommandFailures:")).intValue(); numCommandErrors = Integer.valueOf(readInfo(buff,"numCommandErrors:")).intValue(); buff.close(); } finally { if (buff != null) { buff.close(); } } return new SuiteResult(numTestPasses, numTestFailures, numCommandPasses, numCommandFailures, numCommandErrors); } private static String readInfo(BufferedReader buff, String infoName) throws IOException { String line; boolean isNextLine = false; while ((line = buff.readLine()) != null) { if (isNextLine) { return line.substring(4, line.length()-5); } if (line.indexOf(infoName) != -1) { isNextLine = true; } } return null; } private static final long serialVersionUID = 1L; }