Author: agazzarini
Date: Sun Feb 15 10:43:10 2009
New Revision: 744651

URL: http://svn.apache.org/viewvc?rev=744651&view=rev
Log:
QPID-1579 : Additional test case for MBean capability builder when target 
resource has no properties / no methods

Modified:
    
qpid/trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/wsdm/capabilities/MBeanCapabilityBuilderTest.java

Modified: 
qpid/trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/wsdm/capabilities/MBeanCapabilityBuilderTest.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/wsdm/capabilities/MBeanCapabilityBuilderTest.java?rev=744651&r1=744650&r2=744651&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/wsdm/capabilities/MBeanCapabilityBuilderTest.java
 (original)
+++ 
qpid/trunk/qpid/java/management/client/src/test/java/org/apache/qpid/management/wsdm/capabilities/MBeanCapabilityBuilderTest.java
 Sun Feb 15 10:43:10 2009
@@ -21,7 +21,10 @@
 package org.apache.qpid.management.wsdm.capabilities;
 
 import java.lang.management.ManagementFactory;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 import javassist.CtClass;
@@ -33,6 +36,7 @@
 import javax.management.MBeanParameterInfo;
 import javax.management.MBeanServer;
 import javax.management.ObjectName;
+import javax.xml.namespace.QName;
 
 import junit.framework.TestCase;
 
@@ -50,6 +54,25 @@
 public class MBeanCapabilityBuilderTest extends TestCase
 {
        
+       /**
+        * Management interface for an mbean that has no properties and no 
+        * methods.
+        * 
+        * @author Andrea Gazzarini
+        */
+       public interface NoPropertiesNoMethodsMBean 
+       {
+       }
+
+       /**
+        * Implementation of the managenent interface described above.
+        * 
+        * @author Andrea Gazzarini
+        */
+       public class NoPropertiesNoMethods implements 
NoPropertiesNoMethodsMBean 
+       {
+       }
+
        private MBeanCapabilityBuilder _builder;
        private ObjectName _objectName;
        
@@ -126,6 +149,40 @@
        }
        
        /**
+        * Tests buils of a capability that has no properties and methods
+        * 
+        * <br>precondition : the incoming entity definition is empty (no 
properties and no methods)
+        * <br>postcondition : the capability class is built successfully and 
has no props and methods.
+        *                                                              The 
getPropertyNames returns an empty QName array.
+        */
+       public void testOK_WithNoPropertiesNoMethods() throws Exception {
+
+               ObjectName name = new 
ObjectName("Test:Name=NoPropertiesNoMethods");
+               
+               MBeanServer server = ManagementFactory.getPlatformMBeanServer();
+               server.registerMBean(new NoPropertiesNoMethods(), name);
+               
+               _builder.begin(name);
+               _builder.endAttributes();
+               _builder.endOperations();
+               Class<MBeanCapability> capabilityClass = 
_builder.getCapabilityClass();
+               
+               Field[] fields = capabilityClass.getDeclaredFields();
+               Method [] methods = capabilityClass.getDeclaredMethods();
+               
+               assertEquals(Arrays.toString(fields),0,fields.length);
+               assertEquals(Arrays.toString(methods),1,methods.length);
+               
+               Method getPropertyNames = methods[0];
+               assertEquals("getPropertyNames",getPropertyNames.getName());
+               
+               
+               MBeanCapability capability = capabilityClass.newInstance();
+               QName [] properties = (QName[]) 
getPropertyNames.invoke(capability);
+               assertEquals(0,properties.length);
+       }
+       
+       /**
         * Tests the whole execution of the builder.
         */
        @SuppressWarnings("unchecked")



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org

Reply via email to