/*
* JBoss, Home of Professional Open Source
* Copyright 2007, Red Hat Middleware LLC, and individual contributors
* as indicated by the @author tags.
* See the copyright.txt in the distribution for a
* full listing of individual contributors.
* This copyrighted material is made available to anyone wishing to use,
* modify, copy, or redistribute it subject to the terms and conditions
* of the GNU Lesser General Public License, v. 2.1.
* This program is distributed in the hope that it will be useful, but WITHOUT A
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
* PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
* You should have received a copy of the GNU Lesser General Public License,
* v.2.1 along with this distribution; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*
* (C) 2005-2006,
* @author JBoss Inc.
*/
package com.jboss.transaction.wstf.test;
import junit.framework.Test;
import junit.framework.TestResult;
import junit.framework.AssertionFailedError;
import java.util.List;
import java.util.LinkedList;
/**
* TestResult which holds list of passed tests, not only failed
* or error tests, and time of executions of them.
* @author <a href="mailto:istudens@redhat.com">Ivo Studensky</a>
* @version <tt>$Revision$</tt>
*/
public class FullTestResult extends TestResult
{
private List _passedTests;
private List _failedTests;
private List _errorTests;
private long _startTime = 0;
private boolean _failed = false;
private boolean _error = false;
private AssertionFailedError _assertionFailedError = null;
private Throwable _throwable = null;
public FullTestResult()
{
super();
_passedTests = new LinkedList();
_failedTests = new LinkedList();
_errorTests = new LinkedList();
}
public List getPassedTests()
{
return _passedTests;
}
public List getFailedTests()
{
return _failedTests;
}
public List getErrorTests()
{
return _errorTests;
}
/*----------- OVERWRITES ----------*/
public void startTest(Test test)
{
super.startTest(test);
_startTime = System.currentTimeMillis();
_failed = false;
_error = false;
_assertionFailedError = null;
_throwable = null;
}
public void addError(Test test, Throwable throwable)
{
super.addError(test, throwable);
_error = true;
_throwable = throwable;
}
public void addFailure(Test test, AssertionFailedError assertionFailedError)
{
super.addFailure(test, assertionFailedError);
_failed = true;
_assertionFailedError = assertionFailedError;
}
public void endTest(Test test)
{
super.endTest(test);
if (_failed)
{
FailedTest failedTest = new FailedTest();
failedTest.test = test;
failedTest.duration = System.currentTimeMillis() - _startTime;
failedTest.assertionFailedError = _assertionFailedError;
_failedTests.add(failedTest);
}
else if (_error)
{
ErrorTest errorTest = new ErrorTest();
errorTest.test = test;
errorTest.duration = System.currentTimeMillis() - _startTime;
errorTest.throwable = _throwable;
_errorTests.add(errorTest);
}
else
{
PassedTest passedTest = new PassedTest();
passedTest.test = test;
passedTest.duration = System.currentTimeMillis() - _startTime;
_passedTests.add(passedTest);
}
}
/*---------- SUBCLASSES -----------*/
public class PassedTest
{
public Test test;
public long duration;
}
public class FailedTest
{
public Test test;
public long duration;
public AssertionFailedError assertionFailedError;
}
public class ErrorTest
{
public Test test;
public long duration;
public Throwable throwable;
}
}