/** * 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 } }