User: juhalindfors
Date: 02/01/24 14:16:04
Modified: src/main/test/compliance/server MBeanServerTEST.java
Log:
exception tests
Revision Changes Path
1.2 +280 -5 jmx/src/main/test/compliance/server/MBeanServerTEST.java
Index: MBeanServerTEST.java
===================================================================
RCS file: /cvsroot/jboss/jmx/src/main/test/compliance/server/MBeanServerTEST.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- MBeanServerTEST.java 2002/01/23 21:39:35 1.1
+++ MBeanServerTEST.java 2002/01/24 22:16:04 1.2
@@ -9,18 +9,38 @@
import junit.framework.TestCase;
-import javax.management.*;
+import javax.management.MBeanServer;
+import javax.management.MBeanServerFactory;
+import javax.management.ObjectName;
+import javax.management.Attribute;
+import javax.management.InstanceNotFoundException;
+import javax.management.AttributeNotFoundException;
+import javax.management.MBeanException;
+import javax.management.RuntimeMBeanException;
+import javax.management.RuntimeErrorException;
+import javax.management.InvalidAttributeValueException;
-public class MBeanServerTEST extends TestCase
+import org.jboss.mx.server.ServerConstants;
+import test.compliance.server.support.Test;
+import test.compliance.server.support.TestMBean;
+import test.compliance.server.support.MyScreamingException;
+import test.compliance.server.support.ExceptionOnTheRun;
+import test.compliance.server.support.BabarError;
+
+
+public class MBeanServerTEST
+ extends TestCase
+ implements ServerConstants
{
public MBeanServerTEST(String s)
{
super(s);
}
- public void testInvokeNonExistantMBean()
+ public void testInvokeWithNonExistantMBean()
{
- try {
+ try
+ {
MBeanServer server = MBeanServerFactory.createMBeanServer();
server.invoke(new ObjectName(":mbean=doesnotexist"), "noMethod", null,
null);
@@ -37,5 +57,260 @@
fail("Unexpected error on server.invoke(NonExistantMBean): " +
t.toString());
}
}
-
+
+ public void testInvokeWithBusinessException()
+ {
+ try
+ {
+ MBeanServer server = MBeanServerFactory.createMBeanServer();
+ ObjectName name = new ObjectName("test:test=test");
+ server.registerMBean(new Test(), name);
+
+ server.invoke(name, "operationWithException", null, null);
+
+ // should not get here
+ fail("MBeanException was not thrown.");
+ }
+ catch (MBeanException e)
+ {
+ // this is expected
+ assertTrue(e.getTargetException() instanceof MyScreamingException);
+ }
+ catch (Throwable t)
+ {
+ fail("Unexpected error: " + t.toString());
+ }
+ }
+
+
+ public void testGetAttributeWithNonExistingAttribute()
+ {
+ try
+ {
+ MBeanServer server = MBeanServerFactory.createMBeanServer();
+ Object foo = server.getAttribute(new ObjectName(MBEAN_SERVER_DELEGATE),
"Foo");
+
+ // should not reach here
+ fail("AttributeNotFoundexception was not thrown when invoking
getAttribute() call on a non-existant attribute.");
+ }
+ catch (AttributeNotFoundException e)
+ {
+ // Expecting this.
+ }
+ catch (Throwable t)
+ {
+ fail("Unexpected error: " + t.toString());
+ }
+ }
+
+ public void testGetAttributeWithBusinessException()
+ {
+ try
+ {
+ MBeanServer server = MBeanServerFactory.createMBeanServer();
+ ObjectName name = new ObjectName("test:test=test");
+ server.registerMBean(new Test(), name);
+
+ Object foo = server.getAttribute(name, "ThisWillScream");
+
+ // should not reach here
+ fail("Did not throw the screaming exception");
+ }
+ catch (MBeanException e)
+ {
+ // this is expected
+ assertTrue(e.getMessage().startsWith("Exception thrown by attribute"));
+ assertTrue(e.getTargetException() instanceof MyScreamingException);
+ }
+ catch (Throwable t)
+ {
+ fail("Unexpected error: " + t.toString());
+ }
+ }
+
+ public void testGetAttributeWithNonExistingMBean()
+ {
+ try
+ {
+ MBeanServer server = MBeanServerFactory.createMBeanServer();
+ ObjectName name = new ObjectName("test:name=DoesNotExist");
+
+ server.getAttribute(name, "Whatever");
+
+ // should not reach here
+ fail("InstanceNotFoundException was not thrown on a nonexistant MBean.");
+ }
+ catch (InstanceNotFoundException e)
+ {
+ // this is expected
+ }
+ catch (Throwable t)
+ {
+ fail("Unexpected error: " + t.toString());
+ }
+ }
+
+ public void testGetAttributeWithUncheckedException()
+ {
+ try
+ {
+ MBeanServer server = MBeanServerFactory.createMBeanServer();
+ ObjectName name = new ObjectName("test:test=test");
+ server.registerMBean(new Test(), name);
+
+ server.getAttribute(name, "ThrowUncheckedException");
+
+ // should not reach here
+ fail("RuntimeMBeanException was not thrown");
+ }
+ catch (RuntimeMBeanException e)
+ {
+ // this is expected
+ assertTrue(e.getTargetException() instanceof ExceptionOnTheRun);
+ }
+ catch (Throwable t)
+ {
+ fail("Unexpected err0r: " + t.toString());
+ }
+ }
+
+ public void testGetAttributeWithError()
+ {
+ try
+ {
+ MBeanServer server = MBeanServerFactory.createMBeanServer();
+ ObjectName name = new ObjectName("test:test=test");
+ server.registerMBean(new Test(), name);
+
+ server.getAttribute(name, "Error");
+
+ // should not reach here
+ fail("Error was not thrown");
+ }
+ catch (RuntimeErrorException e)
+ {
+ // this is expected
+ assertTrue(e.getTargetError() instanceof BabarError);
+ }
+ catch (Throwable t)
+ {
+ fail("Unexpected error: " + t.toString());
+ }
+ }
+
+ public void testSetAttributeWithNonExistingAttribute()
+ {
+ try
+ {
+ MBeanServer server = MBeanServerFactory.createMBeanServer();
+ server.setAttribute(new ObjectName(MBEAN_SERVER_DELEGATE), new
Attribute("Foo", "value"));
+
+ // should not reach here
+ fail("AttributeNotFoundexception was not thrown when invoking
getAttribute() call on a non-existant attribute.");
+ }
+ catch (AttributeNotFoundException e)
+ {
+ // Expecting this.
+ }
+ catch (Throwable t)
+ {
+ fail("Unexpected error: " + t.toString());
+ }
+ }
+
+ public void testSetAttributeWithBusinessException()
+ {
+ try
+ {
+ MBeanServer server = MBeanServerFactory.createMBeanServer();
+ ObjectName name = new ObjectName("test:test=test");
+ server.registerMBean(new Test(), name);
+
+ server.setAttribute(name, new Attribute("ThisWillScream", "value"));
+
+ // should not reach here
+ fail("Did not throw the screaming exception");
+ }
+ catch (MBeanException e)
+ {
+ // this is expected
+ assertTrue(e.getMessage().startsWith("Exception thrown by attribute"));
+ assertTrue(e.getTargetException() instanceof MyScreamingException);
+ }
+ catch (Throwable t)
+ {
+ fail("Unexpected error: " + t.toString());
+ }
+ }
+
+ public void testSetAttributeWithNonExistingMBean()
+ {
+ try
+ {
+ MBeanServer server = MBeanServerFactory.createMBeanServer();
+ ObjectName name = new ObjectName("test:name=DoesNotExist");
+
+ server.setAttribute(name, new Attribute("Whatever", "nothing"));
+
+ // should not reach here
+ fail("InstanceNotFoundException was not thrown on a nonexistant MBean.");
+ }
+ catch (InstanceNotFoundException e)
+ {
+ // this is expected
+ }
+ catch (Throwable t)
+ {
+ fail("Unexpected error: " + t.toString());
+ }
+ }
+
+ public void testSetAttributeWithUncheckedException()
+ {
+ try
+ {
+ MBeanServer server = MBeanServerFactory.createMBeanServer();
+ ObjectName name = new ObjectName("test:test=test");
+ server.registerMBean(new Test(), name);
+
+ server.setAttribute(name, new Attribute("ThrowUncheckedException",
"value"));
+
+ // should not reach here
+ fail("RuntimeMBeanException was not thrown");
+ }
+ catch (RuntimeMBeanException e)
+ {
+ // this is expected
+ assertTrue(e.getTargetException() instanceof ExceptionOnTheRun);
+ }
+ catch (Throwable t)
+ {
+ fail("Unexpected err0r: " + t.toString());
+ }
+ }
+
+ public void testSetAttributeWithError()
+ {
+ try
+ {
+ MBeanServer server = MBeanServerFactory.createMBeanServer();
+ ObjectName name = new ObjectName("test:test=test");
+ server.registerMBean(new Test(), name);
+
+ server.setAttribute(name, new Attribute("Error", "value"));
+
+ // should not reach here
+ fail("Error was not thrown");
+ }
+ catch (RuntimeErrorException e)
+ {
+ // this is expected
+ assertTrue(e.getTargetError() instanceof BabarError);
+ }
+ catch (Throwable t)
+ {
+ fail("Unexpected error: " + t.toString());
+ }
+ }
+
}
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development