/*
* JBoss, the OpenSource J2EE webOS
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package org.jboss.test;
import org.jboss.jmx.adaptor.rmi.RMIAdaptor;
import junit.framework.Test;
import junit.framework.TestSuite;
/**
* Derived implementation of JBossTestCase for cluster testing.
*
* @see org.jboss.test.JBossTestCase
*
* @author Sacha Labourey.
* @version $Revision: 1.1.4.1 $
*
*
Revisions:
*
*
12 avril 2002 Sacha Labourey:
*
*/
public class JBossClusteredTestCase extends JBossTestCase
{
// Constants -----------------------------------------------------
// Attributes ----------------------------------------------------
// Static --------------------------------------------------------
// Constructors --------------------------------------------------
public JBossClusteredTestCase(String name)
{
super (name);
}
public void initDelegate ()
{
delegate = new JBossTestClusteredServices(getClass().getName());
}
// Public --------------------------------------------------------
public void testServerFound() throws Exception
{
if (deploymentException != null)
throw deploymentException;
assertTrue("Server was not found", getServers() != null);
}
// Z implementation ----------------------------------------------
// Y overrides ---------------------------------------------------
// Package protected ---------------------------------------------
// Protected -----------------------------------------------------
protected RMIAdaptor[] getServers() throws Exception
{
return ((JBossTestClusteredServices)delegate).getServers();
}
public static Test getDeploySetup(final Test test, final String jarName) throws Exception
{
JBossTestSetup wrapper = new JBossTestClusteredSetup(test)
{
protected void setUp() throws Exception
{
deploymentException = null;
try {
this.deploy(jarName);
this.getLog().debug("deployed package: " + jarName);
} catch (Exception ex) {
// Throw this in testServerFound() instead.
deploymentException = ex;
}
// wait a few seconds so that the cluster stabilize
//
synchronized (this)
{
wait (2000);
}
}
protected void tearDown() throws Exception
{
this.undeploy(jarName);
this.getLog().debug("undeployed package: " + jarName);
}
};
return wrapper;
}
public static Test getDeploySetup(final Class clazz, final String jarName) throws Exception
{
TestSuite suite = new TestSuite();
suite.addTest(new TestSuite(clazz));
return getDeploySetup(suite, jarName);
}
// Private -------------------------------------------------------
// Inner classes -------------------------------------------------
}