User: squirest
  Date: 01/12/21 13:17:19

  Modified:    src/main/test/compliance/registration RegistrationTEST.java
  Log:
  added a couple of tests to illustrate problems with MBeanRegistration handling
  
  Revision  Changes    Path
  1.2       +80 -3     jmx/src/main/test/compliance/registration/RegistrationTEST.java
  
  Index: RegistrationTEST.java
  ===================================================================
  RCS file: 
/cvsroot/jboss/jmx/src/main/test/compliance/registration/RegistrationTEST.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- RegistrationTEST.java     2001/12/20 01:50:59     1.1
  +++ RegistrationTEST.java     2001/12/21 21:17:19     1.2
  @@ -9,16 +9,93 @@
   
   import junit.framework.TestCase;
   
  +import javax.management.MBeanServer;
  +import javax.management.MBeanServerFactory;
  +import javax.management.ObjectName;
  +import javax.management.MalformedObjectNameException;
  +import javax.management.InstanceAlreadyExistsException;
  +import javax.management.MBeanRegistrationException;
  +import javax.management.NotCompliantMBeanException;
  +import javax.management.InstanceNotFoundException;
  +
  +import test.compliance.registration.support.RegistrationAware;
  +
   public class RegistrationTEST extends TestCase
   {
      public RegistrationTEST(String s)
      {
         super(s);
      }
  +
  +   public void testSimpleRegistration()
  +   {
  +      try
  +      {
  +         MBeanServer server = MBeanServerFactory.newMBeanServer();
  +         RegistrationAware ra = new RegistrationAware();
  +         ObjectName name = new ObjectName("test:key=value");
  +
  +         server.registerMBean(ra, name);
  +
  +         assertTrue("preRegister", ra.isPreRegisterCalled());
  +         assertTrue("postRegister", ra.isPostRegisterCalled());
  +         assertTrue("postRegisterRegistrationDone", 
ra.isPostRegisterRegistrationDone());
  +         assertEquals(name, ra.getRegisteredObjectName());
  +
  +         server.unregisterMBean(name);
  +
  +         assertTrue("preDeRegister", ra.isPreDeRegisterCalled());
  +         assertTrue("postDeRegister", ra.isPostDeRegisterCalled());
  +      }
  +      catch (MalformedObjectNameException e)
  +      {
  +         fail("spurious MalformedObjectNameException");
  +      }
  +      catch (MBeanRegistrationException e)
  +      {
  +         fail("strange MBeanRegistrationException linked to: " + 
e.getTargetException().getMessage());
  +      }
  +      catch (Exception e)
  +      {
  +         fail("something else went wrong: " + e.getMessage());
  +      }
  +   }
   
  -   public void testNYI()
  +   public void testDuplicateRegistration()
      {
  -      // FIXME THS - I've identified potential problems with the handling of 
MBeanRegistration
  -      // will put together a testcase to illustrate
  +
  +      try
  +      {
  +         MBeanServer server = MBeanServerFactory.newMBeanServer();
  +         ObjectName name = new ObjectName("test:key=value");
  +
  +         RegistrationAware original = new RegistrationAware();
  +         RegistrationAware ra = new RegistrationAware();
  +
  +         server.registerMBean(original, name);
  +
  +         try
  +         {
  +            server.registerMBean(ra, name);
  +            fail("expected a InstanceAlreadyExistsException");
  +         }
  +         catch (InstanceAlreadyExistsException e)
  +         {
  +         }
  +
  +         assertTrue("preRegister", ra.isPreRegisterCalled());
  +         assertTrue("postRegister", ra.isPostRegisterCalled());
  +         assertTrue("postRegisterRegistrationDone", 
!ra.isPostRegisterRegistrationDone());
  +         assertTrue("preDeRegister", !ra.isPreDeRegisterCalled());
  +         assertTrue("postDeRegister", !ra.isPostDeRegisterCalled());
  +         assertEquals(name, ra.getRegisteredObjectName());
  +
  +         server.unregisterMBean(name);
  +      }
  +      catch (Exception e)
  +      {
  +         fail("got an unexpected exception: " + e.getMessage());
  +      }
      }
  +
   }
  
  
  

_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to