1/* 2 * @(#)ResultListener.java Apr 9, 2007 3 * 4 * Copyright 2007 GigaSpaces Technologies Inc. 5 */ 6 7package org.testng.remote.adapter; 8 9import java.util.Map; 10 11import org.testng.ISuite; 12import org.testng.ISuiteResult; 13import org.testng.ITestContext; 14import org.testng.SuiteRunner; 15import org.testng.reporters.TestHTMLReporter; 16 17/** 18 * This listener is called by the {@link IWorkerAdapter} implementation when a remote test result is ready. 19 * 20 * @author Guy Korland 21 * @since April 9, 2007 22 * @see IWorkerAdapter 23 */ 24public class RemoteResultListener 25{ 26 /** 27 * Holds the corresponded {@link SuiteRunner} for the processed {@link org.testng.xml.XmlSuite}. 28 */ 29 final private SuiteRunner m_runner; 30 31 /** 32 * Creates a listener for an {@link org.testng.xml.XmlSuite} result. 33 * @param runner the corresponded {@link SuiteRunner} 34 */ 35 public RemoteResultListener( SuiteRunner runner) 36 { 37 m_runner = runner; 38 } 39 40 /** 41 * Should called by the {@link IWorkerAdapter} implementation when a remote suite result is ready. 42 * @param remoteSuiteRunner remote result. 43 */ 44 public void onResult( ISuite remoteSuiteRunner) 45 { 46 m_runner.setHost(remoteSuiteRunner.getHost()); 47 Map<String, ISuiteResult> tmpResults = remoteSuiteRunner.getResults(); 48 Map<String, ISuiteResult> suiteResults = m_runner.getResults(); 49 for (Map.Entry<String, ISuiteResult> entry : tmpResults.entrySet()) 50 { 51 ISuiteResult suiteResult = entry.getValue(); 52 suiteResults.put(entry.getKey(), suiteResult); 53 ITestContext tc = suiteResult.getTestContext(); 54 TestHTMLReporter.generateLog(tc, remoteSuiteRunner.getHost(), 55 m_runner.getOutputDirectory(), 56 tc.getFailedConfigurations().getAllResults(), 57 tc.getSkippedConfigurations().getAllResults(), 58 tc.getPassedTests().getAllResults(), 59 tc.getFailedTests().getAllResults(), 60 tc.getSkippedTests().getAllResults(), 61 tc.getFailedButWithinSuccessPercentageTests().getAllResults()); 62 } 63 } 64} 65