001: /**
002: * EasyBeans
003: * Copyright (C) 2006 Bull S.A.S.
004: * Contact: easybeans@ow2.org
005: *
006: * This library is free software; you can redistribute it and/or
007: * modify it under the terms of the GNU Lesser General Public
008: * License as published by the Free Software Foundation; either
009: * version 2.1 of the License, or any later version.
010: *
011: * This library is distributed in the hope that it will be useful,
012: * but WITHOUT ANY WARRANTY; without even the implied warranty of
013: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
014: * Lesser General Public License for more details.
015: *
016: * You should have received a copy of the GNU Lesser General Public
017: * License along with this library; if not, write to the Free Software
018: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
019: * USA
020: *
021: * --------------------------------------------------------------------------
022: * $Id: TestExceptionHandleNever.java 1970 2007-10-16 11:49:25Z benoitf $
023: * --------------------------------------------------------------------------
024: */package org.ow2.easybeans.tests.transaction.containermanaged.stateful;
025:
026: import org.ow2.easybeans.tests.common.ejbs.stateful.containermanaged.transaction.SFSBContainerTransacNeverApp01;
027: import org.ow2.easybeans.tests.common.ejbs.stateful.containermanaged.transaction.SFSBContainerTransacNeverApp02;
028: import org.ow2.easybeans.tests.common.ejbs.stateful.containermanaged.transaction.SFSBContainerTransacNeverRuntime;
029: import org.ow2.easybeans.tests.common.ejbs.stateful.containermanaged.transaction.SFSBContainerTransactionNeverApp;
030: import org.ow2.easybeans.tests.common.ejbs.stateful.containermanaged.transaction.SFSBContainerTransactionNeverRollback;
031: import org.ow2.easybeans.tests.transaction.containermanaged.base.TestExceptionHandleBase;
032: import org.testng.annotations.BeforeMethod;
033: import org.testng.annotations.Test;
034:
035: /**
036: * Verifies if the container-managed transaction in the session bean is
037: * following the JSR 220. The container must handle the different types of
038: * exception in the transaction context. The items covered in this test are:
039: * 14.3.1
040: * @reference JSR 220-FINAL RELEASE
041: * @requirement Application Server must be running; the bean .
042: * SFSBContainerTransactionNeverApp,
043: * SFSBContainerTransacNeverApp01,
044: * SFSBContainerTransacNeverApp02
045: * SFSBContainerTransactionNeverRollback and
046: * SFSBContainerTransactionNeverRuntime must be deployed .
047: * @setup gets the reference of the beans , cleans the database and close all
048: * transactions.
049: * @author Gisele Pinheiro Souza
050: * @author Eduardo Studzinski Estima de Castro
051: */
052: public class TestExceptionHandleNever extends TestExceptionHandleBase {
053:
054: /**
055: * Creates the bean intances, closes the transactions and cleans the
056: * database.
057: * @throws Exception if an error during the bean creation occurs.
058: */
059: @BeforeMethod
060: @Override
061: public void setup() throws Exception {
062: super .setup();
063: }
064:
065: /**
066: * Creates a bean that throws always an application exception that extends
067: * Exception and has the rollback element as false.
068: * @throws Exception if an error during the bean creation occurs.
069: */
070: @Override
071: public void createBeanApp() throws Exception {
072: super .createBeanApp(SFSBContainerTransactionNeverApp.class);
073: }
074:
075: /**
076: * Creates a bean that throws always an application exception that extends
077: * RuntimeException and has the rollback element as false.
078: * @throws Exception if an error during the bean creation occurs.
079: */
080: @Override
081: public void createBeanApp01() throws Exception {
082: super .createBeanApp01(SFSBContainerTransacNeverApp01.class);
083: }
084:
085: /**
086: * Creates a bean that throws always an application exception that extends
087: * RuntimeException and has the rollback element as true.
088: * @throws Exception if an error during the bean creation occurs.
089: */
090: @Override
091: public void createBeanApp02() throws Exception {
092: super .createBeanApp02(SFSBContainerTransacNeverApp02.class);
093: }
094:
095: /**
096: * Creates a bean that throws always an application exception that extends
097: * Exception and has the rollback element as true.
098: * @throws Exception if an error during the bean creation occurs.
099: */
100: @Override
101: public void createBeanRollback() throws Exception {
102: super
103: .createBeanRollback(SFSBContainerTransactionNeverRollback.class);
104: }
105:
106: /**
107: * Creates a bean that throws always aa runtime exception.
108: * @throws Exception if an error during the bean creation occurs.
109: */
110: @Override
111: public void createBeanRuntime() throws Exception {
112: super .createBeanRuntime(SFSBContainerTransacNeverRuntime.class);
113: }
114:
115: /**
116: * Inserts a table in an database and after throws an application exception
117: * that extends Exception and has the rollback element as false. So, the
118: * container must not rollback the transaction and must re-throw the
119: * exception.
120: * @input -
121: * @output the correct method execution.
122: * @see org.ow2.easybeans.tests.transaction.containermanaged.base.TestExceptionHandleBase
123: * @throws Exception if an error during the tests occurs.
124: */
125: @Test(groups={"application exception tests"})
126: @Override
127: public void testNotUsingClientTransWithAppException()
128: throws Exception {
129: super .testNotUsingClientTransWithAppException();
130: }
131:
132: /**
133: * Inserts a table in an database and after throws an application exception
134: * that extends Exception and has the rollback element as true. So, the
135: * container must not rollback the transaction and must re-throw the
136: * exception.
137: * @input -
138: * @output the correct method execution.
139: * @see org.ow2.easybeans.tests.transaction.containermanaged.base.TestExceptionHandleBase
140: * @throws Exception if an error during the tests occurs.
141: */
142: @Test(groups={"application rollback exception tests"})
143: @Override
144: public void testNotUsingClientTransWithAppRollbackException()
145: throws Exception {
146: super .testNotUsingClientTransWithAppRollbackException();
147: }
148:
149: /**
150: * Inserts a table in an database and after throws a runtime exception So,
151: * the container must not rollback the transaction(because there is no
152: * transaction), discards the bean and throw EJBException.
153: * @input -
154: * @output the correct method execution.
155: * @see org.ow2.easybeans.tests.transaction.containermanaged.base.TestExceptionHandleBase
156: * @throws Exception if an error during the tests occurs.
157: */
158: @Test(groups={"runtime exception tests"})
159: @Override
160: public void testNotUsingClientTransWithRuntimeException()
161: throws Exception {
162: super .testNotUsingClientTransWithRuntimeException();
163: }
164:
165: /**
166: * Inserts a table in an database and after throws an application exception
167: * that extends RuntimeException and has the rollback element as true. So, the
168: * container must not rollback the transaction and must re-throw the
169: * exception.
170: * @input -
171: * @output the correct method execution.
172: * @see org.ow2.easybeans.tests.transaction.containermanaged.base.TestExceptionHandleBase
173: * @throws Exception if an error during the tests occurs.
174: */
175: @Test
176: @Override
177: public void testNotUsingClientTransWithAppRuntimeRollbackException()
178: throws Exception {
179: super .testNotUsingClientTransWithAppRuntimeRollbackException();
180: }
181:
182: /**
183: * Inserts a table in an database and after throws an application exception
184: * that extends RuntimeException and has the rollback element as false. So, the
185: * container must not rollback the transaction and must re-throw the
186: * exception.
187: * @input -
188: * @output the correct method execution.
189: * @see org.ow2.easybeans.tests.transaction.containermanaged.base.TestExceptionHandleBase
190: * @throws Exception if an error during the tests occurs.
191: */
192: @Override
193: @Test
194: public void testNotUsingClientTransWithAppRuntimeException()
195: throws Exception {
196: super.testNotUsingClientTransWithAppRuntimeException();
197: }
198: }
|