You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by lr...@apache.org on 2007/04/25 01:43:40 UTC
svn commit: r532139 - in /incubator/tuscany/java/das/rdb: ./
src/test/java/org/apache/tuscany/das/rdb/test/
src/test/java/org/apache/tuscany/das/rdb/test/data/ src/test/resources/
Author: lresende
Date: Tue Apr 24 16:43:40 2007
New Revision: 532139
URL: http://svn.apache.org/viewvc?view=rev&rev=532139
Log:
Updating testcase to add a scenario uses union to simulate full outer join and add employees without department to a department without employees.
Added:
incubator/tuscany/java/das/rdb/src/test/resources/companyMappingWithResultDescriptor.xml
Modified:
incubator/tuscany/java/das/rdb/pom.xml
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/data/DepartmentData.java
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/EmployeeData.java
Modified: incubator/tuscany/java/das/rdb/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/pom.xml?view=diff&rev=532139&r1=532138&r2=532139
==============================================================================
--- incubator/tuscany/java/das/rdb/pom.xml (original)
+++ incubator/tuscany/java/das/rdb/pom.xml Tue Apr 24 16:43:40 2007
@@ -44,7 +44,7 @@
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
- <scope>test</scope>
+ <scope>test</scope>
</dependency>
<dependency>
Modified: incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/RelationshipTests.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/RelationshipTests.java?view=diff&rev=532139&r1=532138&r2=532139
==============================================================================
--- 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 24 16:43:40 2007
@@ -29,7 +29,12 @@
import org.apache.tuscany.das.rdb.ConfigHelper;
import org.apache.tuscany.das.rdb.DAS;
import org.apache.tuscany.das.rdb.config.Relationship;
+import org.apache.tuscany.das.rdb.test.data.CompanyData;
+import org.apache.tuscany.das.rdb.test.data.CompanyEmpData;
import org.apache.tuscany.das.rdb.test.data.CustomerData;
+import org.apache.tuscany.das.rdb.test.data.DepEmpData;
+import org.apache.tuscany.das.rdb.test.data.DepartmentData;
+import org.apache.tuscany.das.rdb.test.data.EmployeeData;
import org.apache.tuscany.das.rdb.test.data.OrderData;
import org.apache.tuscany.das.rdb.test.framework.DasTest;
@@ -43,6 +48,11 @@
new CustomerData(getAutoConnection()).refresh();
new OrderData(getAutoConnection()).refresh();
+ new CompanyData(getAutoConnection()).refresh();
+ new EmployeeData(getAutoConnection()).refresh();
+ new DepartmentData(getAutoConnection()).refresh();
+ new CompanyEmpData(getAutoConnection()).refresh();
+ new DepEmpData(getAutoConnection()).refresh();
}
protected void tearDown() throws Exception {
@@ -80,7 +90,7 @@
.createCommand("SELECT * FROM CUSTOMER LEFT JOIN ANORDER ON CUSTOMER.ID = ANORDER.CUSTOMER_ID");
DataObject root = select.executeQuery();
-
+
DataObject cust1 = root.getDataObject("CUSTOMER[1]");
DataObject cust2 = root.getDataObject("CUSTOMER[2]");
@@ -113,7 +123,40 @@
assertEquals(cust2OrderCount.intValue() - 1, root.getList("CUSTOMER[1]/orders").size());
}
+
+ /**
+ * This scenario uses union to simmulate full outer join
+ * The resulted graph will have departments without employees, and employees without departments
+ * And this testcase will modify the relationship between these entities and assign the employees to the department
+ *
+ * @throws Exception
+ */
+ public void testSimulateFullOuterJoinRelationshipModification() throws Exception {
+
+ DAS das = DAS.FACTORY.createDAS(getConfig("companyMappingWithResultDescriptor.xml"), getConnection());
+ // Read some customers and related orders
+
+ Command select = das.getCommand("testFullOuterJoinRelationship");
+ DataObject root = select.executeQuery();
+ DataObject department = root.getDataObject("DEPARTMENT[ID='6']"); //department with no employees
+
+ DataObject emp1 = root.getDataObject("EMPLOYEE[ID='12']"); //employee not assgned to department
+ DataObject emp2 = root.getDataObject("EMPLOYEE[ID='15']"); //employee not assgned to department
+
+ department.getList("employees").add(emp1);
+ department.getList("employees").add(emp2);
+
+ das.applyChanges(root);
+
+ //verify cust1 relationship updates
+ select = das.getCommand("testEmployeesFromDepartment");
+ select.setParameter(1, 6);
+
+ root = select.executeQuery();
+ assertEquals(2, root.getDataObject("DEPARTMENT[ID='6']").getList("employees").size());
+
+ }
public void testFKBehavior() throws SQLException {
Modified: incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/DepartmentData.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/DepartmentData.java?view=diff&rev=532139&r1=532138&r2=532139
==============================================================================
--- incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/DepartmentData.java (original)
+++ incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/DepartmentData.java Tue Apr 24 16:43:40 2007
@@ -28,7 +28,8 @@
private static int[] columnTypes = {Types.VARCHAR, Types.VARCHAR, Types.VARCHAR};
- private static Object[][] deptData = {{"Advanced Technologies", "NY", "123" }};
+ private static Object[][] deptData = {{"Advanced Technologies", "NY", "123" },
+ {"New Technologies", "CA", "125" }};
private static String[] deptColumns = {"NAME", "LOCATION", "DEPNUMBER"};
Modified: incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/EmployeeData.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/EmployeeData.java?view=diff&rev=532139&r1=532138&r2=532139
==============================================================================
--- incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/EmployeeData.java (original)
+++ incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/EmployeeData.java Tue Apr 24 16:43:40 2007
@@ -29,7 +29,9 @@
private static Object[][] employeeData = {{"John Jones", "E0001", Boolean.valueOf(false)},
{"Mary Smith", "E0002", Boolean.valueOf(true)},
- {"Jane Doe", "E0003", Boolean.valueOf(false)}, {"Al Smith", "E0004", Boolean.valueOf(true)}};
+ {"Jane Doe", "E0003", Boolean.valueOf(false)},
+ {"Al Smith", "E0004", Boolean.valueOf(true)},
+ {"John Smith", "E0005", Boolean.valueOf(false)}};
private static String[] employeeColumns = {"NAME", "SN", "MANAGER"};
Added: incubator/tuscany/java/das/rdb/src/test/resources/companyMappingWithResultDescriptor.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/test/resources/companyMappingWithResultDescriptor.xml?view=auto&rev=532139
==============================================================================
--- incubator/tuscany/java/das/rdb/src/test/resources/companyMappingWithResultDescriptor.xml (added)
+++ incubator/tuscany/java/das/rdb/src/test/resources/companyMappingWithResultDescriptor.xml Tue Apr 24 16:43:40 2007
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="ASCII"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+ -->
+<Config xmlns="http:///org.apache.tuscany.das.rdb/config.xsd">
+ <Command name="testFullOuterJoinRelationship" SQL="select * from DEPARTMENT left join EMPLOYEE on DEPARTMENT.ID = EMPLOYEE.DEPARTMENTID UNION select * from DEPARTMENT right join EMPLOYEE on DEPARTMENT.ID = EMPLOYEE.DEPARTMENTID WHERE employee.DepartmentID IS NULL" kind="Select">
+ <ResultDescriptor columnName="ID" tableName="DEPARTMENT" columnType="commonj.sdo.IntObject"/>
+ <ResultDescriptor columnName="NAME" tableName="DEPARTMENT" columnType="commonj.sdo.String"/>
+ <ResultDescriptor columnName="LOCATION" tableName="DEPARTMENT" columnType="commonj.sdo.String"/>
+ <ResultDescriptor columnName="DEPNUMBER" tableName="DEPARTMENT" columnType="commonj.sdo.String"/>
+ <ResultDescriptor columnName="COMPANYID" tableName="DEPARTMENT" columnType="commonj.sdo.IntObject"/>
+
+ <ResultDescriptor columnName="ID" tableName="EMPLOYEE" columnType="commonj.sdo.IntObject"/>
+ <ResultDescriptor columnName="NAME" tableName="EMPLOYEE" columnType="commonj.sdo.String"/>
+ <ResultDescriptor columnName="SN" tableName="EMPLOYEE" columnType="commonj.sdo.String"/>
+ <ResultDescriptor columnName="MANAGER" tableName="EMPLOYEE" columnType="commonj.sdo.IntObject"/>
+ <ResultDescriptor columnName="DEPARTMENTID" tableName="EMPLOYEE" columnType="commonj.sdo.IntObject"/>
+ </Command>
+
+ <Command name="testEmployeesFromDepartment" SQL="select * from DEPARTMENT left join EMPLOYEE on DEPARTMENT.ID = EMPLOYEE.DEPARTMENTID where DEPARTMENT.ID = ?" kind="Select"/>
+
+ <Table tableName="COMPANY">
+ <Column columnName="ID" primaryKey="true"/>
+ </Table>
+
+ <Table tableName="DEPARTMENT">
+ <Column columnName="ID" primaryKey="true"/>
+ </Table>
+
+ <Table tableName="EMPLOYEE">
+ <Column columnName="ID" primaryKey="true"/>
+ </Table>
+
+ <Relationship name="departments" primaryKeyTable="COMPANY" foreignKeyTable="DEPARTMENT" many="true">
+ <KeyPair primaryKeyColumn="ID" foreignKeyColumn="COMPANYID"/>
+ </Relationship>
+
+ <Relationship name="employees" primaryKeyTable="DEPARTMENT" foreignKeyTable="EMPLOYEE" many="true">
+ <KeyPair primaryKeyColumn="ID" foreignKeyColumn="DEPARTMENTID"/>
+ </Relationship>
+
+</Config>
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org