/* * JBoss, the OpenSource J2EE webOS * * Distributable under LGPL license. * See terms of license at gnu.org. */ // $Id: AxisTestCase.java,v 1.1.2.3 2003/09/30 16:46:04 starksm Exp $ package org.jboss.test.webservice; import org.jboss.test.JBossTestCase; import org.jboss.test.JBossTestSetup; import org.jboss.net.axis.AxisInvocationHandler; import org.jboss.net.axis.XMLResourceProvider; import org.jboss.net.jmx.MBeanInvocationHandler; import org.jboss.net.jmx.adaptor.RemoteAdaptor; import org.jboss.net.jmx.adaptor.RemoteAdaptorInvocationHandler; import org.apache.axis.client.Service; import org.apache.axis.client.Call; import org.apache.axis.AxisFault; import org.apache.axis.client.AxisClient; import junit.framework.Test; import junit.framework.TestSuite; import java.rmi.RemoteException; import java.net.URL; import java.util.Map; /** * Junit Test class with some Axis support *
* @created 12. Oktober 2001, 11:20 * @author Christoph G. Jung * @author Scott.Stark@jboss.org * @version $Revision: 1.1.2.3 $ */ public class AxisTestCase extends JBossTestCase { /** the protocol we use */ protected String PROTOCOL = "http://"; /** the address to which we forward the request */ protected String ADDRESS = "localhost:8080/"; /** where the axis servlet context is installed */ protected String AXIS_CONTEXT = ADDRESS + "jboss-net/"; /** where the service port is located under */ protected String SERVICE_PORT = AXIS_CONTEXT + "services"; /** has an associated end point that may be configured once */ protected String END_POINT = PROTOCOL + SERVICE_PORT; /** the call object */ protected Service service; /** the map of methods to interface names */ protected Map interfaceMap = new AxisInvocationHandler.DefaultInterfaceMap(); ; /** the map of methods to method names */ protected Map methodMap = new AxisInvocationHandler.DefaultMethodMap(); /** Creates new AxisTestCase */ public AxisTestCase(String name) { super(name); } public void setUp() throws Exception { String axisConfig = getAxisConfiguration(); URL configURL = getClass().getClassLoader().getResource(axisConfig); if (configURL == null) throw new IllegalStateException("Failed to find resource: " + axisConfig); log.info("Configuring axis with provider resource " + configURL); service = new Service(new XMLResourceProvider(configURL)); service.setMaintainSession(true); } /** searches for the right configuration provider */ protected String getAxisConfiguration() { return "client-config.xml"; } /** creates a new Axis service using the test engine*/ protected AxisInvocationHandler createAxisInvocationHandler(URL endpoint) throws AxisFault { return new AxisInvocationHandler( endpoint, service, methodMap, interfaceMap); } /** creates a new Axis service using the test engine*/ protected MBeanInvocationHandler createMBeanInvocationHandler(URL endpoint) throws AxisFault { return new MBeanInvocationHandler( endpoint, service, methodMap, interfaceMap); } /** creates a new Axis service using the test engine*/ protected Object createAxisService(Class _class, URL endpoint) throws AxisFault { return AxisInvocationHandler.createAxisService( _class, createAxisInvocationHandler(endpoint)); } /** creates a new Axis service using the test engine*/ protected Object createMBeanService(Class _class, URL endpoint) throws AxisFault { return MBeanInvocationHandler.createMBeanService( _class, createMBeanInvocationHandler(endpoint)); } /** creates a new remote adaptor using the test engine*/ protected RemoteAdaptor createRemoteAdaptor(URL endpoint) throws RemoteException { return RemoteAdaptorInvocationHandler.createRemoteAdaptor( createMBeanInvocationHandler(endpoint)); } protected static Test getAxisSetup(final Test test, final String jarName) throws Exception { JBossTestSetup wrapper = new AxisTestSetup(test) { protected void setUp() throws Exception { this.deployAxis(jarName); this.getLog().debug("deployed package: " + jarName); } protected void tearDown() throws Exception { this.undeployAxis(jarName); this.getLog().debug("undeployed package: " + jarName); } }; return wrapper; } protected static Test getAxisSetup(final Class clazz, final String jarName) throws Exception { TestSuite suite = new TestSuite(); suite.addTest(new TestSuite(clazz)); return getAxisSetup(suite, jarName); } }