db-derby-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From rhille...@apache.org
Subject svn commit: r746245 - in /db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang: UserLobTest.java _Suite.java
Date Fri, 20 Feb 2009 14:14:40 GMT
Author: rhillegas
Date: Fri Feb 20 14:14:40 2009
New Revision: 746245

URL: http://svn.apache.org/viewvc?rev=746245&view=rev
Log:
DERBY-2201: More tests for functions which return lobs.

Added:
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/UserLobTest.java
  (with props)
Modified:
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/_Suite.java

Added: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/UserLobTest.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/UserLobTest.java?rev=746245&view=auto
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/UserLobTest.java
(added)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/UserLobTest.java
Fri Feb 20 14:14:40 2009
@@ -0,0 +1,264 @@
+/*
+
+   Derby - Class org.apache.derbyTesting.functionTests.tests.lang.UserLobTest
+
+   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.
+
+ */
+
+package org.apache.derbyTesting.functionTests.tests.lang;
+
+import java.sql.SQLException;
+import java.sql.SQLWarning;
+import java.sql.Connection;
+import java.sql.Statement;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.DriverManager;
+import java.util.ArrayList;
+import junit.framework.Test;
+import junit.framework.TestSuite;
+import org.apache.derby.iapi.util.StringUtil;
+import org.apache.derby.catalog.DefaultInfo;
+import org.apache.derbyTesting.junit.BaseJDBCTestCase;
+import org.apache.derbyTesting.junit.JDBC;
+import org.apache.derbyTesting.junit.DatabasePropertyTestSetup;
+import org.apache.derbyTesting.junit.JDBC;
+import org.apache.derbyTesting.junit.TestConfiguration;
+import org.apache.derbyTesting.junit.CleanDatabaseTestSetup;
+import org.apache.derbyTesting.junit.JDBC;
+import org.apache.derbyTesting.junit.SupportFilesSetup;
+
+import org.apache.derby.catalog.types.RoutineAliasInfo;
+
+/**
+ * <p>
+ * Additional tests for Blob/Clobs created from user-supplied large objects.
+ * </p>
+ */
+public class UserLobTest extends GeneratedColumnsHelper
+{
+    ///////////////////////////////////////////////////////////////////////////////////
+    //
+    // CONSTANTS
+    //
+    ///////////////////////////////////////////////////////////////////////////////////
+
+    ///////////////////////////////////////////////////////////////////////////////////
+    //
+    // STATE
+    //
+    ///////////////////////////////////////////////////////////////////////////////////
+
+    ///////////////////////////////////////////////////////////////////////////////////
+    //
+    // CONSTRUCTOR
+    //
+    ///////////////////////////////////////////////////////////////////////////////////
+
+
+    /**
+     * Create a new instance.
+     */
+
+    public UserLobTest(String name)
+    {
+        super(name);
+    }
+
+    ///////////////////////////////////////////////////////////////////////////////////
+    //
+    // JUnit BEHAVIOR
+    //
+    ///////////////////////////////////////////////////////////////////////////////////
+
+
+    /**
+     * Construct top level suite in this JUnit test
+     */
+    public static Test suite()
+    {
+        TestSuite suite = (TestSuite) TestConfiguration.embeddedSuite(UserLobTest.class);
+        Test        result = new CleanDatabaseTestSetup( suite );
+
+        return result;
+    }
+
+    ///////////////////////////////////////////////////////////////////////////////////
+    //
+    // TESTS
+    //
+    ///////////////////////////////////////////////////////////////////////////////////
+
+    /**
+     * <p>
+     * Test that user-defined LOBs can be stored in varbinary and varchar columns.
+     * </p>
+     */
+    public  void    test_001_casts()
+        throws Exception
+    {
+        Connection  conn = getConnection();
+
+        //
+        // Create some user defined functions which return lobs.
+        // 
+        goodStatement
+            (
+             conn,
+             "create function f_2201_blob_1\n" +
+             "(\n" +
+             "	a_0 varchar( 10 )\n" +
+             ")\n" +
+             "returns blob\n" +
+             "language java\n" +
+             "parameter style java\n" +
+             "no sql\n" +
+             "external name 'org.apache.derbyTesting.functionTests.tests.lang.AnsiSignatures.blob_Blob_String'\n"
+             );
+        goodStatement
+            (
+             conn,
+             "create function f_2201_clob_1\n" +
+             "(\n" +
+             "	a_0 varchar( 10 )\n" +
+             ")\n" +
+             "returns clob\n" +
+             "language java\n" +
+             "parameter style java\n" +
+             "no sql\n" +
+             "external name 'org.apache.derbyTesting.functionTests.tests.lang.AnsiSignatures.clob_Clob_String'\n"
+             );
+
+        //
+        // Create some tables for storing the results of these functions
+        // 
+        goodStatement
+            (
+             conn,
+             "create table t_2201_clob_blob_1( a clob, b blob )\n"
+             );
+        goodStatement
+            (
+             conn,
+             "create table t_2201_chartypes_1( a char( 10 ), b varchar( 10 ), c long varchar
)\n"
+              );
+        
+        //
+        // Successfully insert into these tables, casting as necessary.
+        // 
+        goodStatement
+            (
+             conn,
+             "insert into t_2201_clob_blob_1( a, b ) values( f_2201_clob_1( 'abc' ), f_2201_blob_1(
'abc' ) )\n"
+              );
+        goodStatement
+            (
+             conn,
+             "insert into t_2201_chartypes_1( a, b, c )\n" +
+             "values\n" +
+             "(\n" +
+             "  cast( f_2201_clob_1( 'abc' ) as char( 10)),\n" +
+             "  cast( f_2201_clob_1( 'def' ) as varchar( 10)),\n" +
+             "  cast( f_2201_clob_1( 'ghi' ) as long varchar )\n" +
+             ")\n"
+              );
+        assertResults
+            (
+             conn,
+             "select * from t_2201_clob_blob_1",
+             new String[][]
+             {
+                 { "abc" ,         "616263" },
+             },
+             false
+             );
+        assertResults
+            (
+             conn,
+             "select * from t_2201_chartypes_1",
+             new String[][]
+             {
+                 { "abc       ", "def", "ghi" },
+             },
+             false
+             );
+        assertResults
+            (
+             conn,
+             "select length( a ), length( b ), length( c ) from t_2201_chartypes_1",
+             new String[][]
+             {
+                 { "10", "3", "3" },
+             },
+             false
+             );
+        assertResults
+            (
+             conn,
+             "values\n" +
+             "(\n" +
+             "  length( cast( f_2201_clob_1( 'abc' ) as char( 10)) ),\n" +
+             "  length( cast( f_2201_clob_1( 'defg' ) as varchar( 10)) ),\n" +
+             "  length( cast( f_2201_clob_1( 'hijkl' ) as long varchar ) ),\n" +
+             "  length( f_2201_clob_1( 'mnopqr' ) )\n" +
+             ")\n",
+             new String[][]
+             {
+                 { "10", "4", "5", "6" },
+             },
+             false
+             );
+        assertResults
+            (
+             conn,
+             "select length( a ), length( b ) from t_2201_clob_blob_1",
+             new String[][]
+             {
+                 { "3", "3" },
+             },
+             false
+             );
+        assertResults
+            (
+             conn,
+             "values ( varchar( f_2201_clob_1( 'abc' ) ) )",
+             new String[][]
+             {
+                 { "abc" },
+             },
+             false
+             );
+        assertResults
+            (
+             conn,
+             "values ( substr( f_2201_clob_1( 'abc' ), 2, 2 ), upper( f_2201_clob_1( 'defg'
) ) )",
+             new String[][]
+             {
+                 { "bc", "DEFG" },
+             },
+             false
+             );
+    }
+
+    ///////////////////////////////////////////////////////////////////////////////////
+    //
+    // MINIONS
+    //
+    ///////////////////////////////////////////////////////////////////////////////////
+
+
+}

Propchange: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/UserLobTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/_Suite.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/_Suite.java?rev=746245&r1=746244&r2=746245&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/_Suite.java
(original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/_Suite.java
Fri Feb 20 14:14:40 2009
@@ -180,6 +180,7 @@
         suite.addTest(GeneratedColumnsTest.suite());
         suite.addTest(GeneratedColumnsPermsTest.suite());
         suite.addTest(AlterColumnTest.suite());
+        suite.addTest(UserLobTest.suite());
 
         return suite;
 	}



Mime
View raw message