Author: kwilliams
Date: Tue Apr 25 21:36:40 2006
New Revision: 397086
URL: http://svn.apache.org/viewcvs?rev=397086&view=rev
Log:
Cleaning up Command interface (TUSCANY-230)
Modified:
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/CUDGeneration.java
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/CompanyTests.java
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/CompoundKeyTests.java
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ConverterTests.java
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/CorrectedDefectTests.java
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/DefectTests.java
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/GraphMergeTests.java
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/OCCTests.java
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/RecursiveTests.java
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/RelationshipTests.java
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ResultSetShapeTests.java
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/StoredProcs.java
Modified:
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/CUDGeneration.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/CUDGeneration.java?rev=397086&r1=397085&r2=397086&view=diff
==============================================================================
---
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/CUDGeneration.java
(original)
+++
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/CUDGeneration.java
Tue Apr 25 21:36:40 2006
@@ -121,44 +121,5 @@
apply.execute(root);
}
-
- /**
- * Same as previous version but uses explicit model creation
- */
- public void testReadModifyApply2() throws Exception {
-
- // Build the select command
- Command select = Command.FACTORY
- .createCommand("SELECT * FROM CUSTOMER LEFT
JOIN ANORDER ON CUSTOMER.ID = ANORDER.CUSTOMER_ID where CUSTOMER.ID = :ID");
-
- // Set minimum metadata necessary to describe relationship
- select.addRelationship("CUSTOMER.ID", "ANORDER.CUSTOMER_ID");
- select.addPrimaryKey("CUSTOMER.ID");
- select.addPrimaryKey("ANORDER.ID");
-
- // Parameterize the command
- select.setConnection(getConnection());
- select.setParameterValue("ID", new Integer(1));
-
- // Get the graph
- DataObject root = select.executeQuery();
-
- // Modify a customer
- DataObject customer = (DataObject) root.get("CUSTOMER[1]");
- customer.set("LASTNAME", "Pavick");
-
- // Modify an order
- DataObject order = (DataObject)
customer.getList("ANORDER").get(0);
- order.setString("PRODUCT", "Kitchen Sink 001");
-
- ApplyChangesCommand apply =
Command.FACTORY.createApplyChangesCommand();
- apply.setConnection(getConnection());
- apply.addRelationship("CUSTOMER.ID", "ANORDER.CUSTOMER_ID");
- apply.addPrimaryKey("CUSTOMER.ID");
- apply.addPrimaryKey("ANORDER.ID");
- // Flush changes
- apply.execute(root);
-
- }
}
Modified:
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/CompanyTests.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/CompanyTests.java?rev=397086&r1=397085&r2=397086&view=diff
==============================================================================
---
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/CompanyTests.java
(original)
+++
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/CompanyTests.java
Tue Apr 25 21:36:40 2006
@@ -79,13 +79,11 @@
Command selectCommand = Command.FACTORY.createCommand("select
COMPANY.NAME, "
+ "EMPLOYEE.NAME, EMPLOYEE.SN, EMPLOYEE.MANAGER, "
+ "DEPARTMENT.NAME, DEPARTMENT.LOCATION, DEPARTMENT.NUMBER
from COMPANY, DEPARTMENT, EMPLOYEE "
- + "where COMPANY.ID=DEPARTMENT.COMPANYID and
DEPARTMENT.ID=EMPLOYEE.DEPARTMENTID", getConfig("companyMapping.xml"));
+ + "where COMPANY.ID=DEPARTMENT.COMPANYID and
DEPARTMENT.ID=EMPLOYEE.DEPARTMENTID",
getConfig("companyMappingWithConverters.xml"));
// Parameterize the command
selectCommand.setConnection(getConnection());
selectCommand.setDataObjectModel(TypeHelper.INSTANCE.getType(DatagraphRoot.class));
- selectCommand.addConverter("DEPARTMENT.NUMBER",
"org.apache.tuscany.das.rdb.test.mappings.StringToIntegerConverter");
- selectCommand.addConverter("EMPLOYEE.MANAGER",
"org.apache.tuscany.das.rdb.test.mappings.IntegerToBooleanConverter");
// Get the graph
DatagraphRoot root = (DatagraphRoot) selectCommand.executeQuery();
Modified:
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/CompoundKeyTests.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/CompoundKeyTests.java?rev=397086&r1=397085&r2=397086&view=diff
==============================================================================
---
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/CompoundKeyTests.java
(original)
+++
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/CompoundKeyTests.java
Tue Apr 25 21:36:40 2006
@@ -19,6 +19,7 @@
import org.apache.tuscany.das.rdb.ApplyChangesCommand;
import org.apache.tuscany.das.rdb.Command;
import org.apache.tuscany.das.rdb.Key;
+import org.apache.tuscany.das.rdb.test.data.OrderData;
import org.apache.tuscany.das.rdb.test.data.OrderDetailsData;
import org.apache.tuscany.das.rdb.test.framework.DasTest;
@@ -33,6 +34,7 @@
super.setUp();
new OrderDetailsData(getAutoConnection()).refresh();
+ new OrderData(getAutoConnection()).refresh();
}
protected void tearDown() throws Exception {
@@ -55,7 +57,7 @@
}
- public void testReadModifyWrite() throws Exception {
+ public void testReadModifyWrite2() throws Exception {
Command getOrderDetails = Command.FACTORY
.createCommand("Select * from ORDERDETAILS where ORDERID = 1
AND PRODUCTID = 1");
@@ -69,37 +71,25 @@
orderDetails.setFloat("PRICE", 0f);
// Build apply changes command
- ApplyChangesCommand apply =
Command.FACTORY.createApplyChangesCommand();
+ ApplyChangesCommand apply =
Command.FACTORY.createApplyChangesCommand(getConfig("OrdersOrderDetailsConfig.xml"));
apply.setConnection(getConnection());
- // programatically add the only part of the mapping model needed for
- // this simple case
- apply.addPrimaryKey(new Key(new String[] { "ORDERDETAILS.ORDERID",
"ORDERDETAILS.PRODUCTID" }));
// Write
apply.execute(root);
// Verify
+ root = getOrderDetails.executeQuery();
orderDetails = root.getDataObject("ORDERDETAILS[1]");
assertEquals(0f, orderDetails.getFloat("PRICE"), 0.01);
}
-
- public void testReadOrdersAndDetails() throws Exception {
+
+ public void testReadOrdersAndDetails2() throws Exception {
Command read = Command.FACTORY
- .createCommand("SELECT * FROM ANORDER LEFT JOIN ORDERDETAILS
ON ANORDER.ID = ORDERDETAILS.ORDERID ORDER BY ANORDER.ID");
+ .createCommand("SELECT * FROM ANORDER LEFT JOIN ORDERDETAILS
ON ANORDER.ID = ORDERDETAILS.ORDERID ORDER BY ANORDER.ID",
getConfig("OrdersOrderDetailsConfig.xml"));
read.setConnection(getConnection());
- Key pk = new Key("ANORDER.ID");
- read.addPrimaryKey(pk);
-
- Key detailsPk = new Key(new String[] { "ORDERDETAILS.ORDERID",
"ORDERDETAILS.PRODUCTID" });
- read.addPrimaryKey(detailsPk);
-
- Key fk = new Key("ORDERDETAILS.ORDERID");
-
- read.addRelationship(pk, fk);
-
DataObject root = read.executeQuery();
DataObject firstOrder = root.getDataObject("ANORDER[1]");
@@ -107,5 +97,4 @@
assertEquals(2, firstOrder.getList("ORDERDETAILS").size());
}
-
}
Modified:
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ConverterTests.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ConverterTests.java?rev=397086&r1=397085&r2=397086&view=diff
==============================================================================
---
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ConverterTests.java
(original)
+++
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ConverterTests.java
Tue Apr 25 21:36:40 2006
@@ -81,7 +81,7 @@
public void testArbitraryConverter() throws Exception {
//Create and initialize command to read customers
- Command read = Command.FACTORY.createCommand("select * from
CUSTOMER where ID = 1");
+ Command read = Command.FACTORY.createCommand("select * from
CUSTOMER where ID = 1", getConfig("CustomerConfigWithConverter.xml"));
read.setConnection(getConnection());
String[] columns = { "ID", "LASTNAME", "ADDRESS" };
@@ -89,9 +89,7 @@
Type[] types = { SDODataTypes.INTEGEROBJECT, SDODataTypes.DATE,
SDODataTypes.STRING };
ResultSetShape shape = new ResultSetShape(tables, columns,
types);
read.setResultSetShape(shape);
-
- read.addConverter("CUSTOMER.LASTNAME",
"org.apache.tuscany.das.rdb.test.mappings.SillyDateStringConverter");
-
+
//Read
DataObject root = read.executeQuery();
Modified:
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/CorrectedDefectTests.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/CorrectedDefectTests.java?rev=397086&r1=397085&r2=397086&view=diff
==============================================================================
---
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/CorrectedDefectTests.java
(original)
+++
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/CorrectedDefectTests.java
Tue Apr 25 21:36:40 2006
@@ -44,11 +44,11 @@
super.setUp();
new CustomerData(getAutoConnection()).refresh();
new OrderData(getAutoConnection()).refresh();
-
+
new CompanyData(getAutoConnection()).refresh();
new DepartmentData(getAutoConnection()).refresh();
new CompanyDeptData(getAutoConnection()).refresh();
-
+
}
protected void tearDown() throws Exception {
@@ -61,53 +61,43 @@
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");
+ Command select = Command.FACTORY.createCommand(
+ "SELECT * FROM CUSTOMER LEFT JOIN ANORDER ON CUSTOMER.ID =
ANORDER.CUSTOMER_ID",
+ getConfig("CustomersOrdersConfig.xml"));
select.setConnection(getConnection());
- // Set minimum metadata necessary to describe relationship
- select.addRelationship("CUSTOMER.ID", "ANORDER.CUSTOMER_ID");
-
DataObject root = select.executeQuery();
DataObject cust = root.getDataObject("CUSTOMER[1]");
// Save ID and Order Count
int custID = cust.getInt("ID");
- int custOrderCount = cust.getList("ANORDER").size();
-// int rootCount = root.getList("ANORDER").size();
-
+ 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("ANORDER").add(order);
+ cust.getList("orders").add(order);
- assertEquals(custOrderCount + 1, cust.getList("ANORDER").size());
+ assertEquals(custOrderCount + 1, cust.getList("orders").size());
// Build apply changes command
- ApplyChangesCommand apply =
Command.FACTORY.createApplyChangesCommand();
+ ApplyChangesCommand apply =
Command.FACTORY.createApplyChangesCommand(getConfig("CustomersOrdersConfig.xml"));
apply.setConnection(getConnection());
- // Metadata
- apply.addRelationship("CUSTOMER.ID", "ANORDER.CUSTOMER_ID");
- apply.addPrimaryKey("CUSTOMER.ID");
- apply.addPrimaryKey("ANORDER.ID");
-
// 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");
+ .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));
-
- select.addRelationship("CUSTOMER.ID", "ANORDER.CUSTOMER_ID");
root = select.executeQuery();
- assertEquals(custOrderCount + 1,
root.getList("CUSTOMER[1]/ANORDER").size());
+ assertEquals(custOrderCount + 1,
root.getList("CUSTOMER[1]/orders").size());
}
@@ -137,7 +127,8 @@
public void testWASDefect330118() throws Exception {
// Create the group and set common connection
- CommandGroup commandGroup =
CommandGroup.FACTORY.createCommandGroup(getConfig("CustomersOrdersConfig.xml"));
+ CommandGroup commandGroup = CommandGroup.FACTORY
+ .createCommandGroup(getConfig("CustomersOrdersConfig.xml"));
commandGroup.setConnection(getConnection());
// Read all customers and add one
@@ -163,12 +154,12 @@
}
/**
- * Should be able to explicitly set a parameter to null. But, should
require
+ * Should be able to explicitly set a parameter to null. But, should
require
* that the parameter type is set.
*/
public void testDiltonsNullParameterBug1() throws Exception {
-
- Command insert = Command.FACTORY.createCommand("insert into CUSTOMER
values (:ID, :LASTNAME, :ADDRESS)");
+
+ Command insert = Command.FACTORY.createCommand("insert into CUSTOMER
values (:ID, :LASTNAME, :ADDRESS)");
insert.setConnection(getConnection());
insert.setParameterValue("ID", new Integer(10));
insert.setParameterValue("LASTNAME", null);
@@ -176,79 +167,78 @@
insert.setParameterValue("ADDRESS", "5528 Wells Fargo Dr");
insert.execute();
- //Verify
+ // Verify
Command select = Command.FACTORY.createCommand("Select * from CUSTOMER
where ID = 10");
select.setConnection(getConnection());
- DataObject root = select.executeQuery();
+ DataObject root = select.executeQuery();
assertEquals(1, root.getList("CUSTOMER").size());
assertEquals("5528 Wells Fargo Dr", root.get("CUSTOMER[1]/ADDRESS"));
}
-
/**
* Error by not setting a parameter
- */
+ */
public void testDiltonsNullParameterBug2() throws Exception {
-
- Command insert = Command.FACTORY.createCommand("insert into CUSTOMER
values (:ID, :LASTNAME, :ADDRESS)");
+
+ Command insert = Command.FACTORY.createCommand("insert into CUSTOMER
values (:ID, :LASTNAME, :ADDRESS)");
insert.setConnection(getConnection());
insert.setParameterValue("ID", new Integer(10));
-// insert.setParameterValue("LASTNAME", null);
+ // insert.setParameterValue("LASTNAME", null);
insert.setParameterValue("ADDRESS", "5528 Wells Fargo Dr");
-
+
try {
insert.execute();
fail();
+ } catch (RuntimeException e) {
+ // Expected since "LASTNAME" parameter not set
}
- catch (RuntimeException e) {
- //Expected since "LASTNAME" parameter not set
- }
- }
-
+ }
+
/**
* Set parameter to empty string
- */
+ */
public void testDiltonsNullParameterBug3() throws Exception {
-
- Command insert = Command.FACTORY.createCommand("insert into CUSTOMER
values (:ID, :LASTNAME, :ADDRESS)");
+
+ Command insert = Command.FACTORY.createCommand("insert into CUSTOMER
values (:ID, :LASTNAME, :ADDRESS)");
insert.setConnection(getConnection());
insert.setParameterValue("ID", new Integer(10));
insert.setParameterValue("LASTNAME", "");
insert.setParameterValue("ADDRESS", "5528 Wells Fargo Dr");
insert.execute();
- //Verify
+ // Verify
Command select = Command.FACTORY.createCommand("Select * from CUSTOMER
where ID = 10");
select.setConnection(getConnection());
- DataObject root = select.executeQuery();
+ DataObject root = select.executeQuery();
assertEquals(1, root.getList("CUSTOMER").size());
assertEquals("5528 Wells Fargo Dr", root.get("CUSTOMER[1]/ADDRESS"));
}
-
+
public void testUpdateChildThatHasGeneratedKey() throws Exception {
CommandGroup commandGroup =
CommandGroup.FACTORY.createCommandGroup(getConfig("CompanyConfig.xml"));
-
- //Read a specific company based on the known ID
+
+ // Read a specific company based on the known ID
Command readCust = commandGroup.getCommand("all companies and
departments");
- DataObject root = readCust.executeQuery();
+ DataObject root = readCust.executeQuery();
DataObject lastCustomer = root.getDataObject("COMPANY[3]");
Iterator i = lastCustomer.getList("departments").iterator();
Random generator = new Random();
int random = generator.nextInt(1000) + 1;
DataObject department;
while (i.hasNext()) {
- department = (DataObject)i.next();
-// System.out.println("Modifying department: " +
department.getString("NAME"));
+ department = (DataObject) i.next();
+ // System.out.println("Modifying department: " +
+ // department.getString("NAME"));
department.setString("NAME", "Dept-" + random);
random = random + 1;
- }
-
+ }
+
ApplyChangesCommand apply = commandGroup.getApplyChangesCommand();
apply.execute(root);
-
- }
-
+
+ }
+
}
Modified:
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/DefectTests.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/DefectTests.java?rev=397086&r1=397085&r2=397086&view=diff
==============================================================================
---
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/DefectTests.java
(original)
+++
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/DefectTests.java
Tue Apr 25 21:36:40 2006
@@ -82,65 +82,7 @@
}
- /**
- * 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");
- select.setConnection(getConnection());
-
- // Set minimum metadata necessary to describe relationship
- select.addRelationship("CUSTOMER.ID", "ANORDER.CUSTOMER_ID");
- select.addPrimaryKey("CUSTOMER.ID");
- select.addPrimaryKey("ANORDER.ID");
-
- DataObject root = select.executeQuery();
-
- DataObject cust = root.getDataObject("CUSTOMER[1]");
-
- // Save ID and Order Count
- int custID = cust.getInt("ID");
- int custOrderCount = cust.getList("ANORDER").size();
- int rootCount = root.getList("ANORDER").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("ANORDER").add(order);
-
- assertEquals(custOrderCount + 1, cust.getList("ANORDER").size());
- // Build apply changes command
- ApplyChangesCommand apply =
Command.FACTORY.createApplyChangesCommand();
- apply.setConnection(getConnection());
-
- // Metadata
- apply.addRelationship("CUSTOMER.ID", "ANORDER.CUSTOMER_ID");
- apply.addPrimaryKey("CUSTOMER.ID");
- apply.addPrimaryKey("ANORDER.ID");
-
- // 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");
- select.setConnection(getConnection());
- select.setParameterValue("ID", new Integer(custID));
-
- select.addRelationship("CUSTOMER.ID", "ANORDER.CUSTOMER_ID");
- select.addPrimaryKey("CUSTOMER.ID");
- select.addPrimaryKey("ANORDER.ID");
- root = select.executeQuery();
-
- assertEquals(custOrderCount + 1,
root.getList("CUSTOMER[1]/ANORDER").size());
-
- }
public void testDiltonsInsertWorkaround() throws Exception {
Modified:
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/GraphMergeTests.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/GraphMergeTests.java?rev=397086&r1=397085&r2=397086&view=diff
==============================================================================
---
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/GraphMergeTests.java
(original)
+++
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/GraphMergeTests.java
Tue Apr 25 21:36:40 2006
@@ -87,77 +87,68 @@
}
- public void testMultiTableMerge() 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 where CUSTOMER.ID = :ID ");
- select.setConnection(getConnection());
+
+ public void testMultiTableMerge2() 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 where CUSTOMER.ID = :ID",
getConfig("CustomersOrdersConfig.xml"));
+ select.setConnection(getConnection());
+
+ select.setConnection(getConnection());
+ select.setParameterValue("ID", new Integer(1));
+ DataObject graph1 = select.executeQuery();
+
+ DataObject customer = (DataObject)graph1.getList("CUSTOMER").get(0);
+ assertEquals(2, customer.getList("orders").size());
+
+ select.setParameterValue("ID", new Integer(2));
+ DataObject graph2 = select.executeQuery();
+ DataObject customer2 = (DataObject)graph2.getList("CUSTOMER").get(0);
+ assertEquals(1, graph2.getList("CUSTOMER").size());
+ assertEquals(1, customer2.getList("orders").size());
+ assertEquals(2, customer2.getInt("ID"));
+
+ GraphMerger merger = new GraphMerger();
+ merger.addPrimaryKey("CUSTOMER.ID");
+ merger.addPrimaryKey("ANORDER.ID");
+ DataObject mergedGraph = merger.merge(graph1, graph2);
+
+ assertEquals(3, mergedGraph.getList("ANORDER").size());
+ assertEquals(2, mergedGraph.getList("CUSTOMER").size());
+
+ DataObject mergedCustomer = (DataObject)
mergedGraph.getList("CUSTOMER").get(1);
+ assertEquals(2, mergedCustomer.getInt("ID"));
+ assertEquals(1, mergedCustomer.getList("orders").size());
+ DataObject mergedOrder = (DataObject)
mergedCustomer.getList("orders").get(0);
+ assertEquals(4, mergedOrder.getInt("ID"));
+
+ }
+
+ public void testMultiTableAppendSingleTable2() 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 where CUSTOMER.ID = :ID",
getConfig("CustomersOrdersConfig.xml"));
+ select.setConnection(getConnection());
+
+ select.setConnection(getConnection());
+ select.setParameterValue("ID", new Integer(1));
+ DataObject graph1 = select.executeQuery();
+
+ DataObject customer = (DataObject)graph1.getList("CUSTOMER").get(0);
+ assertEquals(2, customer.getList("orders").size());
+
+ Command select2 = Command.FACTORY.createCommand("select * from
ANORDER");
+ select2.setConnection(getConnection());
+ DataObject graph2 = select2.executeQuery();
+ assertEquals(4, graph2.getList("ANORDER").size());
+
+ GraphMerger merger = new GraphMerger();
+ merger.addPrimaryKey("CUSTOMER.ID");
+ merger.addPrimaryKey("ANORDER.ID");
+ DataObject mergedGraph = merger.merge(graph1, graph2);
+ assertEquals(4, mergedGraph.getList("ANORDER").size());
+ assertEquals(1, mergedGraph.getList("CUSTOMER").size());
+ }
- //Set minimum metadata necessary to describe relationship
- select.addRelationship("CUSTOMER.ID", "ANORDER.CUSTOMER_ID");
- select.addPrimaryKey("CUSTOMER.ID");
- select.addPrimaryKey("ANORDER.ID");
-
- select.setConnection(getConnection());
- select.setParameterValue("ID", new Integer(1));
- DataObject graph1 = select.executeQuery();
-
- DataObject customer =
(DataObject)graph1.getList("CUSTOMER").get(0);
- assertEquals(2, customer.getList("ANORDER").size());
-
- select.setParameterValue("ID", new Integer(2));
- DataObject graph2 = select.executeQuery();
- DataObject customer2 =
(DataObject)graph2.getList("CUSTOMER").get(0);
- assertEquals(1, graph2.getList("CUSTOMER").size());
- assertEquals(1, customer2.getList("ANORDER").size());
- assertEquals(2, customer2.getInt("ID"));
-
- GraphMerger merger = new GraphMerger();
- merger.addPrimaryKey("CUSTOMER.ID");
- merger.addPrimaryKey("ANORDER.ID");
- DataObject mergedGraph = merger.merge(graph1, graph2);
-
- assertEquals(3, mergedGraph.getList("ANORDER").size());
- assertEquals(2, mergedGraph.getList("CUSTOMER").size());
-
- DataObject mergedCustomer = (DataObject)
mergedGraph.getList("CUSTOMER").get(1);
- assertEquals(2, mergedCustomer.getInt("ID"));
- assertEquals(1, mergedCustomer.getList("ANORDER").size());
- DataObject mergedOrder = (DataObject)
mergedCustomer.getList("ANORDER").get(0);
- assertEquals(4, mergedOrder.getInt("ID"));
-
-
- }
-
- public void testMultiTableAppendSingleTable() 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 where CUSTOMER.ID = :ID ");
- select.setConnection(getConnection());
-
- //Set minimum metadata necessary to describe relationship
- select.addRelationship("CUSTOMER.ID", "ANORDER.CUSTOMER_ID");
- select.addPrimaryKey("CUSTOMER.ID");
- select.addPrimaryKey("ANORDER.ID");
-
- select.setConnection(getConnection());
- select.setParameterValue("ID", new Integer(1));
- DataObject graph1 = select.executeQuery();
-
- DataObject customer =
(DataObject)graph1.getList("CUSTOMER").get(0);
- assertEquals(2, customer.getList("ANORDER").size());
-
- Command select2 = Command.FACTORY.createCommand("select * from
ANORDER");
- select2.setConnection(getConnection());
- DataObject graph2 = select2.executeQuery();
- assertEquals(4, graph2.getList("ANORDER").size());
-
- GraphMerger merger = new GraphMerger();
- merger.addPrimaryKey("CUSTOMER.ID");
- merger.addPrimaryKey("ANORDER.ID");
- DataObject mergedGraph = merger.merge(graph1, graph2);
- assertEquals(4, mergedGraph.getList("ANORDER").size());
- assertEquals(1, mergedGraph.getList("CUSTOMER").size());
- }
}
Modified:
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/OCCTests.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/OCCTests.java?rev=397086&r1=397085&r2=397086&view=diff
==============================================================================
---
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/OCCTests.java
(original)
+++
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/OCCTests.java
Tue Apr 25 21:36:40 2006
@@ -37,7 +37,6 @@
//Read a book instance
Command select = Command.FACTORY.createCommand("SELECT * FROM
BOOK WHERE ID = 1");
select.setConnection(getConnection());
- select.addPrimaryKey("BOOK.ID");
DataObject root = select.executeQuery();
DataObject book = root.getDataObject("BOOK[1]");
//Change a field to mark the instance 'dirty'
Modified:
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/RecursiveTests.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/RecursiveTests.java?rev=397086&r1=397085&r2=397086&view=diff
==============================================================================
---
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/RecursiveTests.java
(original)
+++
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/RecursiveTests.java
Tue Apr 25 21:36:40 2006
@@ -40,10 +40,9 @@
//Table definition
//CREATE TABLE PART (ID INT PRIMARY KEY NOT NULL, NAME
VARCHAR(50), QUANTITY INT, PARENT_ID INT );
-
String threeLevelPartsSQL = "SELECT P1.*, P2.*, P3.* FROM PART
AS P1 LEFT JOIN PART AS P2 ON P1.ID = P2.PARENT_ID "
+ "LEFT JOIN PART AS P3 on P2.ID = P3.PARENT_ID
WHERE P1.ID = 1";
- Command select =
Command.FACTORY.createCommand(threeLevelPartsSQL);
+ Command select =
Command.FACTORY.createCommand(threeLevelPartsSQL, getConfig("PartsConfig.xml"));
select.setConnection(getConnection());
String[] columns = {"ID", "NAME", "QUANTITY", "PARENT_ID",
"ID", "NAME", "QUANTITY", "PARENT_ID", "ID", "NAME", "QUANTITY", "PARENT_ID"};
@@ -56,8 +55,6 @@
// Need to set the key explicitly. The aggregate of columns not
working
// because of null values
- select.addPrimaryKey("PART.ID");
- select.addRelationship("PART.ID", "PART.PARENT_ID");
DataObject root = select.executeQuery();
assertEquals(5, root.getList("PART").size());
@@ -65,10 +62,10 @@
DataObject engine = root.getDataObject("PART.0");
assertEquals("Engine", engine.getString("NAME"));
- assertEquals(3, engine.getList("PART").size());
+ assertEquals(3, engine.getList("subparts").size());
DataObject piston = null;
- Iterator i = engine.getList("PART").iterator();
+ Iterator i = engine.getList("subparts").iterator();
while ( i.hasNext() ) {
DataObject obj = (DataObject)i.next();
if ( obj.getString("NAME").equals("Piston"))
@@ -76,8 +73,8 @@
}
assertEquals("Piston", piston.getString("NAME"));
- assertEquals(1, piston.getList("PART").size());
- assertEquals("Piston Ring",
piston.getDataObject("PART.0").getString("NAME"));
+ assertEquals(1, piston.getList("subparts").size());
+ assertEquals("Piston Ring",
piston.getDataObject("subparts.0").getString("NAME"));
}
Modified:
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/RelationshipTests.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/RelationshipTests.java?rev=397086&r1=397085&r2=397086&view=diff
==============================================================================
---
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/RelationshipTests.java
(original)
+++
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/RelationshipTests.java
Tue Apr 25 21:36:40 2006
@@ -64,80 +64,6 @@
}
/**
- * Test ability to extract and flush relationhip changes from the change
- * history
- */
- public void testRelationshipModification() 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");
- select.setConnection(getConnection());
-
- // Set minimum metadata necessary to describe relationship
- // Maybe something like this ...
- select.addRelationship("CUSTOMER.ID", "ANORDER.CUSTOMER_ID");
- select.addPrimaryKey("CUSTOMER.ID");
- select.addPrimaryKey("ANORDER.ID");
-
- DataObject root = select.executeQuery();
-
- DataObject cust1 = root.getDataObject("CUSTOMER[1]");
- DataObject cust2 = root.getDataObject("CUSTOMER[2]");
-
- // Save IDs
- Integer cust1ID = (Integer) cust1.get("ID");
- Integer cust2ID = (Integer) cust2.get("ID");
- // save order count
- Integer cust1OrderCount = new
Integer(cust1.getList("ANORDER").size());
- Integer cust2OrderCount = new
Integer(cust2.getList("ANORDER").size());
-
- // Move an order to cust1 from cust2
- DataObject order = (DataObject) cust2.getList("ANORDER").get(0);
- cust1.getList("ANORDER").add(order);
-
- // Build apply changes command
- ApplyChangesCommand apply = Command.FACTORY
- .createApplyChangesCommand();
- apply.setConnection(getConnection());
-
- // Manually create and add commands
- Command update = Command.FACTORY
- .createCommand("update ANORDER set CUSTOMER_ID
= :CUSTOMER_ID where ID = :ID");
- update.addParameter("CUSTOMER_ID", SDODataTypes.INTEGER);
- update.addParameter("ID", SDODataTypes.INTEGER);
- update.addRelationship("CUSTOMER.ID", "ANORDER.CUSTOMER_ID");
- update.addPrimaryKey("CUSTOMER.ID");
- update.addPrimaryKey("ANORDER.ID");
- apply.addUpdateCommand(order.getType(), update);
-
- // 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");
- select.setConnection(getConnection());
- select.setParameterValue("ID", cust1ID);
-
- select.addRelationship("CUSTOMER.ID", "ANORDER.CUSTOMER_ID");
- select.addPrimaryKey("CUSTOMER.ID");
- select.addPrimaryKey("ANORDER.ID");
- root = select.executeQuery();
-
- assertEquals(cust1OrderCount.intValue() + 1, root.getList(
- "CUSTOMER[1]/ANORDER").size());
-
- // verify cust2 relationship updates
- select.setParameterValue("ID", cust2ID);
- root = select.executeQuery();
-
- assertEquals(cust2OrderCount.intValue() - 1, root.getList(
- "CUSTOMER[1]/ANORDER").size());
-
- }
-
- /**
* Same as above except uses xml file for relationhip and key
information.
* Employs CUD generation.
*/
Modified:
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ResultSetShapeTests.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ResultSetShapeTests.java?rev=397086&r1=397085&r2=397086&view=diff
==============================================================================
---
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ResultSetShapeTests.java
(original)
+++
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ResultSetShapeTests.java
Tue Apr 25 21:36:40 2006
@@ -22,7 +22,6 @@
import org.apache.tuscany.das.rdb.test.data.CustomerData;
import org.apache.tuscany.das.rdb.test.framework.DasTest;
-
import commonj.sdo.DataObject;
import commonj.sdo.Type;
@@ -35,74 +34,72 @@
*/
public class ResultSetShapeTests extends DasTest {
- protected void setUp() throws Exception {
- super.setUp();
- new CustomerData(getAutoConnection()).refresh();
- }
-
- protected void tearDown() throws Exception {
- super.tearDown();
- }
-
- /**
- * Read a specific customer
- */
- public void testReadSingle() throws Exception {
-
- // Using literals in the select forces invalid resultset
metadata
- String sqlString = "Select 99, 'Roosevelt', '1600 Pennsylvania
Avenue' from customer";
- String[] columns = { "ID", "LASTNAME", "ADDRESS" };
- String[] tables = { "CUSTOMER", "CUSTOMER", "CUSTOMER" };
- Type[] types = { SDODataTypes.LONG, SDODataTypes.STRING,
- SDODataTypes.STRING };
-
- ResultSetShape shape = new ResultSetShape(tables, columns,
types);
-
- // Create and initialize command to read customers
- Command readCustomers =
Command.FACTORY.createCommand(sqlString);
- readCustomers.addConverter("CUSTOMER.ID",
"org.apache.tuscany.das.rdb.test.mappings.StringToLongConverter");
- // Specify result shape
- readCustomers.setResultSetShape(shape);
-
- readCustomers.setConnection(getConnection());
-
- // Read
- DataObject root = readCustomers.executeQuery();
-
- // Verify
- assertEquals(5, root.getList("CUSTOMER").size());
- assertEquals(99, root.getInt("CUSTOMER[1]/ID"));
- assertEquals("Roosevelt",
root.getString("CUSTOMER[1]/LASTNAME"));
- assertEquals("1600 Pennsylvania Avenue", root
- .getString("CUSTOMER[1]/ADDRESS"));
-
- }
-
- /**
- * Read a specific customer This duplicates the previous tests but does
not
- * provide the shape info. Since the select will not return valid
metadata,
- * this test is expected to fail
- */
- public void testReadSingleVerifyShapeUse() throws Exception {
-
- // Using literals in the select forces invalid resultset
metadata
- String sqlString = "Select 99, 'Roosevelt', '1600 Pennsylvania
Avenue' from customer";
-
- // Create and initialize command to read customers
- Command readCustomers =
Command.FACTORY.createCommand(sqlString);
- readCustomers.setConnection(getConnection());
-
- // Read
- DataObject root = readCustomers.executeQuery();
-
- // Verify
- try {
- assertEquals(5, root.getList("CUSTOMER").size());
- fail("Should fail since there will be no feature named
CUSTOMER");
- } catch (IllegalArgumentException e) {
- // OK
- }
+ protected void setUp() throws Exception {
+ super.setUp();
+ new CustomerData(getAutoConnection()).refresh();
+ }
+
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ }
+
+ /**
+ * Read a specific customer
+ */
+ public void testReadSingle() throws Exception {
+
+ // Using literals in the select forces invalid resultset metadata
+ String sqlString = "Select 99, 'Roosevelt', '1600 Pennsylvania Avenue'
from customer";
+ String[] columns = { "ID", "LASTNAME", "ADDRESS" };
+ String[] tables = { "CUSTOMER", "CUSTOMER", "CUSTOMER" };
+ Type[] types = { SDODataTypes.LONG, SDODataTypes.STRING,
SDODataTypes.STRING };
+
+ ResultSetShape shape = new ResultSetShape(tables, columns, types);
+
+ // Create and initialize command to read customers
+ Command readCustomers = Command.FACTORY.createCommand(sqlString,
+ getConfig("CustomerConfigWithIDConverter.xml"));
+ // Specify result shape
+ readCustomers.setResultSetShape(shape);
+
+ readCustomers.setConnection(getConnection());
+
+ // Read
+ DataObject root = readCustomers.executeQuery();
+
+ // Verify
+ assertEquals(5, root.getList("CUSTOMER").size());
+ assertEquals(99, root.getInt("CUSTOMER[1]/ID"));
+ assertEquals("Roosevelt", root.getString("CUSTOMER[1]/LASTNAME"));
+ assertEquals("1600 Pennsylvania Avenue",
root.getString("CUSTOMER[1]/ADDRESS"));
+
+ }
+
+ /**
+ * Read a specific customer This duplicates the previous tests but does not
+ * provide the shape info. Since the select will not return valid metadata,
+ * this test is expected to fail
+ */
+ public void testReadSingleVerifyShapeUse() throws Exception {
+
+ // Using literals in the select forces invalid resultset metadata
+ String sqlString = "Select 99, 'Roosevelt', '1600 Pennsylvania Avenue'
from customer";
+
+ // Create and initialize command to read customers
+ Command readCustomers = Command.FACTORY.createCommand(sqlString);
+ readCustomers.setConnection(getConnection());
+
+ // Read
+ DataObject root = readCustomers.executeQuery();
+
+ // Verify
+ try {
+ assertEquals(5, root.getList("CUSTOMER").size());
+ fail("Should fail since there will be no feature named CUSTOMER");
+ } catch (IllegalArgumentException e) {
+ // OK
+ }
- }
+ }
}
Modified:
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/StoredProcs.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/StoredProcs.java?rev=397086&r1=397085&r2=397086&view=diff
==============================================================================
---
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/StoredProcs.java
(original)
+++
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/StoredProcs.java
Tue Apr 25 21:36:40 2006
@@ -83,17 +83,14 @@
// Retreive heirarchy using a stored proc ... new programming model
public void testGetCustomersAndOrder() throws Exception {
- Command read = Command.FACTORY.createCommand("{call
getCustomerAndOrders(?)}");
+ Command read = Command.FACTORY.createCommand("{call
getCustomerAndOrders(?)}", getConfig("CustomersOrdersConfig.xml"));
read.setConnection(getConnection());
read.setParameterValue(1, new Integer(1));
-
- //Set minimum metadata necessary to describe relationship
- read.addRelationship("CUSTOMER.ID", "ANORDER.CUSTOMER_ID");
DataObject root = read.executeQuery();
DataObject customer = (DataObject)
root.getList("CUSTOMER").get(0);
- assertEquals(2, customer.getList("ANORDER").size());
+ assertEquals(2, customer.getList("orders").size());
}