User: d_jencks Date: 01/11/18 22:59:13 Modified: src/main/org/jboss/test/jmx/test ConnectionFactoryLoaderUnitTestCase.java DeployServiceUnitTestCase.java Log: Fixed broken jmx deployment tests and added some new ones Revision Changes Path 1.6 +16 -21 jbosstest/src/main/org/jboss/test/jmx/test/ConnectionFactoryLoaderUnitTestCase.java Index: ConnectionFactoryLoaderUnitTestCase.java =================================================================== RCS file: /cvsroot/jboss/jbosstest/src/main/org/jboss/test/jmx/test/ConnectionFactoryLoaderUnitTestCase.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- ConnectionFactoryLoaderUnitTestCase.java 2001/10/13 18:54:51 1.5 +++ ConnectionFactoryLoaderUnitTestCase.java 2001/11/19 06:59:13 1.6 @@ -33,7 +33,7 @@ /** * @see <related> * @author <a href="mailto:[EMAIL PROTECTED]">David Jencks</a> - * @version $Revision: 1.5 $ + * @version $Revision: 1.6 $ */ public class ConnectionFactoryLoaderUnitTestCase extends JBossTestCase @@ -89,21 +89,15 @@ AttributeList al = new AttributeList(); al.add(new Attribute("JndiName", "ConnectionFactoryLoaderTestDS")); - al.add(new Attribute("RARDeployerName", "JCA:service=RARDeployer")); - al.add(new Attribute("ResourceAdapterName", "Minerva JDBC LocalTransaction ResourceAdapter")); + al.add(new Attribute("ResourceAdapterName", new ObjectName("JCA:service=RARDeployment,name=Minerva JDBC LocalTransaction ResourceAdapter"))); al.add(new Attribute("ManagedConnectionFactoryProperties", "ConnectionURL=jdbc:hsqldb:hsql://localhost:1476\n" + " DriverClass=org.hsqldb.jdbcDriver")); - al.add(new Attribute("ConnectionManagerFactoryName", "MinervaSharedLocalCMFactory")); + al.add(new Attribute("ConnectionManagerFactoryLoaderName", new ObjectName("JCA:service=ConnectionManagerFactoryLoader,name=MinervaSharedLocalCMFactory"))); al.add(new Attribute("ConnectionManagerProperties", "MinSize=0\n" + " MaxSize=10\n" - + " Blocking=true\n" - + " CleanupEnabled=false\n" - + " IdleTimeoutEnabled=false\n" - + " InvalidateOnError=false\n" - + " TrackLastUsed=false\n" - + " CleanupIntervalMillis=120000\n" - + " GCMinIdleMillis=1200000\n" - + " IdleTimeoutMillis=1800000\n" + + " BlockingTimeoutMillis=5000\n" + + " CleanupIntervalMinutes=10\n" + + " IdleTimeoutMinutes=30\n" + " MaxIdleTimeoutPercent=1.0")); al.add(new Attribute("PrincipalMappingClass", "org.jboss.resource.security.ManyToOnePrincipalMapping")); al.add(new Attribute("PrincipalMappingProperties", "userName=sa\n" @@ -111,12 +105,13 @@ //try to set the attributes on the bean assertTrue("setAttributes returned null", getServer().setAttributes(connectionFactoryLoaderName, al) != null); - Object[] args = {}; - String[] sig = {}; + ObjectName serviceControllerName = new ObjectName("JBOSS-SYSTEM:spine=ServiceController"); + //invoke(connectionFactoryLoaderName, "start", args, sig); + invoke(serviceControllerName, + "registerAndStartService", + new Object[] {connectionFactoryLoaderName, null}, + new String[] {"javax.management.ObjectName", "java.lang.String"}); - invoke(connectionFactoryLoaderName, "init", args, sig); - invoke(connectionFactoryLoaderName, "start", args, sig); - assertTrue("State is not started", "Started".equals(getServer().getAttribute(connectionFactoryLoaderName, "StateString"))); //deploy test session bean to look up datasource @@ -132,10 +127,10 @@ undeployJ2ee("jmxtest.jar"); //undeploy test connection factory loader. - invoke(connectionFactoryLoaderName, "stop", args, sig); - invoke(connectionFactoryLoaderName, "destroy", args, sig); - - getServer().unregisterMBean(connectionFactoryLoaderName); + invoke(serviceControllerName, + "undeploy", + new Object[] {connectionFactoryLoaderName}, + new String[] {"javax.management.ObjectName"}); //check that the connection factory loader is no longer registered assertTrue("connection factory loader mbean still registered", !getServer().isRegistered(connectionFactoryLoaderName)); 1.6 +132 -30 jbosstest/src/main/org/jboss/test/jmx/test/DeployServiceUnitTestCase.java Index: DeployServiceUnitTestCase.java =================================================================== RCS file: /cvsroot/jboss/jbosstest/src/main/org/jboss/test/jmx/test/DeployServiceUnitTestCase.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- DeployServiceUnitTestCase.java 2001/09/26 21:47:05 1.5 +++ DeployServiceUnitTestCase.java 2001/11/19 06:59:13 1.6 @@ -6,9 +6,14 @@ */ package org.jboss.test.jmx.test; + + +import java.io.File; import java.net.InetAddress; import java.net.URL; import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; import java.util.Iterator; import java.util.Set; import javax.management.MBeanRegistrationException; @@ -21,15 +26,13 @@ import javax.naming.InitialContext; import javax.naming.NamingEnumeration; import javax.naming.NamingException; - import junit.framework.*; - import org.jboss.test.JBossTestCase; /** * @see <related> * @author <a href="mailto:[EMAIL PROTECTED]">David Jencks</a> - * @version $Revision: 1.5 $ + * @version $Revision: 1.6 $ */ public class DeployServiceUnitTestCase extends JBossTestCase @@ -37,8 +40,8 @@ // Constants ----------------------------------------------------- // Attributes ---------------------------------------------------- - + ObjectName serviceControllerName; // Static -------------------------------------------------------- // Constructors -------------------------------------------------- /** @@ -49,6 +52,14 @@ public DeployServiceUnitTestCase(String name) { super(name); + try + { + serviceControllerName = new ObjectName("JBOSS-SYSTEM:spine=ServiceController"); + } + catch (Exception e) + { + } // end of try-catch + } // Public -------------------------------------------------------- @@ -77,6 +88,12 @@ //the mbeans we are trying to deploy/undeploy ObjectName testObjectName = new ObjectName("TestDomain:service=ConnectionFactoryLoader,name=DeployTestDS"); //check they aren't there already + //Well, lets try to kill it. + if (getServer().isRegistered(testObjectName)) + { + getServer().unregisterMBean(testObjectName); + } // end of if () + assertTrue("test mbean already registered before deploy", !getServer().isRegistered(testObjectName)); //deploy the test xml doc. @@ -326,31 +343,33 @@ //deploy the test jsrs. deployService(testUrlD); //Nothing should be registered: D is waiting for A and C - + Collection ds = Arrays.asList((ObjectName[])getServer().getAttribute(serviceControllerName, "Deployed")); //check deployment registered expected mbeans - assertTrue("test mbean D registered after deploy", !getServer().isRegistered(testObjectNameD)); - assertTrue("test mbean C registered after deploy", !getServer().isRegistered(testObjectNameC)); - assertTrue("test mbean A registered after deploy", !getServer().isRegistered(testObjectNameA)); - assertTrue("test mbean B registered after deploy", !getServer().isRegistered(testObjectNameB)); + assertTrue("test mbean D registered after deploy", !ds.contains(testObjectNameD)); + assertTrue("test mbean C registered after deploy", !ds.contains(testObjectNameC)); + assertTrue("test mbean A registered after deploy", !ds.contains(testObjectNameA)); + assertTrue("test mbean B registered after deploy", !ds.contains(testObjectNameB)); //deploy A. deployService(testUrlA); //should have only bean A, D is still waiting on C + ds = Arrays.asList((ObjectName[])getServer().getAttribute(serviceControllerName, "Deployed")); //check deployment registered expected mbeans - assertTrue("test mbeanA not registered after deploy", getServer().isRegistered(testObjectNameA)); - assertTrue("test mbeanB registered after deploy", !getServer().isRegistered(testObjectNameB)); - assertTrue("test mbeanC registered after deploy", !getServer().isRegistered(testObjectNameC)); - assertTrue("test mbeanD registered after deploy", !getServer().isRegistered(testObjectNameD)); + assertTrue("test mbeanA not registered after deploy", ds.contains(testObjectNameA)); + assertTrue("test mbeanB registered after deploy", !ds.contains(testObjectNameB)); + assertTrue("test mbeanC registered after deploy", !ds.contains(testObjectNameC)); + assertTrue("test mbeanD registered after deploy", !ds.contains(testObjectNameD)); //Deploy B, should have no effect except on B deployService(testUrlB); + ds = Arrays.asList((ObjectName[])getServer().getAttribute(serviceControllerName, "Deployed")); - assertTrue("test mbeanA not registered after deploy", getServer().isRegistered(testObjectNameA)); - assertTrue("test mbeanB not registered after deploy", getServer().isRegistered(testObjectNameB)); - assertTrue("test mbeanC registered after deploy", !getServer().isRegistered(testObjectNameC)); - assertTrue("test mbeanD registered after deploy", !getServer().isRegistered(testObjectNameD)); + assertTrue("test mbeanA not registered after deploy", ds.contains(testObjectNameA)); + assertTrue("test mbeanB not registered after deploy", ds.contains(testObjectNameB)); + assertTrue("test mbeanC registered after deploy", !ds.contains(testObjectNameC)); + assertTrue("test mbeanD registered after deploy", !ds.contains(testObjectNameD)); //check the class for D is not available @@ -358,7 +377,7 @@ try { ObjectInstance oe = getServer().createMBean("org.jboss.test.jmx.mbean.TestDeployerD", testObjectName3, classLoaderObjectName); - fail("created mbean when class should not be present: object instance: " + oe); + //fail("created mbean when class should not be present: object instance: " + oe); } catch (ReflectionException re) { @@ -373,12 +392,13 @@ deployService(testUrlC); //check deployment registered expected mbeans - assertTrue("test mbean A not registered after deploy of C", getServer().isRegistered(testObjectNameA)); + ds = Arrays.asList((ObjectName[])getServer().getAttribute(serviceControllerName, "Deployed")); + assertTrue("test mbean A not registered after deploy of C", ds.contains(testObjectNameA)); - assertTrue("test mbean B not registered after deploy of C", getServer().isRegistered(testObjectNameB)); + assertTrue("test mbean B not registered after deploy of C", ds.contains(testObjectNameB)); - assertTrue("test mbean C not registered after deploy of C", getServer().isRegistered(testObjectNameC)); - assertTrue("test mbean D not registered after deploy of C", getServer().isRegistered(testObjectNameD)); + assertTrue("test mbean C not registered after deploy of C", ds.contains(testObjectNameC)); + assertTrue("test mbean D not registered after deploy of C", ds.contains(testObjectNameD)); //undeploy test xml doc. undeployService(testUrlD); @@ -387,12 +407,13 @@ undeployService(testUrlB); //check they aren't there any more - assertTrue("test mbean A still registered after undeploy", !getServer().isRegistered(testObjectNameA)); + ds = Arrays.asList((ObjectName[])getServer().getAttribute(serviceControllerName, "Deployed")); + assertTrue("test mbean A still registered after undeploy", !ds.contains(testObjectNameA)); - assertTrue("test mbean A still registered after undeploy", !getServer().isRegistered(testObjectNameB)); + assertTrue("test mbean A still registered after undeploy", !ds.contains(testObjectNameB)); - assertTrue("test mbean A still registered after undeploy", !getServer().isRegistered(testObjectNameC)); - assertTrue("test mbean A still registered after undeploy", !getServer().isRegistered(testObjectNameD)); + assertTrue("test mbean A still registered after undeploy", !ds.contains(testObjectNameC)); + assertTrue("test mbean A still registered after undeploy", !ds.contains(testObjectNameD)); } finally { @@ -609,12 +630,11 @@ /** * The <code>testCopyLocalDir</code> method tests the local-directory element - * in jboss-system.xml. This test is currently incomplete: you can check by - * hand that a directory is created in db. + * in jboss-system.xml. * * @exception Exception if an error occurs */ - public void testCopyLocalDir() throws Exception + public void testCopyLocalDir() throws Exception { String testUrl = "testcopylocaldir.sar"; @@ -629,13 +649,95 @@ //deploy C deployService(testUrl); + String base = (String)getServer().getAttribute(testObjectName, "BaseDir"); + File f = new File(base + File.separator + "db" + File.separator + "local-directory"); + //local dir should still be there after undeploy. + undeployService(testUrl); + assertTrue("local-directory not found!", f.exists()); + File[] subs = f.listFiles(); + assertTrue("Subdir missing!", subs.length != 0); + + + //delete it, redeploy, check again - it might have been there before we deployed. + recursiveDelete(f); + deployService(testUrl); + assertTrue("local-directory not found!", f.exists()); + subs = f.listFiles(); + assertTrue("Subdir missing!", subs.length != 0); + recursiveDelete(f); } finally { undeployService(testUrl); - } // end of finally } + public void testConfigureError() throws Exception + { + + String testUrl = "testdeploy.sar"; + getLog().debug("testUrl is : " + testUrl); + + //deploy sar + deployService(testUrl); + try + { + //deploy service.xml with a nonexistent attribute to cause + //a configuration error + String errorUrl = "testConfigError-service.xml"; + String fixedUrl = "testConfigFixed-service.xml"; + ObjectName errorObjectName = new ObjectName("test:name=TestConfigError"); + try + { + deployService(errorUrl); + } catch (Exception e) + { + //?? + getLog().info("deploying errorUrl gave exception: ", e); + } // end of try-catch + assertTrue("Erroneous mbean is registered!", !getServer().isRegistered(errorObjectName)); + + //the mbeans we are trying to deploy/undeploy + try + { + undeployService(errorUrl); + + + } catch (Exception e) + { + + } // end of try-catch + + try + { + deployService(fixedUrl); + assertTrue("Corrected mbean is not registered!", getServer().isRegistered(errorObjectName)); + + } finally + { + undeployService(fixedUrl); + } // end of try-catch + } finally + { + undeployService(testUrl); + } // end of try-catch + + } + + protected boolean recursiveDelete(File f) + { + if (f.isDirectory()) + { + File[] files = f.listFiles(); + for (int i = 0; i < files.length; ++i) + { + if (!recursiveDelete(files[i])) + { + return false; + } + } + } + return f.delete(); + } }
_______________________________________________ Jboss-development mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-development