Author: kwilliams
Date: Wed Apr 26 21:23:45 2006
New Revision: 397388
URL: http://svn.apache.org/viewcvs?rev=397388&view=rev
Log:
Adding tests for programmatic Config instance construction.
Added:
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ProgrammaticConfigTests.java
(with props)
Modified:
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/data/BookData.java
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/DatabaseSetup.java
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/suites/AllCommonTests.java
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=397388&r1=397387&r2=397388&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
Wed Apr 26 21:23:45 2006
@@ -35,7 +35,7 @@
public void testSimpleOCC() throws Exception {
//Read a book instance
- Command select = Command.FACTORY.createCommand("SELECT * FROM
BOOK WHERE ID = 1");
+ Command select = Command.FACTORY.createCommand("SELECT * FROM
BOOK WHERE BOOK_ID = 1");
select.setConnection(getConnection());
DataObject root = select.executeQuery();
DataObject book = root.getDataObject("BOOK[1]");
@@ -44,7 +44,7 @@
// Explicitly change OCC column in database to force collision
Command update = Command.FACTORY
- .createCommand("update BOOK set OCC = :OCC
where ID = 1");
+ .createCommand("update BOOK set OCC = :OCC
where BOOK_ID = 1");
update.setConnection(getConnection());
update.setParameterValue("OCC", new Integer(100));
update.execute();
Added:
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ProgrammaticConfigTests.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ProgrammaticConfigTests.java?rev=397388&view=auto
==============================================================================
---
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ProgrammaticConfigTests.java
(added)
+++
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ProgrammaticConfigTests.java
Wed Apr 26 21:23:45 2006
@@ -0,0 +1,123 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as
applicable.
+ *
+ * Licensed 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.
+ */
+package org.apache.tuscany.das.rdb.test;
+
+import org.apache.tuscany.das.rdb.ApplyChangesCommand;
+import org.apache.tuscany.das.rdb.Command;
+import org.apache.tuscany.das.rdb.ConfigHelper;
+import org.apache.tuscany.das.rdb.test.data.BookData;
+import org.apache.tuscany.das.rdb.test.data.CustomerData;
+import org.apache.tuscany.das.rdb.test.data.OrderData;
+import org.apache.tuscany.das.rdb.test.framework.DasTest;
+
+import commonj.sdo.DataObject;
+
+/**
+ * Tests the Converter framwork
+ */
+public class ProgrammaticConfigTests extends DasTest {
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ new BookData(getAutoConnection()).refresh();
+ new CustomerData(getAutoConnection()).refresh();
+ new OrderData(getAutoConnection()).refresh();
+ }
+
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ }
+
+ /**
+ * Simple read followed by a write. This should fail since there is no
+ * config associaed with the applychanges command
+ */
+ public void test_1() throws Exception {
+
+ // Read a book instance
+ Command select = Command.FACTORY.createCommand("SELECT * FROM BOOK
WHERE BOOK_ID = 1");
+ select.setConnection(getConnection());
+ DataObject root = select.executeQuery();
+ DataObject book = root.getDataObject("BOOK[1]");
+ // Change a field to mark the instance 'dirty'
+ book.setInt("QUANTITY", 2);
+
+ // Flush the change
+ ApplyChangesCommand apply =
Command.FACTORY.createApplyChangesCommand();
+ apply.setConnection(getConnection());
+
+ try {
+ apply.execute(root);
+ fail("An exception should be thrown since here is no config to
identify the primary key");
+ } catch (RuntimeException ex) {
+ // Expected
+ }
+ }
+
+ /**
+ * Simple read followed by a write. Config instance is generated
+ * programmatically using the ConfigHelper.
+ */
+ public void test_2() throws Exception {
+
+ // Read a book instance
+ Command select = Command.FACTORY.createCommand("SELECT * FROM BOOK
WHERE BOOK_ID = 1");
+ select.setConnection(getConnection());
+ DataObject root = select.executeQuery();
+ DataObject book = root.getDataObject("BOOK[1]");
+ // Change a field to mark the instance 'dirty'
+ book.setInt("QUANTITY", 2);
+
+ // Flush the change
+ // Create config programmatically
+ ConfigHelper helper = new ConfigHelper();
+ helper.addPrimaryKey("BOOK.BOOK_ID");
+
+ ApplyChangesCommand apply =
Command.FACTORY.createApplyChangesCommand(helper.getConfig());
+ apply.setConnection(getConnection());
+
+ apply.execute(root);
+
+ // Verify
+ root = select.executeQuery();
+ book = root.getDataObject("BOOK[1]");
+ assertEquals(2, book.getInt("QUANTITY"));
+ }
+
+
+ /**
+ * Test ability to read a compound graph
+ */
+ public void test_3() throws Exception {
+
+ String statement = "SELECT * FROM CUSTOMER LEFT JOIN ANORDER ON
CUSTOMER.ID = ANORDER.CUSTOMER_ID WHERE CUSTOMER.ID = 1";
+
+ // Read some customers and related orders
+ // Create relationship config programmatically
+ ConfigHelper helper = new ConfigHelper();
+ helper.addRelationship("CUSTOMER.ID", "ANORDER.CUSTOMER_ID");
+
+ Command select = Command.FACTORY.createCommand(statement,
helper.getConfig());
+ select.setConnection(getConnection());
+
+ DataObject root = select.executeQuery();
+ DataObject customer = root.getDataObject("CUSTOMER[1]");
+
+ assertEquals(2, customer.getList("ANORDER").size());
+
+ }
+}
Propchange:
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ProgrammaticConfigTests.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ProgrammaticConfigTests.java
------------------------------------------------------------------------------
svn:keywords = Rev,Date
Modified:
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/BookData.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/BookData.java?rev=397388&r1=397387&r2=397388&view=diff
==============================================================================
---
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/BookData.java
(original)
+++
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/BookData.java
Wed Apr 26 21:23:45 2006
@@ -32,7 +32,7 @@
{ new Integer(1), "The Brothers Karamazov", "Fyodor
Dostoevsky", new Integer(5), new Integer(17) },
{ new Integer(2), "Cat in the Hat", "Doctor Seuss", new
Integer(10), new Integer(1) }};
- private static String[] bookColumns = { "ID", "NAME", "AUTHOR",
"QUANTITY", "OCC"};
+ private static String[] bookColumns = { "BOOK_ID", "NAME", "AUTHOR",
"QUANTITY", "OCC"};
public BookData(Connection connection) {
super(connection, bookData, bookColumns, bookTypes);
Modified:
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/DatabaseSetup.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/DatabaseSetup.java?rev=397388&r1=397387&r2=397388&view=diff
==============================================================================
---
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/DatabaseSetup.java
(original)
+++
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/DatabaseSetup.java
Wed Apr 26 21:23:45 2006
@@ -210,7 +210,7 @@
}
protected String getCreateBook() {
- return "CREATE TABLE BOOK (ID INT PRIMARY KEY NOT NULL, NAME
VARCHAR(50), AUTHOR VARCHAR(30), QUANTITY INT, OCC INTEGER)";
+ return "CREATE TABLE BOOK (BOOK_ID INT PRIMARY KEY NOT NULL, NAME
VARCHAR(50), AUTHOR VARCHAR(30), QUANTITY INT, OCC INTEGER)";
}
protected String getCreatePart() {
Modified:
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/suites/AllCommonTests.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/suites/AllCommonTests.java?rev=397388&r1=397387&r2=397388&view=diff
==============================================================================
---
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/suites/AllCommonTests.java
(original)
+++
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/suites/AllCommonTests.java
Wed Apr 26 21:23:45 2006
@@ -34,6 +34,7 @@
import org.apache.tuscany.das.rdb.test.Paging;
import org.apache.tuscany.das.rdb.test.PartialUpdateTests;
import org.apache.tuscany.das.rdb.test.PassiveConnectionTests;
+import org.apache.tuscany.das.rdb.test.ProgrammaticConfigTests;
import org.apache.tuscany.das.rdb.test.RecursiveTests;
import org.apache.tuscany.das.rdb.test.RelationshipTests;
import org.apache.tuscany.das.rdb.test.ResultSetShapeTests;
@@ -88,7 +89,8 @@
suite.addTest(new TestSuite (CorrectedDefectTests.class));
suite.addTest(new TestSuite (OneToOneRelationshipTests.class));
-
+ suite.addTest(new TestSuite (ProgrammaticConfigTests.class));
+
//$JUnit-END$
return suite;
}