/*******************************************************************************
* Copyright (c) 2010 Tasktop Technologies and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Tasktop Technologies - initial API and implementation
*******************************************************************************/
package org.eclipse.mylyn.builds.tests.util;
import java.io.ByteArrayOutputStream;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.sax.SAXTransformerFactory;
import javax.xml.transform.sax.TransformerHandler;
import javax.xml.transform.stream.StreamResult;
import junit.framework.TestCase;
import org.eclipse.mylyn.builds.core.IBuild;
import org.eclipse.mylyn.builds.core.ITestCase;
import org.eclipse.mylyn.builds.core.ITestResult;
import org.eclipse.mylyn.builds.core.ITestSuite;
import org.eclipse.mylyn.builds.internal.core.BuildFactory;
import org.eclipse.mylyn.builds.internal.core.util.JUnitResultGenerator;
/**
* @author Steffen Pingel
*/
public class JUnitResultGeneratorTest extends TestCase {
private ByteArrayOutputStream out;
private ITestResult testResult;
private ITestSuite suite;
private ITestCase testCase;
private TransformerHandler handler;
@Override
protected void setUp() throws Exception {
out = new ByteArrayOutputStream();
StreamResult streamResult = new StreamResult(out);
SAXTransformerFactory factory = (SAXTransformerFactory) TransformerFactory.newInstance();
handler = factory.newTransformerHandler();
handler.setResult(streamResult);
testResult = BuildFactory.eINSTANCE.createTestResult();
testResult.setDuration(111L);
testResult.setErrorCount(1);
testResult.setFailCount(2);
testResult.setIgnoredCount(3);
testResult.setPassCount(4);
IBuild build = BuildFactory.eINSTANCE.createBuild();
build.setLabel("Build1");
testResult.setBuild(build);
suite = BuildFactory.eINSTANCE.createTestSuite();
suite.setLabel("TestClass1");
suite.setDuration(222L);
testResult.getSuites().add(suite);
testCase = BuildFactory.eINSTANCE.createTestCase();
testCase.setClassName("TestClass1");
testCase.setLabel("TestCase1");
testCase.setDuration(333L);
suite.getCases().add(testCase);
}
public void testWrite() throws Exception {
JUnitResultGenerator generator = new JUnitResultGenerator(testResult);
generator.write(handler);
assertEquals(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?><testrun name=\"Build1\" project=\"Build1\" tests=\"6\" started=\"6\" failures=\"2\" errors=\"1\" ignored=\"3\"><testsuite name=\"TestClass1\" time=\"0.222\"><testcase name=\"TestCase1\" classname=\"TestClass1\" time=\"0.333\"/></testsuite></testrun>",
out.toString());
}
public void testWriteWithChildSuite() throws Exception {
suite.setLabel("Suite1");
JUnitResultGenerator generator = new JUnitResultGenerator(testResult);
generator.write(handler);
assertEquals(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?><testrun name=\"Build1\" project=\"Build1\" tests=\"6\" started=\"6\" failures=\"2\" errors=\"1\" ignored=\"3\"><testsuite name=\"Suite1\" time=\"0.222\"><testsuite name=\"TestClass1\"><testcase name=\"TestCase1\" classname=\"TestClass1\" time=\"0.333\"/></testsuite></testsuite></testrun>",
out.toString());
}
}