[jboss-cvs] JBossAS SVN: r60065 - trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredsession/unit.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Sat Jan 27 18:05:44 EST 2007


Author: bstansberry at jboss.com
Date: 2007-01-27 18:05:44 -0500 (Sat, 27 Jan 2007)
New Revision: 60065

Modified:
   trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredsession/unit/ExtendedPersistenceUnitTestCase.java
Log:
Ensure SFSB and SLSB are in same VM; otherwise SLSB cannot accurate read static fields in SFSB classes
Use a shared db since this is a clustered test

Modified: trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredsession/unit/ExtendedPersistenceUnitTestCase.java
===================================================================
--- trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredsession/unit/ExtendedPersistenceUnitTestCase.java	2007-01-27 23:03:13 UTC (rev 60064)
+++ trunk/ejb3/src/test/org/jboss/ejb3/test/clusteredsession/unit/ExtendedPersistenceUnitTestCase.java	2007-01-27 23:05:44 UTC (rev 60065)
@@ -21,14 +21,19 @@
   */
 package org.jboss.ejb3.test.clusteredsession.unit;
 
+import org.jboss.ejb3.test.clusteredentity.unit.DBSetup;
 import org.jboss.ejb3.test.clusteredsession.Customer;
+import org.jboss.ejb3.test.clusteredsession.NodeAnswer;
 import org.jboss.ejb3.test.clusteredsession.ShoppingCart;
 import org.jboss.ejb3.test.clusteredsession.StatelessRemote;
 import org.jboss.test.JBossClusteredTestCase;
 import junit.framework.Test;
+import junit.framework.TestSuite;
 
 import javax.naming.InitialContext;
 import javax.naming.Context;
+
+import java.rmi.dgc.VMID;
 import java.util.Properties;
 
 /**
@@ -94,10 +99,26 @@
 
    public void testPassivation() throws Exception
    {
-      ShoppingCart cart = (ShoppingCart) getInitialContext(0).lookup("ShoppingCartBean/remote");
+      // We want a colocated SLSB and SFSB to test passivation/destruction
+      // StatelessRemoteBean is not clustered, so once we have it's VMID
+      // we can keep creating SFSBs until we get one we want
       StatelessRemote stateless = (StatelessRemote) getInitialContext(0).lookup("StatelessSessionBean/remote");
+      VMID statelessVM = stateless.getVMID();
+      
+      ShoppingCart cart = null;      
+      boolean vmMatch = false;
+      for (int i = 0; i < 10 && !vmMatch; i++)
+      {
+         cart = (ShoppingCart) getInitialContext(0).lookup("ShoppingCartBean/remote");
+         vmMatch = statelessVM.equals(cart.getVMID());
+         if (!vmMatch)
+            cart.checkout();
+      }
+      
+      assertTrue("SLSB and SFSB in same VM", vmMatch);
+      
       Customer customer;
-
+      
       long id = cart.createCustomer();
       customer = stateless.find(id);
       assertEquals("William", customer.getName());
@@ -119,22 +140,31 @@
       customer = cart.find(id);
       assertEquals("Bill Jr.", customer.getName());
       cart.setContainedCustomer();
-      Thread.sleep(11000); // passivation
-      assertTrue(stateless.isPassivated());
+      
+      Thread.sleep(11000); // passivation      
+      assertTrue("Contained bean was passivated", stateless.isPassivated());
+      
       cart.checkContainedCustomer();
       cart.findAndUpdateStateless();
       cart.updateContained();
+      
       stateless.clearDestroyed();
-      assertTrue(cart.isContainedActivated());
+      assertTrue(cart.isContainedActivated());      
       cart.checkout();
-      assertTrue(stateless.isDestroyed());
+      assertTrue("Contained bean was destroyed", stateless.isDestroyed());
    }
 
    public static Test suite() throws Exception
    {
-      final String jarName = "clusteredsession-test.jar";
-      return JBossClusteredTestCase.getDeploySetup(ExtendedPersistenceUnitTestCase.class,
-              jarName);
+      TestSuite suite = new TestSuite();
+      Test t1 = getDeploySetup(ExtendedPersistenceUnitTestCase.class,
+                               "clusteredsession-test.jar");
+
+      suite.addTest(t1);
+
+      // Create an initializer for the test suite
+      DBSetup wrapper = new DBSetup(suite);
+      return wrapper;     
    }
 
 }




More information about the jboss-cvs-commits mailing list