package com.yahoo.dtf.results; import java.util.ArrayList; import java.util.Properties; import com.yahoo.dtf.results.Result; import com.yahoo.dtf.util.Counter; public class Result extends Counter { private final static int TESTCASE_RESULT = 0; private final static int TESTSUITE_RESULT = 1; private final static int PASS_RESULT = 0; private final static int FAIL_RESULT = 1; private final static int SKIP_RESULT = 2; private int _passed = 0; private int _failed = 0; private int _skipped = 0; private int _total = 0; private String _name = null; private Properties _props = null; private ArrayList<Result> _results = null; private int _type = -1; private int _result = PASS_RESULT; private String _output = null; public Result(String name) { _name = name; _results = new ArrayList<Result>(); _props = new Properties(); } public ArrayList<Result> getResults() { return _results; } public void addResult(Result result) { if (result.isTestCase()) { if (result.isFailResult()) _failed++; else if (result.isPassResult()) _passed++; else if (result.isSkipResult()) _skipped++; _total++; } else if (result.isTestSuite()) { _passed+=result.getNumPassed(); _failed+=result.getNumFailed(); _skipped+=result.getNumSkipped(); _total+=result.getTotalTests(); } _results.add(result); } public int getResult() { return _result; } public void setPassResult() { _result = PASS_RESULT; } public void setPassResult(Object note) { setPassResult(); _output = note.toString(); } public void setFailResult() { _result = FAIL_RESULT; } public void setFailResult(Object note) { setFailResult(); _output = note.toString(); } public void setSkipResult() { _result = SKIP_RESULT; } public void setSkipResult(Object note) { setSkipResult(); _output = note.toString(); } public int getNumPassed() { return _passed; } public int getNumFailed() { return _failed; } public int getNumSkipped() { return _skipped; } public int getTotalTests() { return _total; } public String getOutput() { return _output; } public boolean isPassResult() { return (_result == PASS_RESULT); } public boolean isFailResult() { return (_result == FAIL_RESULT); } public boolean isSkipResult() { return (_result == SKIP_RESULT); } public int getType() { return _type; } public void setTestcase() { _type = TESTCASE_RESULT; } public void setTestsuite() { _type = TESTSUITE_RESULT; } public boolean isTestSuite() { return (_type == TESTSUITE_RESULT); } public boolean isTestCase() { return (_type == TESTCASE_RESULT); } public String getName() { return _name; } public void setName(String name) { this._name = name; } public void setProperties(Properties properties) { _props = properties; } public Properties getProperties() { return _props; } public String toString() { StringBuffer result = new StringBuffer(); if (isTestSuite()) result.append("Testsuite: "); if (isTestCase()) result.append("Testcase: "); result.append(getName()); result.append(" "); if (isPassResult()) result.append("passed."); if (isFailResult()) result.append("failed."); if (isSkipResult()) result.append("skipped."); if (isTestSuite()) { result.append("\n"); StringBuffer subResults = new StringBuffer(); for(int i = 0; i < _results.size(); i++) { subResults.append(_results.get(i).toString()); subResults.append("\n"); } result.append(subResults); } return result.toString(); } }