Author: arminw
Date: Wed Oct  4 02:52:30 2006
New Revision: 452811

URL: http://svn.apache.org/viewvc?view=rev&rev=452811
Log:
add test methods, update test

Modified:
    db/ojb/trunk/src/test/org/apache/ojb/broker/StoredProcedureMaxDBTest.java
    db/ojb/trunk/src/test/org/apache/ojb/broker/StoredProcedureTest.java

Modified: 
db/ojb/trunk/src/test/org/apache/ojb/broker/StoredProcedureMaxDBTest.java
URL: 
http://svn.apache.org/viewvc/db/ojb/trunk/src/test/org/apache/ojb/broker/StoredProcedureMaxDBTest.java?view=diff&rev=452811&r1=452810&r2=452811
==============================================================================
--- db/ojb/trunk/src/test/org/apache/ojb/broker/StoredProcedureMaxDBTest.java 
(original)
+++ db/ojb/trunk/src/test/org/apache/ojb/broker/StoredProcedureMaxDBTest.java 
Wed Oct  4 02:52:30 2006
@@ -46,7 +46,7 @@
 
         insertProcedure =
                 "CREATE DBPROC SP_CUSTOMER_INSERT (IN NAME VARCHAR(150), OUT 
CUSTOMER_ID FIXED(10)) " +
-                        "AS SET CUSTOMER_ID = 0;" +
+                        "AS " +
                         "INSERT INTO " + schemaName + "SP_CUSTOMER (NAME) 
VALUES (:NAME);" +
                         "BEGIN " +
                         "SET CUSTOMER_ID=SP_CUSTOMER.CURRVAL;" +
@@ -57,10 +57,23 @@
         deleteProcedure = "CREATE DBPROC SP_CUSTOMER_DELETE" +
                 " (IN ID_ FIXED(10)) AS " +
                 "DELETE FROM " + schemaName + "SP_CUSTOMER WHERE ID_=:ID_;";
+        selectByPKProcedure =
+                "CREATE DBPROC SP_CUSTOMER_BY_PK (IN ID_ FIXED(10), OUT 
CUSTOMER_ID FIXED(10), " +
+                        "OUT CUSTOMER_NAME VARCHAR(150)) " +
+                        "AS BEGIN " +
+                        "SELECT ID_, NAME INTO :CUSTOMER_ID, :CUSTOMER_NAME 
FROM "
+                        + schemaName + "SP_CUSTOMER WHERE ID_ = :ID_;" +
+                        "END;";
+//        selectByPKProcedure =
+//                "CREATE DBPROC SP_CUSTOMER_BY_PK (IN ID_ FIXED(10)) RETURNS 
CURSOR AS " +
+//                        "$CURSOR = 'PK_CURSOR'; " +
+//                        "DECLARE :$CURSOR CURSOR FOR " +
+//                        "SELECT ID_, NAME FROM " + schemaName + "SP_CUSTOMER 
WHERE ID_ = :ID_;";
 
         dropInsertProcedure = "DROP DBPROC SP_CUSTOMER_INSERT";
         dropUpdateProcedure = "DROP DBPROC SP_CUSTOMER_UPDATE";
         dropDeleteProcedure = "DROP DBPROC SP_CUSTOMER_DELETE";
+        dropSelectByPKProcedure = "DROP DBPROC SP_CUSTOMER_BY_PK";
     }
 
     protected boolean isSupportedDatabase()

Modified: db/ojb/trunk/src/test/org/apache/ojb/broker/StoredProcedureTest.java
URL: 
http://svn.apache.org/viewvc/db/ojb/trunk/src/test/org/apache/ojb/broker/StoredProcedureTest.java?view=diff&rev=452811&r1=452810&r2=452811
==============================================================================
--- db/ojb/trunk/src/test/org/apache/ojb/broker/StoredProcedureTest.java 
(original)
+++ db/ojb/trunk/src/test/org/apache/ojb/broker/StoredProcedureTest.java Wed 
Oct  4 02:52:30 2006
@@ -17,8 +17,13 @@
 
 import java.sql.Connection;
 import java.sql.Statement;
+import java.util.Collection;
 
 import org.apache.ojb.junit.PBTestCase;
