/* * Copyright (C) 2005 Joe Walnes. * Copyright (C) 2006, 2007 XStream Committers. * All rights reserved. * * The software in this package is published under the terms of the BSD * style license a copy of which has been included with this distribution in * the LICENSE.txt file. * * Created on 30. April 2005 by Joe Walnes */ package com.thoughtworks.xstream.io; import junit.framework.Assert; import junit.framework.AssertionFailedError; import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; import com.thoughtworks.acceptance.objects.Software; import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.core.JVM; //import com.thoughtworks.xstream.io.xml.Dom4JDriver; import com.thoughtworks.xstream.io.xml.DomDriver; //import com.thoughtworks.xstream.io.xml.JDomDriver; //import com.thoughtworks.xstream.io.xml.StaxDriver; //import com.thoughtworks.xstream.io.xml.XomDriver; import com.thoughtworks.xstream.io.xml.XppDomDriver; import com.thoughtworks.xstream.io.xml.XppDriver; public class DriverEndToEndTestSuite extends TestSuite { public static Test suite() { return new DriverEndToEndTestSuite(); } public DriverEndToEndTestSuite() { super(DriverEndToEndTestSuite.class.getName()); // addDriverTest(new Dom4JDriver()); addDriverTest(new DomDriver()); // addDriverTest(new JDomDriver()); // addDriverTest(new StaxDriver()); addDriverTest(new XppDomDriver()); addDriverTest(new XppDriver()); // addDriverTest(new XomDriver()); if (JVM.is14()) { JVM jvm = new JVM(); Class driverType = jvm.loadClass("com.thoughtworks.xstream.io.json.JettisonMappedXmlDriver"); try { addDriverTest((HierarchicalStreamDriver)driverType.newInstance()); } catch (InstantiationException e) { throw new AssertionFailedError("Cannot instantiate " + driverType.getName()); } catch (IllegalAccessException e) { throw new AssertionFailedError("Cannot access default constructor of " + driverType.getName()); } } } private void test(HierarchicalStreamDriver driver) { XStream xstream = new XStream(driver); Object in = new Software("some vendor", "some name"); String xml = xstream.toXML(in); Object out = xstream.fromXML(xml); Assert.assertEquals(in, out); } private void addDriverTest(final HierarchicalStreamDriver driver) { String testName = getShortName(driver); addTest(new TestCase(testName) { protected void runTest() throws Throwable { test(driver); } }); } private String getShortName(HierarchicalStreamDriver driver) { String result = driver.getClass().getName(); result = result.substring(result.lastIndexOf('.') + 1); return result; } }