package org.testng.xml;
import org.testng.TestNGException;
import org.testng.remote.strprotocol.GenericMessage;
import org.testng.remote.strprotocol.IRemoteSuiteListener;
import org.testng.remote.strprotocol.IRemoteTestListener;
import org.testng.remote.strprotocol.SuiteMessage;
import org.testng.remote.strprotocol.TestMessage;
import org.testng.remote.strprotocol.TestResultMessage;
import org.xml.sax.SAXException;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
/**
* Parses testng-result.xml.
*
* @see ResultContentHandler
*
* @author Cedric Beust <cedric@beust.com>
*/
public class ResultXMLParser extends XMLParser<Object> {
private IRemoteTestListener m_testListener;
private IRemoteSuiteListener m_suiteListener;
public ResultXMLParser(IRemoteSuiteListener suiteListener, IRemoteTestListener testListener) {
m_suiteListener = suiteListener;
m_testListener = testListener;
}
public void parse() {
}
@Override
public Object parse(String currentFile, InputStream inputStream, boolean loadClasses) {
ResultContentHandler handler = new ResultContentHandler(m_suiteListener, m_testListener,
loadClasses);
try {
parse(inputStream, handler);
return null;
}
catch (FileNotFoundException e) {
throw new TestNGException(e);
} catch (SAXException e) {
throw new TestNGException(e);
} catch (IOException e) {
throw new TestNGException(e);
}
}
public static void main(String[] args) throws FileNotFoundException {
IRemoteSuiteListener l1 = new IRemoteSuiteListener() {
@Override
public void onInitialization(GenericMessage genericMessage) {
}
@Override
public void onStart(SuiteMessage suiteMessage) {
}
@Override
public void onFinish(SuiteMessage suiteMessage) {
}
};
IRemoteTestListener l2 = new IRemoteTestListener() {
@Override
public void onStart(TestMessage tm) {
}
@Override
public void onFinish(TestMessage tm) {
}
@Override
public void onTestStart(TestResultMessage trm) {
}
@Override
public void onTestSuccess(TestResultMessage trm) {
}
@Override
public void onTestFailure(TestResultMessage trm) {
}
@Override
public void onTestSkipped(TestResultMessage trm) {
}
@Override
public void onTestFailedButWithinSuccessPercentage(TestResultMessage trm) {
}
};
ResultXMLParser parser = new ResultXMLParser(l1, l2);
String fileName = "/Users/cbeust/java/testng/test-output/testng-results.xml";
parser.parse(fileName, new FileInputStream(new File(fileName)), false /* don't load classes */);
}
}