001: /*
002: * JOnAS: Java(TM) Open Application Server
003: * Copyright (C) 1999 Bull S.A.
004: * Contact: jonas-team@objectweb.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 1any 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: * Initial developer: Florent BENOIT
022: * --------------------------------------------------------------------------
023: * $Id: C_eb.java 10557 2007-06-07 09:21:44Z coqp $
024: * --------------------------------------------------------------------------
025: */
026:
027: package org.objectweb.jonas.examples.clients.eb;
028:
029: import java.lang.reflect.InvocationTargetException;
030: import junit.framework.*;
031:
032: import org.objectweb.jonas.examples.util.JExampleTestCase;
033: import org.objectweb.jonas.examples.util.JPrintStream;
034: import org.objectweb.jonas.examples.util.NoExitSecurityManager;
035:
036: /**
037: * Define a class to test the eb example
038: * Test the client of eb example (Check if the text is "ClientAccount terminated")
039: * - test case of AccountImplHome
040: * - test case of AccountExplHome
041: * @author Florent Benoit
042: */
043: public class C_eb extends JExampleTestCase {
044:
045: /**
046: * Class of the eb.client
047: */
048: private static final String CLIENT_CLASS = "eb.ClientAccount";
049:
050: /**
051: * Text to check
052: */
053: private static final String CLIENT_OK_TXT = "ClientAccount terminated";
054:
055: /**
056: * Impl EJB1.x
057: */
058: private static final String ACC_IMPL = "AccountImplHome";
059:
060: /**
061: * Impl EJB2.x
062: */
063: private static final String ACC_IMPL2 = "AccountImpl2Home";
064: /**
065: * Expl
066: */
067: private static final String ACC_EXPL = "AccountExplHome";
068:
069: /**
070: * Main method
071: * @param args the arguments
072: */
073: public static void main(String[] args) {
074:
075: String testtorun = null;
076: // Get args
077: for (int argn = 0; argn < args.length; argn++) {
078: String sArg = args[argn];
079: if (sArg.equals("-n")) {
080: testtorun = args[++argn];
081: }
082: }
083:
084: if (testtorun == null) {
085: junit.textui.TestRunner.run(suite());
086: } else {
087: junit.textui.TestRunner.run(new C_eb(testtorun));
088: }
089: }
090:
091: /**
092: * Get a new TestSuite for this class
093: * @return a new TestSuite for this class
094: */
095: public static TestSuite suite() {
096: return new TestSuite(C_eb.class);
097: }
098:
099: /**
100: * Setup need for these tests
101: * eb is required
102: * @throws Exception if it fails
103: */
104: protected void setUp() throws Exception {
105: super .setUp();
106: useBeans("eb");
107: }
108:
109: /**
110: * Step to do at the end
111: * unload eb
112: * @throws Exception if it fails
113: */
114: protected void tearDown() throws Exception {
115: super .tearDown();
116: unUseBeans("eb");
117: }
118:
119: /**
120: * Constructor with a specified name
121: * @param s name
122: */
123: public C_eb(String s) {
124: super (s);
125: }
126:
127: /**
128: * Test the return text of the example eb
129: * by using a specific mode (Impl or Expl)
130: * @param mode Can be AccountImplHome or AccountExplHome
131: */
132: private void doTestEb(String mode) {
133: JPrintStream jPrintStream = new JPrintStream(System.out);
134: System.setOut(jPrintStream);
135: String txt = null;
136: try {
137: // Define a SecurityManager to handle System.exit() case
138: System.setSecurityManager(new NoExitSecurityManager());
139:
140: // Call Method
141: callMainMethod(CLIENT_CLASS, new String[] { mode });
142:
143: txt = jPrintStream.getStringBuffer().toString();
144: } catch (InvocationTargetException ite) {
145: fail("Fail when invoking the client. It can be due to a System.exit()");
146: } catch (Exception e) {
147: fail("Client was not ok" + e);
148: } finally {
149: System.setSecurityManager(new SecurityManager());
150: jPrintStream.remove();
151: }
152:
153: // Check the text
154: if (txt.indexOf(CLIENT_OK_TXT) == -1) {
155: fail("The text that the client sent was not "
156: + CLIENT_OK_TXT);
157: }
158: }
159:
160: /**
161: * Try to launch the client of the example eb
162: * with the case AccountImpl2
163: * @throws Exception if an error occurs
164: */
165: public void testClientAccountImpl2() throws Exception {
166: doTestEb(ACC_IMPL2);
167: }
168:
169: /**
170: * Try to launch the client of the example eb
171: * with the case AccountImpl
172: * @throws Exception if an error occurs
173: */
174: public void testClientAccountImpl() throws Exception {
175: doTestEb(ACC_IMPL);
176: }
177:
178: /**
179: * Try to launch the client of the example eb
180: * with the case AccountExpl
181: * @throws Exception if an error occurs
182: */
183: public void testClientAccountExpl() throws Exception {
184: doTestEb(ACC_EXPL);
185: }
186:
187: }
|