// no need to call start/end as the don't do anything anyways
dataReader.parse(new StringReader(testDataXml));
assertEquals(5, readObjects.size());
DynaBean obj1 = (DynaBean)readObjects.get(0);
DynaBean obj2 = (DynaBean)readObjects.get(1);
DynaBean obj3 = (DynaBean)readObjects.get(2);
DynaBean obj4 = (DynaBean)readObjects.get(3);
DynaBean obj5 = (DynaBean)readObjects.get(4);
assertEquals("author",
obj1.getDynaClass().getName());
assertEquals("1",
obj1.get("author_id").toString());
assertEquals("Ernest Hemingway",
obj1.get("name").toString());
assertEquals("author",
obj2.getDynaClass().getName());
assertEquals("2",
obj2.get("author_id").toString());
assertEquals("William Shakespeare",
obj2.get("name").toString());
assertEquals("book",
obj3.getDynaClass().getName());
assertEquals("1",
obj3.get("book_id").toString());
assertEquals("1",
obj3.get("author_id").toString());
assertEquals("0684830493",
obj3.get("isbn").toString());
assertEquals("Old Man And The Sea",
obj3.get("title").toString());
assertEquals("1952-01-01",
obj3.get("issue_date").toString()); // parsed as a java.sql.Date
assertEquals("book",
obj4.getDynaClass().getName());
assertEquals("2",
obj4.get("book_id").toString());
assertEquals("2",
obj4.get("author_id").toString());
assertEquals("0198321465",
obj4.get("isbn").toString());
assertEquals("Macbeth",
obj4.get("title").toString());
assertEquals("1606-01-01",
obj4.get("issue_date").toString()); // parsed as a java.sql.Date
assertEquals("book",
obj5.getDynaClass().getName());
assertEquals("3",
obj5.get("book_id").toString());
assertEquals("2",
obj5.get("author_id").toString());
assertEquals("0140707026",
obj5.get("isbn").toString());
assertEquals("A Midsummer Night's Dream",
obj5.get("title").toString());
assertEquals("1595-01-01",
obj5.get("issue_date").toString()); // parsed as a java.sql.Date
}