[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openejb-cvs
Subject:    svn commit: r672566 [6/9] - in /openejb/trunk/openejb3: ./ api/
From:       dblevins () apache ! org
Date:       2008-06-28 18:48:33
Message-ID: 20080628184840.653452388AB4 () eris ! apache ! org
[Download RAW message or body]

Added: openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/singleton/BMTSingletonAllowedOperationsTests.java
                
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/itests/openejb-itests-client/ \
src/main/java/org/apache/openejb/test/singleton/BMTSingletonAllowedOperationsTests.java?rev=672566&view=auto
 ==============================================================================
--- openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/singleton/BMTSingletonAllowedOperationsTests.java \
                (added)
+++ openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/singleton/BMTSingletonAllowedOperationsTests.java \
Sat Jun 28 11:48:28 2008 @@ -0,0 +1,272 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.openejb.test.singleton;
+
+import org.apache.openejb.test.object.OperationsPolicy;
+import org.apache.openejb.test.beans.TimerSync;
+
+/**
+ * 
+ * [10] Should be run as the nineth test suite of the BasicSingletonTestClients
+ * 
+ * <PRE>
+ * =========================================================================
+ * Operations allowed in the methods of a singleton SessionBean with 
+ * bean-managed transaction demarcation
+ * =========================================================================
+ * 
+ * Bean method           | Bean method can perform the following operations
+ * ______________________|__________________________________________________
+ *                       |
+ * constructor           | -
+ * ______________________|__________________________________________________
+ *                       |
+ * setSessionContext     |  SessionContext methods:
+ *                       |     - getEJBHome
+ *                       |  JNDI access to java:comp/env
+ * ______________________|__________________________________________________
+ *                       |
+ * ejbCreate             |  SessionContext methods:
+ * ejbRemove             |     - getEJBHome
+ *                       |     - getEJBObject
+ *                       |     - getUserTransaction
+ *                       |  JNDI access to java:comp/env
+ * ______________________|__________________________________________________
+ *                       |
+ * business method       |  SessionContext methods:
+ * from remote interface |     - getEJBHome        
+ *                       |     - getCallerPrincipal
+ *                       |     - isCallerInRole    
+ *                       |     - getEJBObject      
+ *                       |     - getUserTransaction
+ *                       |  JNDI access to java:comp/env
+ *                       |  Resource manager access
+ *                       |  Enterprise bean access
+ * ______________________|__________________________________________________
+ * </PRE>
+ * 
+ * @author <a href="mailto:david.blevins@visi.com">David Blevins</a>
+ * @author <a href="mailto:Richard@Monson-Haefel.com">Richard Monson-Haefel</a>
+ */
+public class BMTSingletonAllowedOperationsTests extends BasicSingletonTestClient{
+    protected TimerSync timerSync;
+
+    public BMTSingletonAllowedOperationsTests(){
+        super("BMTAllowedOperations.");
+    }
+
+    protected void setUp() throws Exception{
+        super.setUp();
+        Object obj = \
initialContext.lookup("client/tests/singleton/BeanManagedBasicSingletonHome"); +      \
ejbHome = (BasicSingletonHome)javax.rmi.PortableRemoteObject.narrow( obj, \
BasicSingletonHome.class); +        ejbObject = ejbHome.createObject();
+        ejbHandle = ejbObject.getHandle();
+        timerSync = (TimerSync) \
initialContext.lookup("TimerSyncBeanBusinessRemote"); +
+        /* These tests will only work if the specified
+        * method has already been called by the container.
+        *
+        * TO DO:
+        * Implement a little application senario to ensure
+        * that all methods tested for below have been called
+        * by the container.
+        */
+        ejbObject.businessMethod("let's go!");
+    }
+    
+    protected void tearDown() throws Exception{
+        try {
+            ejbObject.remove();
+        } catch (Exception e){
+            throw e;
+        } finally {
+            super.tearDown();
+        }
+    }
+
+    //=====================================
+    // Test EJBContext allowed operations       
+    //
+    /**
+     * <PRE>
+     * Bean method           | Bean method can perform the following operations
+     * ______________________|__________________________________________________
+     *                       |
+     * setSessionContext     |  SessionContext methods:
+     *                       |     - getEJBHome
+     *                       |     - lookup
+     *                       |  JNDI access to java:comp/env
+     * ______________________|__________________________________________________
+     * </PRE>
+     */
+    public void test01_setSessionContext(){         
+        try{
+            OperationsPolicy policy = new OperationsPolicy();
+            policy.allow( policy.Context_getEJBHome );
+            policy.allow( policy.Context_lookup );
+            policy.allow( policy.JNDI_access_to_java_comp_env );
+            
+            Object expected = policy;
+            Object actual = \
ejbObject.getAllowedOperationsReport("setSessionContext"); +            
+            assertNotNull("The OperationsPolicy is null", actual );
+            assertEquals( expected, actual );
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+    /**
+     * <PRE>
+     * Bean method           | Bean method can perform the following operations
+     * ______________________|__________________________________________________
+     *                       |
+     * ejbCreate             |  SessionContext methods:
+     * ejbRemove             |     - getEJBHome
+     *                       |     - getEJBObject
+     *                       |     - getUserTransaction
+     *                       |     - getTimerService
+     *                       |     - lookup
+     *                       |  JNDI access to java:comp/env
+     * ______________________|__________________________________________________
+     * </PRE>
+     */
+    public void test02_ejbCreate(){             
+        try{
+            OperationsPolicy policy = new OperationsPolicy();
+            policy.allow( policy.Context_getEJBHome );
+            policy.allow( policy.Context_getEJBObject );
+            policy.allow( policy.Context_getUserTransaction );
+            policy.allow( policy.Context_getTimerService );
+            policy.allow( policy.Context_lookup );
+            policy.allow( policy.JNDI_access_to_java_comp_env );
+            
+            Object expected = policy;
+            Object actual = ejbObject.getAllowedOperationsReport("ejbCreate");
+            
+            assertNotNull("The OperationsPolicy is null", actual );
+            assertEquals( expected, actual );
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+    /**
+     * <PRE>
+     * Bean method           | Bean method can perform the following operations
+     * ______________________|__________________________________________________
+     *                       |
+     * ejbCreate             |  SessionContext methods:
+     * ejbRemove             |     - getEJBHome
+     *                       |     - getEJBObject
+     *                       |     - getUserTransaction
+     *                       |     - getTimerService
+     *                       |     - lookup
+     *                       |  JNDI access to java:comp/env
+     * ______________________|__________________________________________________
+     * </PRE>
+     */
+    public void TODO_test03_ejbRemove(){             
+        try{
+            /* TO DO:  This test needs unique functionality to work */
+            OperationsPolicy policy = new OperationsPolicy();
+            policy.allow( policy.Context_getEJBHome );
+            policy.allow( policy.Context_getEJBObject );
+            policy.allow( policy.Context_getUserTransaction );
+            policy.allow( policy.Context_getTimerService );
+            policy.allow( policy.Context_lookup );
+            policy.allow( policy.JNDI_access_to_java_comp_env );
+        
+            Object expected = policy;
+            Object actual = ejbObject.getAllowedOperationsReport("ejbRemove");
+        
+            assertNotNull("The OperationsPolicy is null", actual );
+            assertEquals( expected, actual );
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+    
+    /**
+     * <PRE>
+     * Bean method           | Bean method can perform the following operations
+     * ______________________|__________________________________________________
+     *                       |
+     * business method       |  SessionContext methods:
+     * from remote interface |     - getEJBHome
+     *                       |     - getCallerPrincipal
+     *                       |     - isCallerInRole
+     *                       |     - getEJBObject
+     *                       |     - getUserTransaction
+     *                       |     - getTimerService
+     *                       |     - lookup
+     *                       |  JNDI access to java:comp/env
+     *                       |  Resource manager access
+     *                       |  Enterprise bean access
+     * ______________________|__________________________________________________
+     * </PRE>
+     */
+    public void test04_businessMethod(){
+        try{
+            OperationsPolicy policy = new OperationsPolicy();
+            policy.allow( policy.Context_getEJBHome );
+            policy.allow( policy.Context_getCallerPrincipal );
+            policy.allow( policy.Context_isCallerInRole );
+            policy.allow( policy.Context_getEJBObject );
+            policy.allow( policy.Context_getUserTransaction );
+            policy.allow( policy.Context_getTimerService );
+            policy.allow( policy.Context_lookup );
+            policy.allow( policy.JNDI_access_to_java_comp_env );
+        
+            Object expected = policy;
+            Object actual = ejbObject.getAllowedOperationsReport("businessMethod");
+        
+            assertNotNull("The OperationsPolicy is null", actual );
+            assertEquals( expected, actual );
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void _test05_ejbTimeout(){
+        try {
+            ejbObject.scheduleTimer("BmtSingletonAllowedOperationsTests");
+            timerSync.waitFor("BmtSingletonAllowedOperationsTests");
+
+            OperationsPolicy policy = new OperationsPolicy();
+            policy.allow( policy.Context_getEJBHome );
+            policy.allow( policy.Context_getCallerPrincipal );
+            policy.allow( policy.Context_isCallerInRole );
+            policy.allow( policy.Context_getEJBObject );
+            policy.allow( policy.Context_getUserTransaction );
+            policy.allow( policy.Context_getTimerService );
+            policy.allow( policy.Context_lookup );
+            policy.allow( policy.JNDI_access_to_java_comp_env );
+
+            Object expected = policy;
+            Object actual = ejbObject.getAllowedOperationsReport("ejbTimeout");
+
+            assertNotNull("The OperationsPolicy is null", actual );
+            assertEquals( expected, actual );
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+    //
+    // Test EJBContext allowed operations       
+    //=====================================
+}
+
+

Added: openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/singleton/BasicSingletonLocalTestClient.java
                
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/itests/openejb-itests-client/ \
src/main/java/org/apache/openejb/test/singleton/BasicSingletonLocalTestClient.java?rev=672566&view=auto
 ==============================================================================
--- openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/singleton/BasicSingletonLocalTestClient.java \
                (added)
+++ openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/singleton/BasicSingletonLocalTestClient.java \
Sat Jun 28 11:48:28 2008 @@ -0,0 +1,45 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.openejb.test.singleton;
+
+import javax.ejb.EJB;
+
+/**
+ * @author <a href="mailto:david.blevins@visi.com">David Blevins</a>
+ * @author <a href="mailto:Richard@Monson-Haefel.com">Richard Monson-Haefel</a>
+ * @author <a href="mailto:nour.mohammad@gmail.com">Mohammad Nour El-Din</a>
+ * 
+ * @version $Rev: 525022 $ $Date: 2007-04-02 21:19:21 -0700 (Mon, 02 Apr 2007) $
+ */
+public abstract class BasicSingletonLocalTestClient extends SingletonTestClient {
+
+	@EJB(name="client/tests/singleton/BasicSingletonPojoHomeLocal",
+		 beanInterface = BasicSingletonLocalHome.class)
+	protected BasicSingletonLocalHome ejbLocalHome = null;
+    protected BasicSingletonLocalObject ejbLocalObject = null;
+
+    public BasicSingletonLocalTestClient(String name){
+        super(name);
+    }
+    
+    protected Object cast(Object object, Class type) {
+    	return type.cast(object);
+    }
+    
+}
+
+

Added: openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/singleton/BasicSingletonTestClient.java
                
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/itests/openejb-itests-client/ \
src/main/java/org/apache/openejb/test/singleton/BasicSingletonTestClient.java?rev=672566&view=auto
 ==============================================================================
--- openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/singleton/BasicSingletonTestClient.java \
                (added)
+++ openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/singleton/BasicSingletonTestClient.java \
Sat Jun 28 11:48:28 2008 @@ -0,0 +1,38 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.openejb.test.singleton;
+
+import javax.ejb.EJB;
+
+/**
+ * 
+ * @author <a href="mailto:david.blevins@visi.com">David Blevins</a>
+ * @author <a href="mailto:Richard@Monson-Haefel.com">Richard Monson-Haefel</a>
+ */
+public abstract class BasicSingletonTestClient extends SingletonTestClient{
+    
+	@EJB(name="client/tests/singleton/BasicSingletonPojoHome",
+	     beanInterface=BasicSingletonHome.class)
+    protected BasicSingletonHome ejbHome = null;
+    protected BasicSingletonObject ejbObject = null;
+
+    public BasicSingletonTestClient(String name){
+        super(name);
+    }
+}
+
+

Modified: openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/singleton/MiscEjbTests.java
                
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/itests/openejb-itests-client/ \
src/main/java/org/apache/openejb/test/singleton/MiscEjbTests.java?rev=672566&r1=672456&r2=672566&view=diff
 ==============================================================================
--- openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/singleton/MiscEjbTests.java \
                (original)
+++ openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/singleton/MiscEjbTests.java \
Sat Jun 28 11:48:28 2008 @@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.openejb.test.stateless;
+package org.apache.openejb.test.singleton;
 
 import org.apache.openejb.test.entity.bmp.EncBmpHome;
 import org.apache.openejb.test.entity.bmp.EncBmpObject;
@@ -27,7 +27,7 @@
  *
  * @author <a href="mailto:david.blevins@visi.com">David Blevins</a>
  */
-public class MiscEjbTests extends BasicStatelessTestClient{
+public class MiscEjbTests extends BasicSingletonTestClient{
 
     public MiscEjbTests(){
         super("EJBObject.");
@@ -35,8 +35,8 @@
 
     protected void setUp() throws Exception{
         super.setUp();
-        Object obj = \
                initialContext.lookup("client/tests/stateless/BasicStatelessHome");
-        ejbHome = (BasicStatelessHome)javax.rmi.PortableRemoteObject.narrow( obj, \
BasicStatelessHome.class); +        Object obj = \
initialContext.lookup("client/tests/singleton/BasicSingletonHome"); +        ejbHome \
= (BasicSingletonHome)javax.rmi.PortableRemoteObject.narrow( obj, \
BasicSingletonHome.class);  ejbObject = ejbHome.createObject();
     }
 
@@ -53,14 +53,14 @@
     //===============================
     // Test ejb object methods
     //
-    public void test01_isIdentical_stateless(){
+    public void test01_isIdentical_singleton(){
         try{
-            String jndiName = "client/tests/stateless/EncBean";
-            EncStatelessHome ejbHome2 = null;
-            EncStatelessObject ejbObject2 = null;
+            String jndiName = "client/tests/singleton/EncBean";
+            EncSingletonHome ejbHome2 = null;
+            EncSingletonObject ejbObject2 = null;
 
             Object obj = initialContext.lookup(jndiName);
-            ejbHome2 = (EncStatelessHome)javax.rmi.PortableRemoteObject.narrow( obj, \
EncStatelessHome.class); +            ejbHome2 = \
(EncSingletonHome)javax.rmi.PortableRemoteObject.narrow( obj, \
EncSingletonHome.class);  ejbObject2 = ejbHome2.create();
 
             //System.out.println("_______________________________________________________");


Added: openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/singleton/SingletonAllowedOperationsTests.java
                
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/itests/openejb-itests-client/ \
src/main/java/org/apache/openejb/test/singleton/SingletonAllowedOperationsTests.java?rev=672566&view=auto
 ==============================================================================
--- openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/singleton/SingletonAllowedOperationsTests.java \
                (added)
+++ openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/singleton/SingletonAllowedOperationsTests.java \
Sat Jun 28 11:48:28 2008 @@ -0,0 +1,290 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.openejb.test.singleton;
+
+import javax.ejb.EJBObject;
+
+import org.apache.openejb.test.object.OperationsPolicy;
+import org.apache.openejb.test.beans.TimerSync;
+
+/**
+ * 
+ * [9] Should be run as the nineth test suite of the BasicSingletonTestClients
+ * 
+ * <PRE>
+ * =========================================================================
+ * Operations allowed in the methods of a singleton SessionBean with 
+ * container-managed transaction demarcation
+ * =========================================================================
+ * 
+ * Bean method           | Bean method can perform the following operations
+ * ______________________|__________________________________________________
+ *                       |
+ * constructor           | -
+ * ______________________|__________________________________________________
+ *                       |
+ * setSessionContext     |  SessionContext methods:
+ *                       |     - getEJBHome
+ *                       |  JNDI access to java:comp/env
+ * ______________________|__________________________________________________
+ *                       |
+ * ejbCreate             |  SessionContext methods:
+ * ejbRemove             |     - getEJBHome
+ *                       |     - getEJBObject
+ *                       |  JNDI access to java:comp/env
+ * ______________________|__________________________________________________
+ *                       |
+ * business method       |  SessionContext methods:
+ * from remote interface |     - getEJBHome        
+ *                       |     - getCallerPrincipal
+ *                       |     - getRollbackOnly   
+ *                       |     - isCallerInRole    
+ *                       |     - setRollbackOnly   
+ *                       |     - getEJBObject      
+ *                       |  JNDI access to java:comp/env
+ *                       |  Resource manager access
+ *                       |  Enterprise bean access
+ * ______________________|__________________________________________________
+ * </PRE>
+ * 
+ * @author <a href="mailto:david.blevins@visi.com">David Blevins</a>
+ * @author <a href="mailto:Richard@Monson-Haefel.com">Richard Monson-Haefel</a>
+ */
+public class SingletonAllowedOperationsTests extends BasicSingletonTestClient{
+    protected TimerSync timerSync;
+
+    public SingletonAllowedOperationsTests(){
+        super("AllowedOperations.");
+    }
+
+    protected void setUp() throws Exception{
+        super.setUp();
+        Object obj = \
initialContext.lookup("client/tests/singleton/BasicSingletonHome"); +        ejbHome \
= (BasicSingletonHome)javax.rmi.PortableRemoteObject.narrow( obj, \
BasicSingletonHome.class); +        ejbObject = ejbHome.createObject();
+        ejbHandle = ejbObject.getHandle();
+        timerSync = (TimerSync) \
initialContext.lookup("TimerSyncBeanBusinessRemote"); +
+        //setUp_ejbActivate_Passivate();
+        
+        /* These tests will only work if the specified
+         * method has already been called by the container.
+         *
+         * TO DO:
+         * Implement a little application senario to ensure
+         * that all methods tested for below have been called
+         * by the container.
+         */         
+        ejbObject.businessMethod("activate me please");
+    }
+    
+    private void setUp_ejbActivate_Passivate() throws Exception{
+
+        /* Create more instances to fill the pool size 
+         * causing instances to be passivated
+         */
+        EJBObject[] ejbObjects = new EJBObject[10];
+        for (int i=0; i < ejbObjects.length; i++){
+            ejbObjects[i] = ejbHome.createObject();
+        }
+        ejbObject.businessMethod("activate me please");
+    }
+    
+    protected void tearDown() throws Exception{
+        try {
+            ejbObject.remove();
+        } catch (Exception e){
+            throw e;
+        } finally {
+            super.tearDown();
+        }
+    }
+
+    //=====================================
+    // Test EJBContext allowed operations       
+    //
+    /**
+     * <PRE>
+     * Bean method           | Bean method can perform the following operations
+     * ______________________|__________________________________________________
+     *                       |
+     * setSessionContext     |  SessionContext methods:
+     *                       |     - getEJBHome
+     *                       |     - lookup
+     *                       |  JNDI access to java:comp/env
+     * ______________________|__________________________________________________
+     * </PRE>
+     */
+    public void test01_setSessionContext(){
+        try {
+            OperationsPolicy policy = new OperationsPolicy();
+            policy.allow( OperationsPolicy.Context_getEJBHome );
+            policy.allow( OperationsPolicy.Context_lookup );
+            policy.allow( OperationsPolicy.JNDI_access_to_java_comp_env );
+            
+            Object expected = policy;
+            Object actual = \
ejbObject.getAllowedOperationsReport("setSessionContext"); +            
+            assertNotNull("The OperationsPolicy is null", actual );
+            assertEquals( expected, actual );
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+    /**
+     * <PRE>
+     * Bean method           | Bean method can perform the following operations
+     * ______________________|__________________________________________________
+     *                       |
+     * ejbCreate             |  SessionContext methods:
+     * ejbRemove             |     - getEJBHome
+     *                       |     - getEJBObject
+     *                       |     - getTimerService
+     *                       |     - lookup
+     *                       |  JNDI access to java:comp/env
+     * ______________________|__________________________________________________
+     * </PRE>
+     */
+    public void test02_ejbCreate() {
+	// The singleton session bean has container managed transactions
+	// so, the test Context_getUserTransaction should fail, but,
+	// it does not.  Someone should see why it does not fail.
+        try {
+            OperationsPolicy policy = new OperationsPolicy();
+            policy.allow( OperationsPolicy.Context_getEJBHome );
+            policy.allow( OperationsPolicy.Context_getEJBObject );
+            policy.allow( OperationsPolicy.Context_getTimerService );
+            policy.allow( OperationsPolicy.Context_lookup );
+            policy.allow( OperationsPolicy.JNDI_access_to_java_comp_env );
+            
+            Object expected = policy;
+            Object actual = ejbObject.getAllowedOperationsReport("ejbCreate");
+            
+            assertNotNull("The OperationsPolicy is null", actual );
+            assertEquals( expected, actual );
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+    /**
+     * <PRE>
+     * Bean method           | Bean method can perform the following operations
+     * ______________________|__________________________________________________
+     *                       |
+     * ejbCreate             |  SessionContext methods:
+     * ejbRemove             |     - getEJBHome
+     *                       |     - getEJBObject
+     *                       |     - getTimerService
+     *                       |     - lookup
+     *                       |  JNDI access to java:comp/env
+     * ______________________|__________________________________________________
+     * </PRE>
+     */
+    public void TODO_test03_ejbRemove(){
+        try {
+            /* TO DO:  This test needs unique functionality to work */
+            OperationsPolicy policy = new OperationsPolicy();
+            policy.allow( OperationsPolicy.Context_getEJBHome );
+            policy.allow( OperationsPolicy.Context_getEJBObject );
+            policy.allow( OperationsPolicy.Context_getTimerService );
+            policy.allow( OperationsPolicy.Context_lookup );
+            policy.allow( OperationsPolicy.JNDI_access_to_java_comp_env );
+        
+            Object expected = policy;
+            Object actual = ejbObject.getAllowedOperationsReport("ejbRemove");
+        
+            assertNotNull("The OperationsPolicy is null", actual );
+            assertEquals( expected, actual );
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+    
+    /**
+     * <PRE>
+     * Bean method           | Bean method can perform the following operations
+     * ______________________|__________________________________________________
+     *                       |
+     * business method       |  SessionContext methods:
+     * from remote interface |     - getEJBHome
+     *                       |     - getCallerPrincipal
+     *                       |     - getRollbackOnly
+     *                       |     - isCallerInRole
+     *                       |     - setRollbackOnly
+     *                       |     - getEJBObject
+     *                       |     - getTimerService
+     *                       |     - lookup
+     *                       |  JNDI access to java:comp/env
+     *                       |  Resource manager access
+     *                       |  Enterprise bean access
+     * ______________________|__________________________________________________
+     * </PRE>
+     */
+    public void test04_businessMethod(){
+        try {
+            OperationsPolicy policy = new OperationsPolicy();
+            policy.allow( OperationsPolicy.Context_getEJBHome );
+            policy.allow( OperationsPolicy.Context_getCallerPrincipal );
+            policy.allow( OperationsPolicy.Context_getRollbackOnly );
+            policy.allow( OperationsPolicy.Context_setRollbackOnly );
+            policy.allow( OperationsPolicy.Context_isCallerInRole );
+            policy.allow( OperationsPolicy.Context_getEJBObject );
+            policy.allow( OperationsPolicy.Context_getTimerService );
+            policy.allow( OperationsPolicy.Context_lookup );
+            policy.allow( OperationsPolicy.JNDI_access_to_java_comp_env );
+
+            Object expected = policy;
+            Object actual = ejbObject.getAllowedOperationsReport("businessMethod");
+        
+            assertNotNull("The OperationsPolicy is null", actual );
+            assertEquals( expected, actual );
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void _test05_ejbTimeout(){
+        try {
+            ejbObject.scheduleTimer("SingletonAllowedOperationsTests");
+            timerSync.waitFor("SingletonAllowedOperationsTests");
+
+            OperationsPolicy policy = new OperationsPolicy();
+            policy.allow( OperationsPolicy.Context_getEJBHome );
+            policy.allow( OperationsPolicy.Context_getCallerPrincipal );
+            policy.allow( OperationsPolicy.Context_getRollbackOnly );
+            policy.allow( OperationsPolicy.Context_setRollbackOnly );
+            policy.allow( OperationsPolicy.Context_isCallerInRole );
+            policy.allow( OperationsPolicy.Context_getEJBObject );
+            policy.allow( OperationsPolicy.Context_getTimerService );
+            policy.allow( OperationsPolicy.Context_lookup );
+            policy.allow( OperationsPolicy.JNDI_access_to_java_comp_env );
+
+            Object expected = policy;
+            Object actual = ejbObject.getAllowedOperationsReport("ejbTimeout");
+
+            assertNotNull("The OperationsPolicy is null", actual );
+            assertEquals( expected, actual );
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+    //
+    // Test EJBContext allowed operations       
+    //=====================================
+}
+
+

Added: openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/singleton/SingletonAnnotatedFieldInjectionTests.java
                
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/itests/openejb-itests-client/ \
src/main/java/org/apache/openejb/test/singleton/SingletonAnnotatedFieldInjectionTests.java?rev=672566&view=auto
 ==============================================================================
--- openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/singleton/SingletonAnnotatedFieldInjectionTests.java \
                (added)
+++ openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/singleton/SingletonAnnotatedFieldInjectionTests.java \
Sat Jun 28 11:48:28 2008 @@ -0,0 +1,272 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.openejb.test.singleton;
+
+import org.apache.openejb.test.stateful.StatefulTestClient;
+import org.apache.openejb.test.TestManager;
+import org.apache.openejb.test.TestFailureException;
+
+/**
+ * [4] Should be run as the fourth test suite of the StatefulTestClients
+ *
+ * @author <a href="mailto:david.blevins@visi.com">David Blevins</a>
+ * @author <a href="mailto:Richard@Monson-Haefel.com">Richard Monson-Haefel</a>
+ */
+public class SingletonAnnotatedFieldInjectionTests extends StatefulTestClient {
+
+    protected EncSingletonHome   ejbHome;
+    protected EncSingletonObject ejbObject;
+
+    public SingletonAnnotatedFieldInjectionTests(){
+        super("FieldInjection.");
+    }
+
+    protected void setUp() throws Exception{
+        super.setUp();
+        Object obj = initialContext.lookup("AnnotatedFieldInjectionSingletonBean");
+        ejbHome = (EncSingletonHome)javax.rmi.PortableRemoteObject.narrow( obj, \
EncSingletonHome.class); +        ejbObject = ejbHome.create();
+
+        /*[2] Create database table */
+        TestManager.getDatabase().createEntityTable();
+    }
+
+    /**
+     * Tears down the fixture, for example, close a network connection.
+     * This method is called after a test is executed.
+     */
+    protected void tearDown() throws Exception {
+        try {
+            /*[1] Drop database table */
+            TestManager.getDatabase().dropEntityTable();
+        } catch (Exception e){
+            throw e;
+        } finally {
+            super.tearDown();
+        }
+    }
+
+    public void test01_lookupStringEntry() {
+        try{
+            ejbObject.lookupStringEntry();
+        } catch (TestFailureException e){
+            throw e.error;
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test02_lookupDoubleEntry() {
+        try{
+            ejbObject.lookupDoubleEntry();
+        } catch (TestFailureException e){
+            throw e.error;
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test03_lookupLongEntry() {
+        try{
+            ejbObject.lookupLongEntry();
+        } catch (TestFailureException e){
+            throw e.error;
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test04_lookupFloatEntry() {
+        try{
+            ejbObject.lookupFloatEntry();
+        } catch (TestFailureException e){
+            throw e.error;
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test05_lookupIntegerEntry() {
+        try{
+            ejbObject.lookupIntegerEntry();
+        } catch (TestFailureException e){
+            throw e.error;
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test06_lookupShortEntry() {
+        try{
+            ejbObject.lookupShortEntry();
+        } catch (TestFailureException e){
+            throw e.error;
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test07_lookupBooleanEntry() {
+        try{
+            ejbObject.lookupBooleanEntry();
+        } catch (TestFailureException e){
+            throw e.error;
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test08_lookupByteEntry() {
+        try{
+            ejbObject.lookupByteEntry();
+        } catch (TestFailureException e){
+            throw e.error;
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test09_lookupCharacterEntry() {
+        try{
+            ejbObject.lookupCharacterEntry();
+        } catch (TestFailureException e){
+            throw e.error;
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test10_lookupEntityBean() {
+        try{
+            ejbObject.lookupEntityBean();
+        } catch (TestFailureException e){
+            throw e.error;
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test11_lookupStatefulBean() {
+        try{
+            ejbObject.lookupStatefulBean();
+        } catch (TestFailureException e){
+            throw e.error;
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test12_lookupSingletonBean() {
+        try{
+            ejbObject.lookupSingletonBean();
+        } catch (TestFailureException e){
+            throw e.error;
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test13_lookupResource() {
+        try{
+            ejbObject.lookupResource();
+        } catch (TestFailureException e){
+            throw e.error;
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test14_lookupPersistenceUnit() {
+        try{
+            ejbObject.lookupPersistenceUnit();
+        } catch (TestFailureException e){
+            throw e.error;
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test15_lookupPersistenceContext() {
+        try{
+            ejbObject.lookupPersistenceContext();
+        } catch (TestFailureException e){
+            throw e.error;
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test18_lookupSessionContext() {
+        try{
+            ejbObject.lookupSessionContext();
+        } catch (TestFailureException e){
+            throw e.error;
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test19_lookupSingletonBusinessLocal() {
+        try{
+            ejbObject.lookupSingletonBusinessLocal();
+        } catch (TestFailureException e){
+            throw e.error;
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test20_lookupSingletonBusinessRemote() {
+        try{
+            ejbObject.lookupSingletonBusinessRemote();
+        } catch (TestFailureException e){
+            throw e.error;
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test21_lookupStatefulBusinessLocal() {
+        try{
+            ejbObject.lookupStatefulBusinessLocal();
+        } catch (TestFailureException e){
+            throw e.error;
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test22_lookupStatefulBusinessRemote() {
+        try{
+            ejbObject.lookupStatefulBusinessRemote();
+        } catch (TestFailureException e){
+            throw e.error;
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test23_lookupJMSConnectionFactory() {
+        try{
+            ejbObject.lookupJMSConnectionFactory();
+        } catch (TestFailureException e){
+            throw e.error;
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+}

Added: openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/singleton/SingletonBeanTxTests.java
                
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/itests/openejb-itests-client/ \
src/main/java/org/apache/openejb/test/singleton/SingletonBeanTxTests.java?rev=672566&view=auto
 ==============================================================================
--- openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/singleton/SingletonBeanTxTests.java \
                (added)
+++ openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/singleton/SingletonBeanTxTests.java \
Sat Jun 28 11:48:28 2008 @@ -0,0 +1,387 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.openejb.test.singleton;
+
+import java.util.Properties;
+
+import javax.ejb.EJBMetaData;
+import javax.ejb.Handle;
+import javax.ejb.HomeHandle;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.transaction.RollbackException;
+
+import org.apache.openejb.test.TestManager;
+import org.apache.openejb.test.object.Account;
+import org.apache.openejb.test.object.Transaction;
+
+/**
+ * [1] Should be run as the first test suite of the SingletonTestClients
+ *
+ * @author <a href="mailto:david.blevins@visi.com">David Blevins</a>
+ * @author <a href="mailto:Richard@Monson-Haefel.com">Richard Monson-Haefel</a>
+ */
+public class SingletonBeanTxTests extends org.apache.openejb.test.NamedTestCase{
+
+    public final static String jndiEJBHomeEntry = \
"client/tests/singleton/BeanManagedTransactionTests/EJBHome"; +
+    protected BeanTxSingletonHome   ejbHome;
+    protected BeanTxSingletonObject ejbObject;
+
+    protected EJBMetaData       ejbMetaData;
+    protected HomeHandle        ejbHomeHandle;
+    protected Handle            ejbHandle;
+    protected Integer           ejbPrimaryKey;
+
+    protected InitialContext initialContext;
+
+    public SingletonBeanTxTests(){
+        super("Singleton.BeanManagedTransaction.");
+    }
+
+    /**
+     * Sets up the fixture, for example, open a network connection.
+     * This method is called before a test is executed.
+     */
+    protected void setUp() throws Exception {
+
+        Properties properties = TestManager.getServer().getContextEnvironment();
+        //properties.put(Context.SECURITY_PRINCIPAL, "SINGLETON_test00_CLIENT");
+        //properties.put(Context.SECURITY_CREDENTIALS, "SINGLETON_test00_CLIENT");
+
+        initialContext = new InitialContext(properties);
+
+        /*[1] Get bean */
+        Object obj = initialContext.lookup(jndiEJBHomeEntry);
+        ejbHome = (BeanTxSingletonHome)javax.rmi.PortableRemoteObject.narrow( obj, \
BeanTxSingletonHome.class); +        ejbObject = ejbHome.create();
+
+        /*[2] Create database table */
+        TestManager.getDatabase().createAccountTable();
+    }
+
+    /**
+     * Tears down the fixture, for example, close a network connection.
+     * This method is called after a test is executed.
+     */
+    protected void tearDown() throws Exception {
+        /*[1] Drop database table */
+        TestManager.getDatabase().dropAccountTable();
+    }
+
+
+    /**
+     * <B>11.6.1 Bean-managed transaction demarcation</B>
+     * <P>
+     * The Container must make the javax.transaction.UserTransaction interface \
available to +     * the enterprise bean's business method via the \
javax.ejb.EJBContext interface and under the +     * environment entry \
java:comp/UserTransaction. When an instance uses the javax.trans-action. +     * \
UserTransaction interface to demarcate a transaction, the Container must enlist all \
the +     * resource managers used by the instance between the begin() and \
commit(),or rollback(), +     * methods with the transaction. When the instance \
attempts to commit the transaction, the Container is +     * responsible for the \
global coordination of the transaction commit. +     * </P>
+     * <P>--------------------------------------------------------</P>
+     * <P>
+     * Check that a javax.transaction.UserTransaction can be obtained from
+     * the javax.ejb.EJBContext
+     * </P>
+     */
+    public void test01_EJBContext_getUserTransaction(){
+        try{
+           Transaction t = ejbObject.getUserTransaction();
+           assertNotNull("UserTransaction is null.", t);
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    /**
+     *
+     * <B>11.6.1 Bean-managed transaction demarcation</B>
+     * <P>
+     * The Container must make the javax.transaction.UserTransaction interface \
available to +     * the enterprise bean's business method via the \
javax.ejb.EJBContext interface and under the +     * environment entry \
java:comp/UserTransaction. When an instance uses the javax.trans-action. +     * \
UserTransaction interface to demarcate a transaction, the Container must enlist all \
the +     * resource managers used by the instance between the begin() and \
commit(),or rollback(), +     * methods with the transaction. When the instance \
attempts to commit the transaction, the Container is +     * responsible for the \
global coordination of the transaction commit. +     * </P>
+     * <P>--------------------------------------------------------</P>
+     * <P>
+     * Check that a javax.transaction.UserTransaction can be obtained from
+     * the environment entry java:comp/UserTransaction
+     * </P>
+     */
+    public void test02_java_comp_UserTransaction(){
+        try{
+            Transaction t = ejbObject.jndiUserTransaction();
+            assertNotNull("UserTransaction is null. Could not retreive a \
UserTransaction from the bean's JNDI namespace.", t); +        } catch (Exception e){
+            fail("Could not retreive a UserTransaction from the bean's JNDI \
namespace. Received Exception "+e.getClass()+ " : "+e.getMessage()); +        }
+    }
+
+    /**
+     * <B>11.6.1 Bean-managed transaction demarcation</B>
+     * <P>
+     * The Container must throw the java.lang.IllegalStateException if an instance \
of a bean +     * with bean-managed transaction demarcation attempts to invoke the \
setRollbackOnly() or +     * getRollbackOnly() method of the javax.ejb.EJBContext \
interface. +     * </P>
+     * <P>--------------------------------------------------------</P>
+     * <P>
+     * Test that setRollbackOnly() throws a java.lang.IllegalStateException
+     * </P>
+     */
+    public void TODO_test03_EJBContext_setRollbackOnly(){
+        try{
+
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    /**
+     * <B>11.6.1 Bean-managed transaction demarcation</B>
+     * <P>
+     * The Container must throw the java.lang.IllegalStateException if an instance \
of a bean +     * with bean-managed transaction demarcation attempts to invoke the \
setRollbackOnly() or +     * getRollbackOnly() method of the javax.ejb.EJBContext \
interface. +     * </P>
+     * <P>--------------------------------------------------------</P>
+     * <P>
+     * Test that getRollbackOnly() throws a java.lang.IllegalStateException
+     * </P>
+     */
+    public void TODO_test04_EJBContext_getRollbackOnly(){
+        try{
+
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    /**
+     *
+     */
+    public void test05_singleTransactionCommit(){
+        try{
+            Account expected = new Account("123-45-6789","Joe","Cool",40000);
+            Account actual = new Account();
+
+            ejbObject.openAccount(expected, new Boolean(false));
+            actual = ejbObject.retreiveAccount( expected.getSsn() );
+
+            assertNotNull( "The transaction was not commited.  The record is null", \
actual ); +            assertEquals( "The transaction was not commited cleanly.", \
expected, actual ); +        } catch (RollbackException re){
+            fail("Transaction was rolledback.  Received Exception "+re.getClass()+ " \
: "+re.getMessage()); +        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    /**
+     * This test does work for the IntraVM Server, but it fails on 
+     * the Remote Server.  For some reason, when the RollbackException is
+     * sent to the client, the server blocks.
+     */
+    public void BUG_test06_singleTransactionRollback(){
+        Account expected = new Account("234-56-7890","Charlie","Brown", 20000);
+        Account actual   = new Account();
+
+        // Try and add the account in a transaction.  This should fail and 
+        // throw a RollbackException
+        try{
+            ejbObject.openAccount(expected, new Boolean(true));
+            fail( "A javax.transaction.RollbackException should have been thrown." \
); +        } catch (RollbackException re){
+            // Good.
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+        
+      //// Now check that the account really wasn't added.
+      //try{
+      //    actual = ejbObject.retreiveAccount( expected.getSsn() );
+      //    //assertTrue( "The transaction was commited when it should have been \
rolledback.", !expected.equals(actual) ); +      //} catch (Exception e){
+      //    fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+      //}
+    }
+
+
+    /**
+     * <B>11.6.1 Bean-managed transaction demarcation</B>
+     * <P>
+     * The Container must allow the enterprise bean instance to serially perform \
several transactions in a +     * method.
+     * </P>
+     */
+    public void TODO_test07_serialTransactions(){
+        try{
+
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    /**
+     * <B>11.6.1 Bean-managed transaction demarcation</B>
+     * <P>
+     * When an instance attempts to start a transaction using the
+     * begin() method of the javax.transaction.UserTransaction
+     * interface while the instance has not committed the previous
+     * transaction, the Container must throw the
+     * javax.transaction.NotSupportedException in the begin() method.
+     * </P>
+     */
+    public void TODO_test08_nestedTransactions(){
+        try{
+
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+
+    /**
+     * <B>11.6.1 Bean-managed transaction demarcation</B>
+     * <P>
+     * If a singleton session bean instance starts a transaction in a
+     * business method, it must commit the transaction before the
+     * business method returns. The Container must detect the case in
+     * which a transaction was started, but not completed, in the
+     * business method, and handle it as follows:
+     * <UL>
+     * <LI>Log this as an application error to alert the system administrator.
+     * <LI>Roll back the started transaction.
+     * <LI>Discard the instance of the session bean.
+     * <LI>Throw the java.rmi.RemoteException to the client.
+     * </UL>
+     * </P>
+     */
+    public void TODO_test09_beginWithNoCommit(){
+        try{
+
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+        /**
+     * <B>11.6.1 Bean-managed transaction demarcation</B>
+     * <P>
+     * The actions performed by the Container for an instance with bean-managed \
transaction are summarized +     * by the following table. T1 is a transaction \
associated with a client request, T2 is a transaction that is cur-rently +     * \
associated with the instance (i.e. a transaction that was started but not completed \
by a previous +     * business method).
+     * </P>
+     * <PRE>
+     * =========================================================================
+     * Container's actions for methods of beans with bean-managed transaction
+     * =========================================================================
+     *
+     *            |      IF     |          AND             |          THEN
+     *  scenario  |   Client's  | Transaction currently    | Transaction associated
+     *            | transaction | associated with instance | with the method is
+     * ___________|_____________|__________________________|________________________
+     *            |             |                          |
+     *    1       |  none       |  none                    |  none
+     * ___________|_____________|__________________________|________________________
+     *            |             |                          |
+     *    2       |  T1         |  none                    |  none
+     * ___________|_____________|__________________________|________________________
+     *            |             |                          |
+     *    3       |  none       |  T2                      |  T2
+     * ___________|_____________|__________________________|________________________
+     *            |             |                          |
+     *    4       |  T1         |  T2                      |  T2
+     * ___________|_____________|__________________________|________________________
+     * </PRE>
+     * <P>
+     * If the client request is not associated with a transaction and the instance \
is not associated with a +     * transaction, the container invokes the instance with \
an unspecified transaction context. +     * </P>
+     * <P>--------------------------------------------------------</P>
+     * <P>
+     * Test scenario 1: none none<BR>
+     * If the client's transaction is none and the transaction currently
+     * associated with instance none then the transaction associated with the method \
is none. +     * </P>
+     */
+    public void TODO_test10_scenario1_NoneNone(){
+        try{
+
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    /**
+     * <B>11.6.1 Bean-managed transaction demarcation</B>
+     * <P>
+     * The actions performed by the Container for an instance with bean-managed \
transaction are summarized +     * by the following table. T1 is a transaction \
associated with a client request, T2 is a transaction that is cur-rently +     * \
associated with the instance (i.e. a transaction that was started but not completed \
by a previous +     * business method).
+     * </P>
+     * <PRE>
+     * =========================================================================
+     * Container's actions for methods of beans with bean-managed transaction
+     * =========================================================================
+     *
+     *            |      IF     |          AND             |          THEN
+     *  scenario  |   Client's  | Transaction currently    | Transaction associated
+     *            | transaction | associated with instance | with the method is
+     * ___________|_____________|__________________________|________________________
+     *            |             |                          |
+     *    1       |  none       |  none                    |  none
+     * ___________|_____________|__________________________|________________________
+     *            |             |                          |
+     *    2       |  T1         |  none                    |  none
+     * ___________|_____________|__________________________|________________________
+     *            |             |                          |
+     *    3       |  none       |  T2                      |  T2
+     * ___________|_____________|__________________________|________________________
+     *            |             |                          |
+     *    4       |  T1         |  T2                      |  T2
+     * ___________|_____________|__________________________|________________________
+     * </PRE>
+     * <P>
+     * If the client is associated with a transaction T1, and the instance is not \
associated with a transaction, +     * the container suspends the client's \
transaction association and invokes the method with +     * an unspecified \
transaction context. The container resumes the client's ntransaction association +    \
* (T1) when the method completes. +     * </P>
+     * <P>--------------------------------------------------------</P>
+     * <P>
+     * Test scenario 2: T1 none<BR>
+     * </P>
+     */
+    public void TODO_test11_scenario2_T1None(){
+        try{
+
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+}
+

Added: openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/singleton/SingletonContainerTxTests.java
                
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/itests/openejb-itests-client/ \
src/main/java/org/apache/openejb/test/singleton/SingletonContainerTxTests.java?rev=672566&view=auto
 ==============================================================================
--- openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/singleton/SingletonContainerTxTests.java \
                (added)
+++ openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/singleton/SingletonContainerTxTests.java \
Sat Jun 28 11:48:28 2008 @@ -0,0 +1,443 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.openejb.test.singleton;
+
+import java.util.Properties;
+
+import javax.ejb.EJBMetaData;
+import javax.ejb.Handle;
+import javax.ejb.HomeHandle;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+
+import org.apache.openejb.test.TestManager;
+
+/**
+ * [1] Should be run as the first test suite of the SingletonTestClients
+ *
+ * @author <a href="mailto:david.blevins@visi.com">David Blevins</a>
+ * @author <a href="mailto:Richard@Monson-Haefel.com">Richard Monson-Haefel</a>
+ */
+public class SingletonContainerTxTests extends \
org.apache.openejb.test.NamedTestCase{ +
+    public final static String jndiEJBHomeEntry = \
"client/tests/singleton/ContainerManagedTransactionTests/EJBHome"; +
+    protected ContainerTxSingletonHome   ejbHome;
+    protected ContainerTxSingletonObject ejbObject;
+
+    protected EJBMetaData       ejbMetaData;
+    protected HomeHandle        ejbHomeHandle;
+    protected Handle            ejbHandle;
+    protected Integer           ejbPrimaryKey;
+
+    protected InitialContext initialContext;
+
+    public SingletonContainerTxTests(){
+        super("Singleton.ContainerManagedTransaction.");
+    }
+
+    /**
+     * Sets up the fixture, for example, open a network connection.
+     * This method is called before a test is executed.
+     */
+    protected void setUp() throws Exception {
+
+        Properties properties = TestManager.getServer().getContextEnvironment();
+        //properties.put(Context.SECURITY_PRINCIPAL, "SINGLETON_test00_CLIENT");
+        //properties.put(Context.SECURITY_CREDENTIALS, "SINGLETON_test00_CLIENT");
+
+        initialContext = new InitialContext(properties);
+
+        /*[1] Get bean */
+        Object obj = initialContext.lookup(jndiEJBHomeEntry);
+        ejbHome = (ContainerTxSingletonHome)javax.rmi.PortableRemoteObject.narrow( \
obj, ContainerTxSingletonHome.class); +        ejbObject = ejbHome.create();
+
+        /*[2] Create database table */
+        TestManager.getDatabase().createAccountTable();
+    }
+
+    /**
+     * Tears down the fixture, for example, close a network connection.
+     * This method is called after a test is executed.
+     */
+    protected void tearDown() throws Exception {
+        /*[1] Drop database table */
+        TestManager.getDatabase().dropAccountTable();
+    }
+
+    public void test01_txMandatory_withoutTx(){
+        try{
+            String expected = "ping";
+            String actual   = ejbObject.txMandatoryMethod( expected );
+            assertEquals("The method invocation was invalid.", expected, actual);
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test02_txNever_withoutTx(){
+        try{
+            String expected = "ping";
+            String actual   = ejbObject.txNeverMethod( expected );
+            assertEquals("The method invocation was invalid.", expected, actual);
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test03_txNotSupported_withoutTx(){
+        try{
+            String expected = "ping";
+            String actual   = ejbObject.txNotSupportedMethod( expected );
+            assertEquals("The method invocation was invalid.", expected, actual);
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test04_txRequired_withoutTx(){
+        try{
+            String expected = "ping";
+            String actual   = ejbObject.txRequiredMethod( expected );
+            assertEquals("The method invocation was invalid.", expected, actual);
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test05_txRequiresNew_withoutTx(){
+        try{
+            String expected = "ping";
+            String actual   = ejbObject.txRequiresNewMethod( expected );
+            assertEquals("The method invocation was invalid.", expected, actual);
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test06_txSupports_withoutTx(){
+        try{
+            String expected = "ping";
+            String actual   = ejbObject.txSupportsMethod( expected );
+            assertEquals("The method invocation was invalid.", expected, actual);
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test07_txMandatory_withTx(){
+        try{
+            String expected = "ping";
+            String actual   = ejbObject.txMandatoryMethod( expected );
+            assertEquals("The method invocation was invalid.", expected, actual);
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test08_txNever_withTx(){
+        try{
+            String expected = "ping";
+            String actual   = ejbObject.txNeverMethod( expected );
+            assertEquals("The method invocation was invalid.", expected, actual);
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test09_txNotSupported_withTx(){
+        try{
+            String expected = "ping";
+            String actual   = ejbObject.txNotSupportedMethod( expected );
+            assertEquals("The method invocation was invalid.", expected, actual);
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test10_txRequired_withTx(){
+        try{
+            String expected = "ping";
+            String actual   = ejbObject.txRequiredMethod( expected );
+            assertEquals("The method invocation was invalid.", expected, actual);
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test11_txRequiresNew_withTx(){
+        try{
+            String expected = "ping";
+            String actual   = ejbObject.txRequiresNewMethod( expected );
+            assertEquals("The method invocation was invalid.", expected, actual);
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test12_txSupports_withTx(){
+        try{
+            String expected = "ping";
+            String actual   = ejbObject.txSupportsMethod( expected );
+            assertEquals("The method invocation was invalid.", expected, actual);
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test01_txMandatory_withoutTx_appException(){
+        try{
+            String expected = "ping";
+            String actual   = ejbObject.txMandatoryMethod( expected );
+            assertEquals("The method invocation was invalid.", expected, actual);
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test02_txNever_withoutTx_appException(){
+        try{
+            String expected = "ping";
+            String actual   = ejbObject.txNeverMethod( expected );
+            assertEquals("The method invocation was invalid.", expected, actual);
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test03_txNotSupported_withoutTx_appException(){
+        try{
+            String expected = "ping";
+            String actual   = ejbObject.txNotSupportedMethod( expected );
+            assertEquals("The method invocation was invalid.", expected, actual);
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test04_txRequired_withoutTx_appException(){
+        try{
+            String expected = "ping";
+            String actual   = ejbObject.txRequiredMethod( expected );
+            assertEquals("The method invocation was invalid.", expected, actual);
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test05_txRequiresNew_withoutTx_appException(){
+        try{
+            String expected = "ping";
+            String actual   = ejbObject.txRequiresNewMethod( expected );
+            assertEquals("The method invocation was invalid.", expected, actual);
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test06_txSupports_withoutTx_appException(){
+        try{
+            String expected = "ping";
+            String actual   = ejbObject.txSupportsMethod( expected );
+            assertEquals("The method invocation was invalid.", expected, actual);
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test07_txMandatory_withTx_appException(){
+        try{
+            String expected = "ping";
+            String actual   = ejbObject.txMandatoryMethod( expected );
+            assertEquals("The method invocation was invalid.", expected, actual);
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test08_txNever_withTx_appException(){
+        try{
+            String expected = "ping";
+            String actual   = ejbObject.txNeverMethod( expected );
+            assertEquals("The method invocation was invalid.", expected, actual);
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test09_txNotSupported_withTx_appException(){
+        try{
+            String expected = "ping";
+            String actual   = ejbObject.txNotSupportedMethod( expected );
+            assertEquals("The method invocation was invalid.", expected, actual);
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test10_txRequired_withTx_appException(){
+        try{
+            String expected = "ping";
+            String actual   = ejbObject.txRequiredMethod( expected );
+            assertEquals("The method invocation was invalid.", expected, actual);
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test11_txRequiresNew_withTx_appException(){
+        try{
+            String expected = "ping";
+            String actual   = ejbObject.txRequiresNewMethod( expected );
+            assertEquals("The method invocation was invalid.", expected, actual);
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test12_txSupports_withTx_appException(){
+        try{
+            String expected = "ping";
+            String actual   = ejbObject.txSupportsMethod( expected );
+            assertEquals("The method invocation was invalid.", expected, actual);
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test01_txMandatory_withoutTx_sysException(){
+        try{
+            String expected = "ping";
+            String actual   = ejbObject.txMandatoryMethod( expected );
+            assertEquals("The method invocation was invalid.", expected, actual);
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test02_txNever_withoutTx_sysException(){
+        try{
+            String expected = "ping";
+            String actual   = ejbObject.txNeverMethod( expected );
+            assertEquals("The method invocation was invalid.", expected, actual);
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test03_txNotSupported_withoutTx_sysException(){
+        try{
+            String expected = "ping";
+            String actual   = ejbObject.txNotSupportedMethod( expected );
+            assertEquals("The method invocation was invalid.", expected, actual);
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test04_txRequired_withoutTx_sysException(){
+        try{
+            String expected = "ping";
+            String actual   = ejbObject.txRequiredMethod( expected );
+            assertEquals("The method invocation was invalid.", expected, actual);
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test05_txRequiresNew_withoutTx_sysException(){
+        try{
+            String expected = "ping";
+            String actual   = ejbObject.txRequiresNewMethod( expected );
+            assertEquals("The method invocation was invalid.", expected, actual);
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test06_txSupports_withoutTx_sysException(){
+        try{
+            String expected = "ping";
+            String actual   = ejbObject.txSupportsMethod( expected );
+            assertEquals("The method invocation was invalid.", expected, actual);
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test07_txMandatory_withTx_sysException(){
+        try{
+            String expected = "ping";
+            String actual   = ejbObject.txMandatoryMethod( expected );
+            assertEquals("The method invocation was invalid.", expected, actual);
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test08_txNever_withTx_sysException(){
+        try{
+            String expected = "ping";
+            String actual   = ejbObject.txNeverMethod( expected );
+            assertEquals("The method invocation was invalid.", expected, actual);
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test09_txNotSupported_withTx_sysException(){
+        try{
+            String expected = "ping";
+            String actual   = ejbObject.txNotSupportedMethod( expected );
+            assertEquals("The method invocation was invalid.", expected, actual);
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test10_txRequired_withTx_sysException(){
+        try{
+            String expected = "ping";
+            String actual   = ejbObject.txRequiredMethod( expected );
+            assertEquals("The method invocation was invalid.", expected, actual);
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test11_txRequiresNew_withTx_sysException(){
+        try{
+            String expected = "ping";
+            String actual   = ejbObject.txRequiresNewMethod( expected );
+            assertEquals("The method invocation was invalid.", expected, actual);
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test12_txSupports_withTx_sysException(){
+        try{
+            String expected = "ping";
+            String actual   = ejbObject.txSupportsMethod( expected );
+            assertEquals("The method invocation was invalid.", expected, actual);
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+}
+

Added: openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/singleton/SingletonContextLookupTests.java
                
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/itests/openejb-itests-client/ \
src/main/java/org/apache/openejb/test/singleton/SingletonContextLookupTests.java?rev=672566&view=auto
 ==============================================================================
--- openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/singleton/SingletonContextLookupTests.java \
                (added)
+++ openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/singleton/SingletonContextLookupTests.java \
Sat Jun 28 11:48:28 2008 @@ -0,0 +1,231 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.openejb.test.singleton;
+
+import org.apache.openejb.test.TestManager;
+import org.apache.openejb.test.TestFailureException;
+
+/**
+ * [4] Should be run as the fourth test suite of the EncSingletonTestClients
+ *
+ * @author <a href="mailto:david.blevins@visi.com">David Blevins</a>
+ * @author <a href="mailto:Richard@Monson-Haefel.com">Richard Monson-Haefel</a>
+ */
+public class SingletonContextLookupTests extends SingletonTestClient{
+
+    protected EncSingletonHome   ejbHome;
+    protected EncSingletonObject ejbObject;
+
+    public SingletonContextLookupTests(){
+        super("JNDI_ENC.");
+    }
+
+    protected void setUp() throws Exception{
+        super.setUp();
+        Object obj = \
initialContext.lookup("client/tests/singleton/ContextLookupSingletonBean"); +        \
ejbHome = (EncSingletonHome)javax.rmi.PortableRemoteObject.narrow( obj, \
EncSingletonHome.class); +        ejbObject = ejbHome.create();
+
+        /*[2] Create database table */
+        TestManager.getDatabase().createEntityTable();
+    }
+
+    /**
+     * Tears down the fixture, for example, close a network connection.
+     * This method is called after a test is executed.
+     */
+    protected void tearDown() throws Exception {
+        try {
+            /*[1] Drop database table */
+            TestManager.getDatabase().dropEntityTable();
+        } catch (Exception e){
+            throw e;
+        } finally {
+            super.tearDown();
+        }
+    }
+
+    public void test01_lookupStringEntry() {
+        try{
+            ejbObject.lookupStringEntry();
+        } catch (TestFailureException e){
+            throw e.error;
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test02_lookupDoubleEntry() {
+        try{
+            ejbObject.lookupDoubleEntry();
+        } catch (TestFailureException e){
+            throw e.error;
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test03_lookupLongEntry() {
+        try{
+            ejbObject.lookupLongEntry();
+        } catch (TestFailureException e){
+            throw e.error;
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test04_lookupFloatEntry() {
+        try{
+            ejbObject.lookupFloatEntry();
+        } catch (TestFailureException e){
+            throw e.error;
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test05_lookupIntegerEntry() {
+        try{
+            ejbObject.lookupIntegerEntry();
+        } catch (TestFailureException e){
+            throw e.error;
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test06_lookupShortEntry() {
+        try{
+            ejbObject.lookupShortEntry();
+        } catch (TestFailureException e){
+            throw e.error;
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test07_lookupBooleanEntry() {
+        try{
+            ejbObject.lookupBooleanEntry();
+        } catch (TestFailureException e){
+            throw e.error;
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test08_lookupByteEntry() {
+        try{
+            ejbObject.lookupByteEntry();
+        } catch (TestFailureException e){
+            throw e.error;
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test09_lookupCharacterEntry() {
+        try{
+            ejbObject.lookupCharacterEntry();
+        } catch (TestFailureException e){
+            throw e.error;
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test10_lookupEntityBean() {
+        try{
+            ejbObject.lookupEntityBean();
+        } catch (TestFailureException e){
+            throw e.error;
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test11_lookupStatefulBean() {
+        try{
+            ejbObject.lookupStatefulBean();
+        } catch (TestFailureException e){
+            throw e.error;
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test12_lookupSingletonBean() {
+        try{
+            ejbObject.lookupSingletonBean();
+        } catch (TestFailureException e){
+            throw e.error;
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test13_lookupResource() {
+        try{
+            ejbObject.lookupResource();
+        } catch (TestFailureException e){
+            throw e.error;
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test14_lookupPersistenceUnit() {
+        try{
+            ejbObject.lookupPersistenceUnit();
+        } catch (TestFailureException e){
+            throw e.error;
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+    
+    public void test15_lookupPersistenceContext() {
+        try{
+            ejbObject.lookupPersistenceContext();
+        } catch (TestFailureException e){
+            throw e.error;
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test18_lookupSessionContext() {
+        try{
+            ejbObject.lookupSessionContext();
+        } catch (TestFailureException e){
+            throw e.error;
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+
+    public void test23_lookupJMSConnectionFactory() {
+        try{
+            ejbObject.lookupJMSConnectionFactory();
+        } catch (TestFailureException e){
+            throw e.error;
+        } catch (Exception e){
+            fail("Received Exception "+e.getClass()+ " : "+e.getMessage());
+        }
+    }
+}


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic