PowerUnitProviderListener.java
/**
* Powerunit - A JDK1.8 test framework
* Copyright (C) 2014 Mathieu Boretti.
*
* This file is part of Powerunit
*
* Powerunit is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Powerunit is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Powerunit. If not, see <http://www.gnu.org/licenses/>.
*/
package ch.powerunit.surefire;
import org.apache.maven.surefire.report.CategorizedReportEntry;
import org.apache.maven.surefire.report.ConsoleLogger;
import org.apache.maven.surefire.report.LegacyPojoStackTraceWriter;
import org.apache.maven.surefire.report.RunListener;
import ch.powerunit.TestContext;
import ch.powerunit.TestResultListener;
/**
* @author borettim
*
*/
public class PowerUnitProviderListener<T> implements TestResultListener<T> {
private final RunListener rl;
private final Class<?> underTest;
private final ConsoleLogger consoleLogger;
public PowerUnitProviderListener(ConsoleLogger consoleLogger,
RunListener rl, Class<?> underTest) {
this.rl = rl;
this.underTest = underTest;
this.consoleLogger = consoleLogger;
}
@Override
public void notifyStart(TestContext<T> context) {
rl.testStarting(new CategorizedReportEntry(
underTest.getCanonicalName(), context.getFullTestName(),
context.getTestCategories()));
}
@Override
public void notifySuccess(TestContext<T> context) {
rl.testSucceeded(new CategorizedReportEntry(underTest
.getCanonicalName(), context.getFullTestName(), context
.getTestCategories()));
}
@Override
public void notifyFailure(TestContext<T> context, Throwable cause) {
rl.testFailed(new CategorizedReportEntry(underTest.getCanonicalName(),
context.getFullTestName(), context.getTestCategories(),
new LegacyPojoStackTraceWriter(underTest.getCanonicalName(),
context.getFullTestName(), cause), null));
}
@Override
public void notifySetStart(String setName, String groups) {
rl.testSetStarting(new CategorizedReportEntry(underTest
.getCanonicalName(), setName, groups));
}
@Override
public void notifySetEnd(String setName, String groups) {
rl.testSetCompleted(new CategorizedReportEntry(underTest
.getCanonicalName(), setName, groups));
}
@Override
public void notifySkipped(TestContext<T> context) {
rl.testSkipped(new CategorizedReportEntry(underTest.getCanonicalName(),
context.getFullTestName(), context.getTestCategories()));
}
@Override
public void notifyError(TestContext<T> context, Throwable cause) {
rl.testError(new CategorizedReportEntry(underTest.getCanonicalName(),
context.getFullTestName(), context.getTestCategories(),
new LegacyPojoStackTraceWriter(underTest.getCanonicalName(),
context.getFullTestName(), cause), null));
}
@Override
public void notifyParameterStart(String setName, String parameterName) {
// Do nothing
}
@Override
public void notifyParameterEnd(String setName, String parameterName) {
// Do nothing
}
}