KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > test > foedeployer > test > O2MBConversionTestCase


1 /*
2  * JBoss, the OpenSource J2EE webOS
3  *
4  * Distributable under LGPL license.
5  * See terms of license at gnu.org.
6  */

7 package org.jboss.test.foedeployer.test;
8
9 import java.io.IOException JavaDoc;
10 import java.net.InetAddress JavaDoc;
11 import java.rmi.RemoteException JavaDoc;
12 import java.util.Set JavaDoc;
13 import java.util.Collection JavaDoc;
14 import javax.ejb.CreateException JavaDoc;
15 import javax.ejb.Handle JavaDoc;
16 import javax.management.ObjectName JavaDoc;
17 import javax.naming.InitialContext JavaDoc;
18 import javax.naming.NamingException JavaDoc;
19 import javax.rmi.PortableRemoteObject JavaDoc;
20
21 import junit.extensions.TestSetup;
22 import junit.framework.Test;
23 import junit.framework.TestCase;
24 import junit.framework.TestSuite;
25
26 import org.jboss.test.JBossTestCase;
27 import org.jboss.test.JBossTestSetup;
28
29 import org.jboss.test.foedeployer.ejb.simple.SecretManager;
30 import org.jboss.test.foedeployer.ejb.simple.SecretManagerHome;
31 import org.jboss.test.foedeployer.ejb.o2mb.O2MBManager;
32 import org.jboss.test.foedeployer.ejb.o2mb.O2MBManagerHome;
33
34 /**
35  * Test of relationships conversion
36  *
37  * @author <a HREF="mailto:loubyansky@hotmail.com">Alex Loubyansky</a>
38  * @version $Revision: 1.3 $
39  */

40 public class O2MBConversionTestCase
41    extends JBossTestCase
42 {
43    // Constants -----------------------------------------------------
44
public static final String JavaDoc FOE_DEPLOYER = "foe-deployer-3.2.sar";
45    public static final String JavaDoc FOE_DEPLOYER_NAME = "jboss:service=FoeDeployer";
46    public static final String JavaDoc CONVERTOR_DEPLOYER_QUERY_NAME = "jboss:service=Convertor,*";
47    public static final String JavaDoc APPLICATION = "foe-deployer-o2mb-test";
48    public static final String JavaDoc MANAGER_SESSION_JNDI_NAME = "O2MBManagerEJB.O2MBManagerHome";
49
50    // Static --------------------------------------------------------
51
/**
52     * Setup the test suite.
53     */

54    public static Test suite() throws Exception JavaDoc
55    {
56       TestSuite suite = new TestSuite();
57       suite.addTest( new TestSuite( O2MBConversionTestCase.class ) );
58
59       // Create an initializer for the test suite
60
TestSetup wrapper = new JBossTestSetup( suite )
61       {
62          protected void setUp() throws Exception JavaDoc
63          {
64             super.setUp();
65          }
66          protected void tearDown() throws Exception JavaDoc
67          {
68             super.tearDown();
69          }
70       };
71       return wrapper;
72    }
73
74    // Constructors --------------------------------------------------
75
public O2MBConversionTestCase( String JavaDoc name )
76    {
77       super( name );
78    }
79
80    // Public --------------------------------------------------------
81
/**
82     * Test a simple conversion
83     **/

84    public void testSimpleConversion()
85       throws Exception JavaDoc
86    {
87       try
88       {
89          log.debug( "+++ testO2MBConversion" );
90
91          // First check if foe-deployer is deployed
92
boolean isInitiallyDeployed = getServer().isRegistered( new ObjectName JavaDoc( FOE_DEPLOYER_NAME ) );
93          if( !isInitiallyDeployed ) deploy(FOE_DEPLOYER);
94
95          boolean isDeployed = getServer().isRegistered(new ObjectName JavaDoc(FOE_DEPLOYER_NAME));
96          assertTrue("Foe-Deployer is not deployed", isDeployed);
97
98          // Count number of convertors (must be a list one)
99
int count = getServer().queryNames(new ObjectName JavaDoc(CONVERTOR_DEPLOYER_QUERY_NAME), null).size();
100          assertTrue("No Convertor found on web server", count > 0);
101
102          // Deploy the simple application
103
deploy(APPLICATION + ".wlar");
104
105          // Because the Foe-Deployer copies the converted JAR back to the original place
106
// it has to be deployed from here again
107
deploy(APPLICATION + ".jar");
108
109          // Access the Session Bean and invoke some methods on it
110
int i;
111          String JavaDoc companyName = "Romashka";
112          String JavaDoc[] employees = {"Ivanov", "Petrov", "Sidorov"};
113
114          O2MBManager manager = getO2MBManager();
115
116          log.debug( "cleaning the database" );
117          manager.removeCompanyIfExists( companyName );
118
119          log.debug( "creating company: " + companyName );
120          manager.createCompany( companyName );
121
122          // create all employees except the last one
123
for( i = 0; i < employees.length - 1; ++i )
124          {
125             log.debug( "creating employee '" + employees[i]
126                + "' for company '" + companyName + "'" );
127             manager.createEmployeeForCompany( employees[i], companyName );
128          }
129
130          // fetch created employees
131
Collection JavaDoc emps = manager.getEmployeesForCompany( companyName );
132          log.debug("employees for company '" + companyName + "': " + emps );
133
134          log.debug( "checking whether employees employed by the company" );
135          for( i = 0; i < employees.length - 1; ++i )
136          {
137             assertTrue( "Employee '" + employees[i] + "' must have been employed",
138                emps.contains( employees[ i ] ) );
139          }
140
141          log.debug( "creating the last employee: " + employees[employees.length-1] );
142          manager.createEmployee( employees[ employees.length - 1 ] );
143
144          log.debug( "employ '" + employees[ employees.length-1 ] + "'" );
145          manager.employ( employees[employees.length-1], companyName );
146
147          // verifying the last employee is employed
148
assertTrue( "Employee '" + employees[ employees.length-1 ]
149             + "' must have been employed",
150             companyName.equals(
151                manager.getCompanyForEmployee( employees[ employees.length-1 ] ) )
152          );
153
154          log.debug( "checking whether all employees are employed by the company" );
155          emps = manager.getEmployeesForCompany( companyName );
156          for( i = 0; i < employees.length; ++i )
157          {
158             assertTrue( "Employee '" + employees[i] + "' must have been employed",
159                emps.contains( employees[ i ] ) );
160          }
161
162          log.debug("removing company: " + companyName );
163          manager.removeCompany( companyName );
164
165          // Undeploy converted application to clean up
166
undeploy(APPLICATION + ".jar");
167          // undeploy wlar (though it should work without it)
168
undeploy(APPLICATION + ".wlar");
169
170          // Only undeploy if deployed here
171
if(!isInitiallyDeployed) undeploy( FOE_DEPLOYER );
172       }
173       catch(Exception JavaDoc e)
174       {
175          e.printStackTrace();
176          throw e;
177       }
178    }
179
180    // Private -------------------------------------------------------
181
private O2MBManager getO2MBManager()
182       throws Exception JavaDoc
183    {
184       log.debug("looking for O2MBManager");
185       Object JavaDoc ref = getInitialContext().lookup( MANAGER_SESSION_JNDI_NAME );
186       O2MBManagerHome home = (O2MBManagerHome) PortableRemoteObject.narrow(
187          ref, O2MBManagerHome.class );
188       return home.create();
189    }
190 }
191
Popular Tags