package jp.vmi.junit.result;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlTransient;
import org.apache.commons.lang3.time.DateFormatUtils;
/**
* Test result interface. (for TestResult map in JUnitResult)
*
* @param <T> test target type.
*/
public abstract class TestResult<T extends ITestTarget> {
protected T testTarget;
/**
* Set test target.
*
* @param testTarget test target.
*/
public void setTestTarget(T testTarget) {
this.testTarget = testTarget;
}
/**
* Get test file base name.
*
* @return test file base name.
*/
@XmlTransient
public String getBaseName() {
return testTarget.getBaseName();
}
/**
* Get test name.
*
* @return test name.
*/
@XmlAttribute
public String getName() {
return testTarget.getName();
}
/**
* Get timestamp.
*
* @return start timestamp.
*/
@XmlAttribute
public String getTimestamp() {
return DateFormatUtils.ISO_8601_EXTENDED_DATETIME_TIME_ZONE_FORMAT.format(testTarget.getStopWatch().getStartTime());
}
/**
* Get duration time of test execution.
*
* @return time
*/
@XmlAttribute
public String getTime() {
return String.format("%.3f", testTarget.getStopWatch().getDuration() / 1000.0 /* ms -> sec */);
}
}