dain        2005/02/11 17:30:22

  Modified:    modules/itests/src/itest/org/openejb/test/entity/cmp
                        CmpHandleTests.java CmpHomeHandleTests.java
  Log:

  CMP container builder now propertly maps remove methods. This eliminates the 
ArrayIndexOutOfBoundsException in TransactionPolicyManager.
  Handle and HomeHandle can not be copied with serialization on client side.
  Added Handle copy tests to itest suite
  
  Revision  Changes    Path
  1.3       +41 -3     
openejb/modules/itests/src/itest/org/openejb/test/entity/cmp/CmpHandleTests.java
  
  Index: CmpHandleTests.java
  ===================================================================
  RCS file: 
/home/projects/openejb/scm/openejb/modules/itests/src/itest/org/openejb/test/entity/cmp/CmpHandleTests.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- CmpHandleTests.java       14 Oct 2004 07:07:17 -0000      1.2
  +++ CmpHandleTests.java       11 Feb 2005 22:30:22 -0000      1.3
  @@ -44,7 +44,13 @@
    */
   package org.openejb.test.entity.cmp;
   
  +import java.rmi.MarshalledObject;
  +import java.io.ByteArrayOutputStream;
  +import java.io.ObjectOutputStream;
  +import java.io.ByteArrayInputStream;
  +import java.io.ObjectInputStream;
   import javax.ejb.EJBObject;
  +import javax.ejb.Handle;
   
   /**
    * [7] Should be run as the seventh test suite of the BasicCmpTestClients
  @@ -85,12 +91,44 @@
           }
       }
   
  +    public void test02_copyHandleByMarshalledObject() {
  +        try {
  +            MarshalledObject obj = new MarshalledObject(ejbHandle);
  +            Handle copy = (Handle) obj.get();
  +
  +            EJBObject object = copy.getEJBObject();
  +            assertNotNull("The EJBObject is null", object);
  +            assertTrue("EJBObjects are not identical", 
object.isIdentical(ejbObject));
  +        } catch (Exception e) {
  +            fail("Received Exception " + e.getClass() + " : " + 
e.getMessage());
  +        }
  +    }
  +
  +    public void test03_copyHandleBySerialize() {
  +        try {
  +            ByteArrayOutputStream baos = new ByteArrayOutputStream();
  +            ObjectOutputStream oos = new ObjectOutputStream(baos);
  +            oos.writeObject(ejbHandle);
  +            oos.flush();
  +            oos.close();
  +            ByteArrayInputStream bais = new 
ByteArrayInputStream(baos.toByteArray());
  +            ObjectInputStream ois = new ObjectInputStream(bais);
  +            Handle copy = (Handle) ois.readObject();
  +
  +            EJBObject object = copy.getEJBObject();
  +            assertNotNull("The EJBObject is null", object);
  +            assertTrue("EJBObjects are not identical", 
object.isIdentical(ejbObject));
  +        } catch (Exception e) {
  +            fail("Received Exception " + e.getClass() + " : " + 
e.getMessage());
  +        }
  +    }
  +
       /**
        * This remove method of the EJBHome is placed hear as it
        * is more a test on the handle then on the remove method
        * itself.
        */
  -    public void test02_EJBHome_remove() {
  +    public void test04_EJBHome_remove() {
           try {
               ejbHome.remove(ejbHandle);
               try {
  @@ -106,8 +144,8 @@
               ejbObject = null;
           }
       }
  +
       //
       // Test handle methods
       //=================================
  -
   }
  
  
  
  1.3       +39 -2     
openejb/modules/itests/src/itest/org/openejb/test/entity/cmp/CmpHomeHandleTests.java
  
  Index: CmpHomeHandleTests.java
  ===================================================================
  RCS file: 
/home/projects/openejb/scm/openejb/modules/itests/src/itest/org/openejb/test/entity/cmp/CmpHomeHandleTests.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- CmpHomeHandleTests.java   14 Oct 2004 07:07:17 -0000      1.2
  +++ CmpHomeHandleTests.java   11 Feb 2005 22:30:22 -0000      1.3
  @@ -44,7 +44,13 @@
    */
   package org.openejb.test.entity.cmp;
   
  +import java.rmi.MarshalledObject;
  +import java.io.ByteArrayOutputStream;
  +import java.io.ObjectOutputStream;
  +import java.io.ByteArrayInputStream;
  +import java.io.ObjectInputStream;
   import javax.ejb.EJBHome;
  +import javax.ejb.HomeHandle;
   
   /**
    * [6] Should be run as the sixth test suite of the BasicCmpTestClients
  @@ -73,8 +79,39 @@
               fail("Received Exception " + e.getClass() + " : " + 
e.getMessage());
           }
       }
  +
  +    public void test02_copyHandleByMarshalledObject() {
  +        try {
  +            MarshalledObject obj = new MarshalledObject(ejbHomeHandle);
  +            HomeHandle copy = (HomeHandle) obj.get();
  +
  +            assertNotNull("The HomeHandle copy is null", copy);
  +            EJBHome home = copy.getEJBHome();
  +            assertNotNull("The EJBHome is null", home);
  +        } catch (Exception e) {
  +            fail("Received Exception " + e.getClass() + " : " + 
e.getMessage());
  +        }
  +    }
  +
  +    public void test03_copyHandleBySerialize() {
  +        try {
  +            ByteArrayOutputStream baos = new ByteArrayOutputStream();
  +            ObjectOutputStream oos = new ObjectOutputStream(baos);
  +            oos.writeObject(ejbHomeHandle);
  +            oos.flush();
  +            oos.close();
  +            ByteArrayInputStream bais = new 
ByteArrayInputStream(baos.toByteArray());
  +            ObjectInputStream ois = new ObjectInputStream(bais);
  +            HomeHandle copy = (HomeHandle) ois.readObject();
  +
  +            assertNotNull("The HomeHandle copy is null", copy);
  +            EJBHome home = copy.getEJBHome();
  +            assertNotNull("The EJBHome is null", home);
  +        } catch (Exception e) {
  +            fail("Received Exception " + e.getClass() + " : " + 
e.getMessage());
  +        }
  +    }
       //
       // Test home handle methods
       //=================================
  -
   }
  
  
  

Reply via email to