summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrea Gazzarini <agazzarini@apache.org>2009-02-15 10:43:10 +0000
committerAndrea Gazzarini <agazzarini@apache.org>2009-02-15 10:43:10 +0000
commit8abf714563c14066fab3e715dfb057d23adae73d (patch)
tree6a02ab6ea2a40e6dcc8299ae06366ef51aea2911
parent38c742e89e98588c8434e875c5d6c5d99fd26dc2 (diff)
downloadqpid-python-8abf714563c14066fab3e715dfb057d23adae73d.tar.gz
QPID-1579 : Additional test case for MBean capability builder when target resource has no properties / no methods
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@744651 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/java/management/client/src/test/java/org/apache/qpid/management/wsdm/capabilities/MBeanCapabilityBuilderTest.java57
1 files changed, 57 insertions, 0 deletions
diff --git a/qpid/java/management/client/src/test/java/org/apache/qpid/management/wsdm/capabilities/MBeanCapabilityBuilderTest.java b/qpid/java/management/client/src/test/java/org/apache/qpid/management/wsdm/capabilities/MBeanCapabilityBuilderTest.java
index 407f903f80..68c9930ecd 100644
--- a/qpid/java/management/client/src/test/java/org/apache/qpid/management/wsdm/capabilities/MBeanCapabilityBuilderTest.java
+++ b/qpid/java/management/client/src/test/java/org/apache/qpid/management/wsdm/capabilities/MBeanCapabilityBuilderTest.java
@@ -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.MBeanOperationInfo;
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 @@ import org.apache.qpid.management.wsdm.common.QManFault;
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 @@ public class MBeanCapabilityBuilderTest extends TestCase
}
/**
+ * 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")