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]