[Jboss-cvs] JBossAS SVN: r56111 - branches/JBoss_4_0_3_SP1_JBAS_3453/testsuite/src/main/org/jboss/test/jca/test

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Aug 21 11:24:00 EDT 2006


Author: weston.price at jboss.com
Date: 2006-08-21 11:23:59 -0400 (Mon, 21 Aug 2006)
New Revision: 56111

Added:
   branches/JBoss_4_0_3_SP1_JBAS_3453/testsuite/src/main/org/jboss/test/jca/test/PurgePolicyUnitTestCase.java
   branches/JBoss_4_0_3_SP1_JBAS_3453/testsuite/src/main/org/jboss/test/jca/test/SupportCodeUnitTestCase.java
Log:
[JBAS-3453] Unit test cases for both purge policy, as well as external
code support.

Added: branches/JBoss_4_0_3_SP1_JBAS_3453/testsuite/src/main/org/jboss/test/jca/test/PurgePolicyUnitTestCase.java
===================================================================
--- branches/JBoss_4_0_3_SP1_JBAS_3453/testsuite/src/main/org/jboss/test/jca/test/PurgePolicyUnitTestCase.java	2006-08-21 15:22:44 UTC (rev 56110)
+++ branches/JBoss_4_0_3_SP1_JBAS_3453/testsuite/src/main/org/jboss/test/jca/test/PurgePolicyUnitTestCase.java	2006-08-21 15:23:59 UTC (rev 56111)
@@ -0,0 +1,110 @@
+package org.jboss.test.jca.test;
+
+import java.sql.Connection;
+import java.sql.SQLException;
+
+import org.jboss.logging.Logger;
+import org.jboss.resource.adapter.jdbc.StaleConnectionException;
+import org.jboss.resource.adapter.jdbc.WrappedConnection;
+import org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory;
+import org.jboss.resource.connectionmanager.InternalManagedConnectionPool;
+import org.jboss.resource.connectionmanager.JBossManagedConnectionPool;
+import org.jboss.resource.connectionmanager.ManagedConnectionPool;
+import org.jboss.resource.connectionmanager.NoTxConnectionManager;
+import org.jboss.resource.connectionmanager.PurgePolicy;
+import org.jboss.test.JBossTestCase;
+import org.jboss.test.jca.jdbc.TestConnection;
+
+public class PurgePolicyUnitTestCase extends JBossTestCase {
+
+	Logger log = Logger.getLogger(PurgePolicyUnitTestCase.class);
+	public PurgePolicyUnitTestCase(String name) 
+	{
+		super(name);
+	
+	}
+	
+	public void testByPoolPurgePolicy() throws Exception
+	{
+		 LocalManagedConnectionFactory mcf = new LocalManagedConnectionFactory();
+	      
+	      mcf.setDriverClass("org.jboss.test.jca.jdbc.TestDriver");
+	      mcf.setConnectionURL("jdbc:jboss-test-adapter");
+	      mcf.setStaleConnectionCheckerClassName("org.jboss.test.jca.support.MockStaleConnectionCheckerTrue");
+	      mcf.setSupportCodeUrl("jca/support-code/support-only-stale.xml");
+	      
+	      InternalManagedConnectionPool.PoolParams pp = new InternalManagedConnectionPool.PoolParams();
+	      pp.minSize = 5;
+	      pp.maxSize = 20;
+	      pp.blockingTimeout = 10000;
+	      pp.purgePolilcy = PurgePolicy.POOL;
+
+	      ManagedConnectionPool mcp = new JBossManagedConnectionPool.OnePool(mcf, pp, false, log);
+	      NoTxConnectionManager noTxn = new NoTxConnectionManager(null, mcp);
+	      mcp.setConnectionListenerFactory(noTxn);
+	      Connection conn = (Connection)noTxn.allocateConnection(mcf, null);
+	      TestConnection uc = (TestConnection)((WrappedConnection)conn).getUnderlyingConnection();
+	      uc.setFail(true);
+	      SQLException stale = new StaleConnectionException("no reason", "no state", 1);
+	      uc.setUnderlyingException(stale);
+	      uc.setUseException(true);
+	      Connection conn2 = (Connection)noTxn.allocateConnection(mcf, null);
+	      conn2.close();
+	      
+	      try
+	      {
+	         conn.createStatement().execute("blah");
+	         
+	      }catch(SQLException e)
+	      {
+	         //Normal 
+	         assertTrue("Should be StaleConnectionException", e instanceof StaleConnectionException);
+	         
+	      }
+
+	      assertTrue("Purge should destroy pooled connections", mcp.getConnectionDestroyedCount() == pp.minSize - 1);      
+
+		
+	}
+	
+	public void testByConnectionPurgePolicy() throws Exception
+	{
+		
+		 LocalManagedConnectionFactory mcf = new LocalManagedConnectionFactory();
+	      
+	      mcf.setDriverClass("org.jboss.test.jca.jdbc.TestDriver");
+	      mcf.setConnectionURL("jdbc:jboss-test-adapter");
+	      mcf.setStaleConnectionCheckerClassName("org.jboss.test.jca.support.MockStaleConnectionCheckerTrue");
+	      mcf.setSupportCodeUrl("jca/support-code/support-only-stale.xml");
+	      
+	      InternalManagedConnectionPool.PoolParams pp = new InternalManagedConnectionPool.PoolParams();
+	      pp.minSize = 1;
+	      pp.maxSize = 10;
+	      pp.blockingTimeout = 10000;
+	      pp.purgePolilcy = PurgePolicy.CONNECTION;
+	      
+	      ManagedConnectionPool mcp = new JBossManagedConnectionPool.OnePool(mcf, pp, false, log);
+	      NoTxConnectionManager noTxn = new NoTxConnectionManager(null, mcp);
+	      mcp.setConnectionListenerFactory(noTxn);
+	      Connection conn = (Connection)noTxn.allocateConnection(mcf, null);
+	      TestConnection uc = (TestConnection)((WrappedConnection)conn).getUnderlyingConnection();
+	      uc.setFail(true);
+	      SQLException stale = new StaleConnectionException("no reason", "no state", 1);
+	      uc.setUnderlyingException(stale);
+	      uc.setUseException(true);
+	      try
+	      {
+	         conn.createStatement().execute("blah");
+	         
+	      }catch(SQLException e)
+	      {
+	         //Normal 
+	         assertTrue("Should be StaleConnectionException", e instanceof StaleConnectionException);
+	         
+	      }
+	      
+	      assertTrue("StaleConnectionException should not destroy connection", mcp.getConnectionDestroyedCount() == 1);      
+
+	}
+	
+}