+import org.apache.ojb.broker.query.Query;
+import org.apache.ojb.broker.query.QueryFactory;
+import org.apache.ojb.broker.query.Criteria;
+import org.apache.commons.lang.builder.EqualsBuilder;
 
 /**
  * Abstract base class to test OJB insert, update, delete operations
@@ -38,11 +43,13 @@
     protected String insertProcedure;
     protected String updateProcedure;
     protected String deleteProcedure;
+    protected String selectByPKProcedure;
 
 
     protected String dropInsertProcedure;
     protected String dropUpdateProcedure;
     protected String dropDeleteProcedure;
+    protected String dropSelectByPKProcedure;
 
     public StoredProcedureTest(String name)
     {
@@ -53,17 +60,19 @@
     {
         super.setUp();
 
+        initDBDependend();
         if(isSupportedDatabase())
         {
-            initDBDependend();
             try{executeStatement(dropInsertProcedure);}catch(Exception e){}
             try{executeStatement(dropDeleteProcedure);}catch(Exception e){}
             try{executeStatement(dropUpdateProcedure);}catch(Exception e){}
+            try{executeStatement(dropSelectByPKProcedure);}catch(Exception e){}
             try{executeStatement(deleteTable);}catch(Exception e){}
             executeStatement(createTable);
             executeStatement(insertProcedure);
             executeStatement(updateProcedure);
             executeStatement(deleteProcedure);
+            executeStatement(selectByPKProcedure);
         }
     }
 
@@ -102,6 +111,57 @@
         }
     }
 
+    public void testSelectByPK()
+    {
+        if(!isSupportedDatabase())
+        {
+            this.ojbSkipTestMessage("Skip " + databaseName + " specific test");
+            return;
+        }
+
+        Customer c1 = createCustomer();
+        c1.setName("testInsert_1");
+        Customer c2 = createCustomer();
+        c2.setName("testInsert_2");
+        broker.beginTransaction();
+        try
+        {
+            broker.store(c1);
+            broker.store(c2);
+            broker.commitTransaction();
+        }
+        catch(PersistenceBrokerException e)
+        {
+            if(broker != null) broker.abortTransaction();
+            throw e;
+        }
+        assertNotNull(c1.getId());
+        assertNotNull(c2.getId());
+
+        Identity oid1 = broker.serviceIdentity().buildIdentity(c1);
+        Identity oid2 = broker.serviceIdentity().buildIdentity(c2);
+
+        broker.clearCache();
+
+        Criteria crit = new Criteria().addEqualTo("id", c1.getId())
+                .addOrCriteria(new Criteria().addEqualTo("id", c2.getId()));
+        Query q = QueryFactory.newQuery(Customer.class, crit);
+        Collection result = broker.getCollectionByQuery(q);
+        assertEquals(2, result.size());
+
+        broker.clearCache();
+
+        //broker.beginTransaction();
+        Customer m1 = (Customer) broker.getObjectByIdentity(oid1);
+        Customer m2 = (Customer) broker.getObjectByIdentity(oid2);
+        //broker.commitTransaction();
+
+        assertNotNull(m1);
+        assertNotNull(m2);
+        assertEquals(c1, m1);
+        assertEquals(c2, m2);
+    }
+
     public void testInsert()
     {
         if(!isSupportedDatabase())
@@ -247,6 +307,52 @@
         assertNull(r2);
     }
 
+    public void testBulkInsertDelete()
+    {
+        if(!isSupportedDatabase())
+        {
+            this.ojbSkipTestMessage("Skip " + databaseName + " specific test");
+            return;
+        }
+
+        int loops = 200;
+        Customer[] customers = new Customer[loops];
+        try
+        {
+            broker.beginTransaction();
+            for(int i = 0; i< loops; i++)
+            {
+                Customer c = createCustomer();
+                c.setName("testDelete_" + i);
+                broker.store(c);
+                customers[i] = c;
+            }
+            broker.commitTransaction();
+        }
+        catch(PersistenceBrokerException e)
+        {
+            if(broker != null) broker.abortTransaction();
+            throw e;
+        }
+
+
+        broker.beginTransaction();
+        try
+        {
+            for(int i = 0; i < customers.length; i++)
+            {
+                Customer customer = customers[i];
+                broker.delete(customer);
+            }
+            broker.commitTransaction();
+        }
+        catch(PersistenceBrokerException e)
+        {
+            if(broker != null) broker.abortTransaction();
+            throw e;
+        }
+    }
+
     protected StoredProcedureTest.Customer createCustomer()
     {
         return new StoredProcedureTest.Customer();
@@ -275,6 +381,24 @@
         public void setName(String name)
         {
             this.name = name;
+        }
+
+        public boolean equals(Object obj)
+        {
+            boolean result = true;
+            if(!(this == obj))
+            {
+                if(obj == null || !(obj instanceof Customer))
+                {
+                    result = false;
+                }
+                else
+                {
+                    Customer other = (Customer) obj;
+                    result = new EqualsBuilder().append(id, 
other.id).append(name, other.name).isEquals();
+                }
+            }
+            return result;
         }
     }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to