package test.reports;
import org.testng.*;
import org.testng.annotations.Test;
import org.testng.xml.XmlSuite;
import org.testng.xml.XmlTest;
import test.SimpleBaseTest;
import java.util.List;
public class UniqueReporterInjectionTest extends SimpleBaseTest {
@Test
public void testPruningOfDuplicateReporter() {
XmlSuite xmlSuite = createXmlSuite("Suite");
XmlTest xmlTest = createXmlTest(xmlSuite, "Test");
createXmlClass(xmlTest, UniqueReporterInjectionSample1.class);
createXmlClass(xmlTest, UniqueReporterInjectionSample2.class);
TestNG tng = create(xmlSuite);
tng.setUseDefaultListeners(false);
tng.addListener((ITestNGListener) new ReporterListenerForIssue1227());
tng.run();
//Since we have another reporting listener that is injected via the service loader file
//reporting listeners size will now have to be two.
Assert.assertEquals(tng.getReporters().size(),2);
Assert.assertEquals(ReporterListenerForIssue1227.counter, 1);
}
public static class ReporterListenerForIssue1227 implements IReporter {
static int counter = 0;
@Override
public void generateReport(List<XmlSuite> xmlSuites, List<ISuite> suites, String outputDirectory) {
counter++;
}
}
}