You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by kw...@apache.org on 2006/06/23 22:17:29 UTC

svn commit: r416813 - in /incubator/tuscany/java/das/rdb/src/test: java/org/apache/tuscany/das/rdb/test/ java/org/apache/tuscany/das/rdb/test/suites/ resources/

Author: kwilliams
Date: Fri Jun 23 13:17:28 2006
New Revision: 416813

URL: http://svn.apache.org/viewvc?rev=416813&view=rev
Log:
Applying Darius' patch for T-250

Added:
    incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/AliasTests.java   (with props)
    incubator/tuscany/java/das/rdb/src/test/resources/BooksConfigWithAlias.xml   (with props)
Modified:
    incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ExceptionTests.java
    incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/suites/AllCommonTests.java

Added: incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/AliasTests.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/AliasTests.java?rev=416813&view=auto
==============================================================================
--- incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/AliasTests.java (added)
+++ incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/AliasTests.java Fri Jun 23 13:17:28 2006
@@ -0,0 +1,141 @@
+/*  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.Command;
+import org.apache.tuscany.das.rdb.ConfigHelper;
+import org.apache.tuscany.das.rdb.test.data.BookData;
+import org.apache.tuscany.das.rdb.test.framework.DasTest;
+import org.apache.tuscany.das.rdb.DAS;
+
+import commonj.sdo.DataObject;
+
+public class AliasTests extends DasTest{
+
+    protected void setUp() throws Exception {
+    	
+        super.setUp();
+        new BookData(getAutoConnection()).refresh();
+    }
+	
+    /**
+	 * Tests the use of column aliasing. The property name change is found in the BooksConfig.xml file
+	 * Otherwise similar to testTableAlias
+	 * 
+	 * @throws Exception
+	 */
+	public void testColumnAlias() throws Exception{
+		
+		DAS das = DAS.FACTORY.createDAS( getConfig("BooksConfigWithAlias.xml") );
+	    das.setConnection( getConnection() );
+	    
+	    Command select = das.getCommand( "get all books" );
+	    //select.setConnection( getConnection() );
+	    
+	    DataObject root = select.executeQuery();
+	    
+	    DataObject book = root.getDataObject("Book[2]");
+	    book.set( "Writer", "Dr. Seuss");
+	    
+	    das.applyChanges( root );
+	  
+	    select = das.getCommand( "get Cat in the Hat" );
+	  
+	    
+	    root = select.executeQuery();
+	    // Ensure the change actually updated
+	    assertEquals( "Dr. Seuss", root.getString( "Book[1]/Writer" ) );
+	}
+
+	/**
+	 * Tests to ensure that columns are being properly read when using an Alias, just a bunch of simple
+	 * creating, renaming, and deleting of entries while using an alias.
+	 */
+	public void testColumnData() throws Exception {
+		
+	    DAS das = DAS.FACTORY.createDAS( getConfig("BooksConfigWithAlias.xml") );
+	    das.setConnection(getConnection());
+	    
+	    Command select = das.getCommand( "get book by ID" );
+	    select.setParameterValue("ID", new Integer(1));
+	    select.setConnection(getConnection());
+	    
+	    //*******Verifys a column entry is readable
+	    DataObject root = select.executeQuery();
+	    assertEquals("Fyodor Dostoevsky", root.getString( "Book[1]/Writer" ) );
+	    
+	    DataObject bookToChange = root.getDataObject("Book[1]");
+	    bookToChange.set("Writer", "Fyodor Dostoevskii"); // His last name COULD be spelt like that too!
+	    
+	    das.applyChanges( root );
+	    
+	    //*******Verifys correct information in entry after a column data is changed
+	    select = das.getCommand( "get all books" );
+	    //select.setConnection(getConnection());
+	    
+	    root = select.executeQuery();
+	    assertEquals("Fyodor Dostoevskii", root.getString( "Book[1]/Writer" ) );
+	    
+	    bookToChange = root.getDataObject("Book[1]");
+	    bookToChange.delete();
+	    
+	    das.applyChanges( root );
+	    
+	    //*******Verifys correct in table, after entry is deleted
+	    select = das.getCommand( "get all books" );
+	    //select.setConnection(getConnection());
+	    
+	    root = select.executeQuery();
+	    assertEquals( 1, root.getList("Book").size() );
+	    assertEquals( "Doctor Seuss", root.getString( "Book[1]/Writer") );
+	}
+
+	/**
+	 * Test to check if updating a table works when using Aliasing
+	 * Previously this was test_4 in ExceptionTests.
+	 */
+	public void testTableAlias() throws Exception  {
+		
+	    // Create Table config programmatically
+	    //ConfigHelper helper = new ConfigHelper();
+	    //helper.addTable("BOOK", "Book");
+	    //helper.addPrimaryKey("BOOK.BOOK_ID");
+	    
+	    DAS das = DAS.FACTORY.createDAS( getConfig("BooksConfigWithAlias.xml") );
+	    das.setConnection(getConnection());
+	    Command select = das.getCommand( "get book by ID" );
+	    select.setParameterValue("ID", new Integer(1));
+	    
+	    DataObject root = select.executeQuery(); 
+	    
+	    
+	    DataObject newBook = root.createDataObject("Book");
+	    newBook.setString("NAME", "Ant Colonies of the Old World");
+	    newBook.setInt("BOOK_ID", 1001);
+	    root.getList("Book").add(newBook);
+	    
+	    
+	    das.applyChanges( root );
+	    
+	    
+	    root = select.executeQuery();
+	    
+	    //Verify
+	    select.setParameterValue("ID", new Integer(1001));
+	    root = select.executeQuery();
+	
+	    assertEquals("Ant Colonies of the Old World", root.getString("Book[1]/NAME"));
+	 }
+}
\ No newline at end of file

