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: F_samplemdb.java 3038 2003-08-18 07:28:00Z benoitf $
024: * --------------------------------------------------------------------------
025: */
026:
027: package org.objectweb.jonas.examples.clients.mdb;
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 mdb example
038: * Test the client of mdb/sampleAppli example
039: * (Check if the text is "SampleApplicationClient OK"
040: * @author Florent Benoit
041: */
042: public class F_samplemdb extends JExampleTestCase {
043:
044: /**
045: * Class of the mdb.client
046: */
047: private static final String CLIENT_CLASS = "samplemdb.MdbClient";
048:
049: /**
050: * Text to check
051: */
052: private static final String CLIENTOP_OK_TXT = "MDBsample is Ok";
053:
054: /**
055: * Main method
056: * @param args the arguments
057: */
058: public static void main(String[] args) {
059:
060: String testtorun = null;
061: // Get args
062: for (int argn = 0; argn < args.length; argn++) {
063: String sArg = args[argn];
064: if (sArg.equals("-n")) {
065: testtorun = args[++argn];
066: }
067: }
068:
069: if (testtorun == null) {
070: junit.textui.TestRunner.run(suite());
071: } else {
072: junit.textui.TestRunner.run(new F_samplemdb(testtorun));
073: }
074: }
075:
076: /**
077: * Get a new TestSuite for this class
078: * @return a new TestSuite for this class
079: */
080: public static TestSuite suite() {
081: return new TestSuite(F_samplemdb.class);
082: }
083:
084: /**
085: * Setup need for these tests
086: * samplemdb is required
087: * @throws Exception if it fails
088: */
089: protected void setUp() throws Exception {
090: super .setUp();
091: useBeans("samplemdb");
092: }
093:
094: /**
095: * Step to do at the end
096: * unload samplemdb
097: * @throws Exception if it fails
098: */
099: protected void tearDown() throws Exception {
100: super .tearDown();
101: unUseBeans("samplemdb");
102: }
103:
104: /**
105: * Constructor with a specified name
106: * @param s name
107: */
108: public F_samplemdb(String s) {
109: super (s);
110: }
111:
112: /**
113: * Try to launch the client of the example mdb
114: * @throws Exception if an error occurs
115: */
116: public void testClient() throws Exception {
117: JPrintStream jPrintStream = new JPrintStream(System.out);
118: System.setOut(jPrintStream);
119: String txt = null;
120: try {
121: //Define a SecurityManager to handle System.exit() case
122: System.setSecurityManager(new NoExitSecurityManager());
123:
124: //Call Method
125: callMainMethod(CLIENT_CLASS);
126:
127: txt = jPrintStream.getStringBuffer().toString();
128: } catch (InvocationTargetException ite) {
129: System.out.println("Error = " + ite);
130: ite.printStackTrace();
131: fail("Fail when invoking the client. It can be due to a System.exit()");
132: } catch (Exception e) {
133: fail("Client was not ok" + e);
134: } finally {
135: System.setSecurityManager(new SecurityManager());
136: jPrintStream.remove();
137: }
138:
139: System.out.println("Sample mdb txt = " + txt);
140:
141: // Check the text
142: if (txt.indexOf(CLIENTOP_OK_TXT) == -1) {
143: fail("The text that the client sent was not "
144: + CLIENTOP_OK_TXT);
145: }
146:
147: }
148:
149: }
|