Added: branches/JBoss_4_0_3_SP1_JBAS_3453/testsuite/src/main/org/jboss/test/jca/test/SupportCodeUnitTestCase.java
===================================================================
--- branches/JBoss_4_0_3_SP1_JBAS_3453/testsuite/src/main/org/jboss/test/jca/test/SupportCodeUnitTestCase.java	2006-08-21 15:22:44 UTC (rev 56110)
+++ branches/JBoss_4_0_3_SP1_JBAS_3453/testsuite/src/main/org/jboss/test/jca/test/SupportCodeUnitTestCase.java	2006-08-21 15:23:59 UTC (rev 56111)
@@ -0,0 +1,32 @@
+package org.jboss.test.jca.test;
+
+import java.sql.SQLException;
+
+import org.jboss.resource.adapter.jdbc.JdbcSupportCodeHandler;
+import org.jboss.test.JBossTestCase;
+
+public class SupportCodeUnitTestCase extends JBossTestCase 
+{
+	
+	public SupportCodeUnitTestCase(String name)
+	{
+		super(name);
+		
+	}
+
+	public void testInitJdbcSupportCodeHandler() throws Exception
+	{
+		String url = "jca/support-code/support-only-stale.xml";
+		JdbcSupportCodeHandler handler = JdbcSupportCodeHandler.getInstance(url, null, null, null);
+		
+		SQLException sqe = new SQLException("Dummy", "NoState", 1);
+		
+		assertTrue(handler.isStaleConnection(sqe));
+		assertFalse(handler.isExceptionFatal(sqe));
+		
+		
+		
+	}
+
+	
+}




More information about the jboss-cvs-commits mailing list