Propchange: incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/AliasTests.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/AliasTests.java
------------------------------------------------------------------------------
    svn:keywords = Rev,Date

Modified: incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ExceptionTests.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ExceptionTests.java?rev=416813&r1=416812&r2=416813&view=diff
==============================================================================
--- incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ExceptionTests.java (original)
+++ incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ExceptionTests.java Fri Jun 23 13:17:28 2006
@@ -109,48 +109,6 @@
         }
     }
     
-    
-    /**
-     * Test nice error message when Conofig does not use Aliased name
-     * Alis is defined for BOOK -> Book but PK config uses BOOK.BOOK_ID
-     * 
-     * In this test case, the create is silently never performed!!!
-     * 
-     * TODO - Uncomment out
-     */
-    public void test_4() throws Exception {
-
-        String statement = "SELECT * FROM BOOK WHERE BOOK.BOOK_ID = :ID";
-
-        // Create Table config programmatically
-        ConfigHelper helper = new ConfigHelper();
-        helper.addTable("BOOK", "Book");
-        helper.addPrimaryKey("BOOK.BOOK_ID");
-        
-        DAS das = DAS.FACTORY.createDAS(helper.getConfig());
-        Command select = das.createCommand(statement);
-        select.setConnection(getConnection());
-        select.setParameterValue("ID", new Integer(1));
-
-        DataObject root = select.executeQuery();
-        
-        DataObject newBook = root.createDataObject("Book");
-        newBook.setString("NAME", "Ant Colonies of the Old World");
-        newBook.setInt("BOOK_ID", 1001);
-        root.getList("Book").add(newBook);
-               
-        das.setConnection(getConnection());
-        das.applyChanges(root);
-        
-        //Verify
-        select.setParameterValue("ID", new Integer(1001));
-        root = select.executeQuery();
-        //TODO - Uncomment to test TUSCANY-250
-        assertEquals("Ant Colonies of the Old World", root.getString("Book[1]/NAME"));
-        
-    }
-    
-    
     public void testReadOrdersAndDetails2() throws Exception {
 
     	DAS das = DAS.FACTORY.createDAS(getConfig("InvalidConfig1.xml"));

Modified: incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/suites/AllCommonTests.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/suites/AllCommonTests.java?rev=416813&r1=416812&r2=416813&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 Fri Jun 23 13:17:28 2006
@@ -19,6 +19,7 @@
 import junit.framework.Test;
 import junit.framework.TestSuite;
 
+import org.apache.tuscany.das.rdb.test.AliasTests;
 import org.apache.tuscany.das.rdb.test.BestPracticeTests;
 import org.apache.tuscany.das.rdb.test.CUDGeneration;
 import org.apache.tuscany.das.rdb.test.CommandGroupTests;
@@ -90,6 +91,7 @@
         suite.addTest(new TestSuite (OneToOneRelationshipTests.class));
        
         suite.addTest(new TestSuite (ProgrammaticConfigTests.class));
+        suite.addTest(new TestSuite (AliasTests.class));
        
 		//$JUnit-END$
 		return suite;

Added: incubator/tuscany/java/das/rdb/src/test/resources/BooksConfigWithAlias.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/test/resources/BooksConfigWithAlias.xml?rev=416813&view=auto
==============================================================================
--- incubator/tuscany/java/das/rdb/src/test/resources/BooksConfigWithAlias.xml (added)
+++ incubator/tuscany/java/das/rdb/src/test/resources/BooksConfigWithAlias.xml Fri Jun 23 13:17:28 2006
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="ASCII"?>
+<!--
+  Copyright (c) 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.
+ -->
+<Config xsi:noNamespaceSchemaLocation="http:///org.apache.tuscany.das.rdb/config.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+     
+    <Command name="get all books" SQL="SELECT * FROM BOOK" kind="Select"/>
+    
+    <Command name="get Cat in the Hat" SQL="SELECT * FROM BOOK WHERE NAME = 'Cat in the Hat'" kind="Select"/>
+    
+    <Command name="get book by ID" SQL="SELECT * FROM BOOK WHERE BOOK.BOOK_ID = :ID" kind="Select"/>
+    
+    
+    
+    <Table tableName="BOOK" typeName="Book">
+        <Column columnName="BOOK_ID" primaryKey="true"/>
+        <Column columnName="AUTHOR" propertyName="Writer"/>
+	    <Column columnName="OCC" collision="true"/>
+    </Table>
+    
+</Config>

Propchange: incubator/tuscany/java/das/rdb/src/test/resources/BooksConfigWithAlias.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/das/rdb/src/test/resources/BooksConfigWithAlias.xml
------------------------------------------------------------------------------
    svn:keywords = Rev,Date



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org