* Dilton's bug for adding new child data object
*/
public void testAddNewOrder() throws Exception {
// Read some customers and related orders
Command select = Command.FACTORY.createCommand(
"SELECT * FROM CUSTOMER LEFT JOIN ANORDER ON CUSTOMER.ID = ANORDER.CUSTOMER_ID",
getConfig("CustomersOrdersConfig.xml"));
select.setConnection(getConnection());
DataObject root = select.executeQuery();
DataObject cust = root.getDataObject("CUSTOMER[1]");
// Save ID and Order Count
int custID = cust.getInt("ID");
int custOrderCount = cust.getList("orders").size();
// Create a new Order and add to customer1
DataObject order = root.createDataObject("ANORDER");
order.set("ID", new Integer(99));
order.set("PRODUCT", "The 99th product");
order.set("QUANTITY", new Integer(99));
cust.getList("orders").add(order);
assertEquals(custOrderCount + 1, cust.getList("orders").size());
// Build apply changes command
ApplyChangesCommand apply = Command.FACTORY.createApplyChangesCommand(getConfig("CustomersOrdersConfig.xml"));
apply.setConnection(getConnection());
// Flush changes
apply.execute(root);
// verify cust1 relationship updates
select = Command.FACTORY
.createCommand("SELECT * FROM CUSTOMER LEFT JOIN ANORDER ON CUSTOMER.ID = ANORDER.CUSTOMER_ID where CUSTOMER.ID = :ID",getConfig("CustomersOrdersConfig.xml"));
select.setConnection(getConnection());
select.setParameterValue("ID", new Integer(custID));
root = select.executeQuery();
assertEquals(custOrderCount + 1, root.getList("CUSTOMER[1]/orders").size());
}