You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by dj...@apache.org on 2008/02/27 02:04:55 UTC

svn commit: r631448 - /db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/management/ManagementMBeanTest.java

Author: djd
Date: Tue Feb 26 17:04:48 2008
New Revision: 631448

URL: http://svn.apache.org/viewvc?rev=631448&view=rev
Log:
DERBY-3385 Add testing to ManagementMBean to ensure Derby's MBeans register and unregister when management is started and stopped

Modified:
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/management/ManagementMBeanTest.java

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/management/ManagementMBeanTest.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/management/ManagementMBeanTest.java?rev=631448&r1=631447&r2=631448&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/management/ManagementMBeanTest.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/management/ManagementMBeanTest.java Tue Feb 26 17:04:48 2008
@@ -21,6 +21,8 @@
 
 package org.apache.derbyTesting.functionTests.tests.management;
 
+import java.util.Set;
+
 import javax.management.ObjectName;
 
 import junit.framework.Test;
@@ -43,6 +45,10 @@
                                         "ManagementMBeanTest:client");
     }
     
+    /**
+     * Test that the MBean created by the application can
+     * successfully start and stop Derby's JMX management.
+     */
     public void testStartStopManagementFromApplication()
         throws Exception
     {
@@ -50,22 +56,40 @@
         startStopManagement(appMgmtBean);
     }
     
+    /**
+     * Test that the MBean with the passed in name can
+     * successfully start and stop Derby's JMX management.
+     */
     private void startStopManagement(ObjectName mbean) throws Exception
     {
         // Test fixtures start off active
         assertBooleanAttribute(true, mbean, "ManagementActive");
         
+        int derbyMbeanCount = getDerbyDomainMBeans().size();
+        assertTrue(derbyMbeanCount > 0);
+        
         // Should be a no-op
         invokeOperation(mbean, "startManagement");
         assertBooleanAttribute(true, mbean, "ManagementActive");
         
+        // so should have the same number of MBeans registered
+        assertEquals(derbyMbeanCount, getDerbyDomainMBeans().size());
+        
         // now stop management
         invokeOperation(mbean, "stopManagement");
         assertBooleanAttribute(false, mbean, "ManagementActive");
         
-        // now start management again
+        // leaving only management MBeans.
+        Set<ObjectName> managementOnly = getDerbyDomainMBeans();
+        assertEquals(1, managementOnly.size());
+        for (ObjectName name : managementOnly)
+        {
+            assertEquals("Management", name.getKeyProperty("type"));
+        }
+        
+        // now start management again and have the same MBeans.
         invokeOperation(mbean, "startManagement");
         assertBooleanAttribute(true, mbean, "ManagementActive");
-
+        assertEquals(derbyMbeanCount, getDerbyDomainMBeans().size());
     }
 }