You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ddlutils-dev@db.apache.org by to...@apache.org on 2007/05/24 07:11:01 UTC
svn commit: r541165 -
/db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestDataReaderAndWriter.java
Author: tomdz
Date: Wed May 23 22:11:00 2007
New Revision: 541165
URL: http://svn.apache.org/viewvc?view=rev&rev=541165
Log:
Added test for DDLUTILS-174
Modified:
db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestDataReaderAndWriter.java
Modified: db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestDataReaderAndWriter.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestDataReaderAndWriter.java?view=diff&rev=541165&r1=541164&r2=541165
==============================================================================
--- db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestDataReaderAndWriter.java (original)
+++ db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestDataReaderAndWriter.java Wed May 23 22:11:00 2007
@@ -216,7 +216,72 @@
public void end() throws DataSinkException
{}
});
- // no need to call start/end as the don't do anything anyways
+ // no need to call start/end as they don't do anything anyways
+ dataReader.parse(new StringReader(dataXml));
+
+ assertEquals(1, readObjects.size());
+
+ DynaBean obj = (DynaBean)readObjects.get(0);
+
+ assertEquals("test",
+ obj.getDynaClass().getName());
+ assertEquals("1",
+ obj.get("id").toString());
+ assertEquals(testedValue,
+ obj.get("value").toString());
+ }
+
+
+ /**
+ * Tests a cdata section (see DDLUTILS-174).
+ */
+ public void testCData() throws Exception
+ {
+ final String testSchemaXml =
+ "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n"+
+ "<database name=\"test\">\n"+
+ " <table name=\"test\">\n"+
+ " <column name=\"id\" type=\"INTEGER\" primaryKey=\"true\" required=\"true\"/>\n"+
+ " <column name=\"value\" type=\"VARCHAR\" size=\"50\" required=\"true\"/>\n"+
+ " </table>\n"+
+ "</database>";
+ final String testedValue = "<![CDATA[";
+
+ DatabaseIO modelIO = new DatabaseIO();
+
+ modelIO.setUseInternalDtd(true);
+ modelIO.setValidateXml(false);
+
+ Database model = modelIO.read(new StringReader(testSchemaXml));
+ StringWriter output = new StringWriter();
+ DataWriter dataWriter = new DataWriter(output, "UTF-8");
+ SqlDynaBean bean = (SqlDynaBean)model.createDynaBeanFor(model.getTable(0));
+
+ bean.set("id", new Integer(1));
+ bean.set("value", testedValue);
+ dataWriter.writeDocumentStart();
+ dataWriter.write(bean);
+ dataWriter.writeDocumentEnd();
+
+ String dataXml = output.toString();
+
+ final ArrayList readObjects = new ArrayList();
+ DataReader dataReader = new DataReader();
+
+ dataReader.setModel(model);
+ dataReader.setSink(new DataSink() {
+ public void start() throws DataSinkException
+ {}
+
+ public void addBean(DynaBean bean) throws DataSinkException
+ {
+ readObjects.add(bean);
+ }
+
+ public void end() throws DataSinkException
+ {}
+ });
+ // no need to call start/end as they don't do anything anyways
dataReader.parse(new StringReader(dataXml));
assertEquals(1, readObjects.size());