package com.google.jstestdriver.output; import com.google.inject.Inject; import com.google.jstestdriver.BrowserInfo; import com.google.jstestdriver.FileResult; import com.google.jstestdriver.TestCase; import com.google.jstestdriver.TestResult; import com.google.jstestdriver.hooks.TestListener; import java.util.Set; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * Print results to multiple result printers simultaneously. * * @author alexeagle@google.com (Alex Eagle) */ public class MultiTestResultListener implements TestListener { private static final Logger logger = LoggerFactory.getLogger(MultiTestResultListener.class); private final Set<TestListener> delegates; @Inject public MultiTestResultListener(Set<TestListener> delegates) { this.delegates = delegates; logger.debug("listener:{} delegates: {}", this, delegates); } public void onTestComplete(TestResult testResult) { for (TestListener delegate : delegates) { delegate.onTestComplete(testResult); } } public void finish() { for (TestListener delegate : delegates) { delegate.finish(); } } public void onFileLoad(BrowserInfo browser, FileResult fileResult) { for (TestListener delegate : delegates) { delegate.onFileLoad(browser, fileResult); } } @Override public void onTestRegistered(BrowserInfo browser, TestCase testCase) { for (TestListener delegate : delegates) { delegate.onTestRegistered(browser, testCase); } } }