From: Jason R. <jac...@fa...> - 2004-01-26 15:41:55
|
I recently downloaded the 2.0 version of DBUnit. I extracted my DB into=20 an XML file. I am trying to run the following test case and get an error= . As you can see, reading the exported data in as a DataSet is failing in=20 the setUp(). The error is being thrown from Resin's AbstractParser which= =20 only accepts a handler whose name is either=20 "http://xml.org/sax/handlers/lexical-handler" or=20 "http://xml.org/sax/handlers/LexicalHandler". Is this a limitation with=20 Resin or should the FlatDtdProducer.LEXICAL_HANDLER_PROPERTY_NAME really=20 be "http://xml.org/sax/handlers/lexical-handler" instead of=20 "http://xml.org/sax/properties/lexical-handler"? <error> org.dbunit.dataset.DataSetException: org.xml.sax.SAXNotSupportedException= :=20 http://xml.org/sax/properties/lexical-handler at=20 org.dbunit.dataset.xml.FlatXmlProducer.produce(FlatXmlProducer.java:176) at org.dbunit.dataset.CachedDataSet.<init>(CachedDataSet.java:72) at org.dbunit.dataset.xml.FlatXmlDataSet.<init>(FlatXmlDataSet.java:183) at org.dbunit.dataset.xml.FlatXmlDataSet.<init>(FlatXmlDataSet.java:170) at=20 com.riskmetrics.direct.client.hedgeplatform.site_navigation.SampleDatabas= eTest.getDataSet(SampleDatabaseTest.java:56) at=20 com.riskmetrics.direct.client.hedgeplatform.site_navigation.SampleDatabas= eTest.setUp(SampleDatabaseTest.java:78) </error> <testcase> public class SampleDatabaseTest extends HedgePlatformDatabaseTestCase { private IDatabaseConnection connection; private IDataSet expectedDataSet; public SampleDatabaseTest(String name) { super(name); } protected IDatabaseConnection getConnection() throws Exception { Class.forName("oracle.jdbc.OracleDriver"); Connection jdbcConnection =3D DriverManager.getConnection( "jdbc:oracle:thin:@"=20 + DeveloperInfo.lookupString("testDatabaseHostName") + ":" + DeveloperInfo.lookupString("testDatabasePort") + ":" + DeveloperInfo.lookupString("testDatabaseName"), DeveloperInfo.lookupString("testDatabaseUser"), DeveloperInfo.lookupString("testDatabasePassword")); IDatabaseConnection connection =3D new=20 org.dbunit.database.DatabaseConnection( jdbcConnection, DeveloperInfo.lookupString("testDatabaseUser").toUpperCase()= ); return connection; } protected IDataSet getDataSet() throws Exception { return new FlatXmlDataSet(new=20 FileInputStream("resources/database/full.xml")); } protected void setUp() throws Exception { super.setUp(); connection =3D getConnection(); expectedDataSet =3D getDataSet(); try { DatabaseOperation.CLEAN_INSERT.execute(connection,=20 expectedDataSet); } finally { connection.close(); } } public void testXYZ() throws Exception { //... test code is here IDataSet databaseDataSet =3D getConnection().createDataSet(); ITable actualTable =3D databaseDataSet.getTable("TABLE_NAME"); // Load expected data from an XML dataset ITable expectedTable =3D expectedDataSet.getTable("TABLE_NAME"); org.dbunit.Assertion.assertEquals(expectedTable, actualTable); } } </testcase> --=20 Jason Rogers "So great is the ignorance, so very little the knowledge, of even the bes= t=20 of men!" - John Wesley, "Christian Perfection" |