User: ejort   
  Date: 02/03/11 10:21:32

  Modified:    src/main/test/compliance/relation
                        RelationServiceTestCase.java
                        RelationSupportTestCase.java
  Log:
  Relation Service Fixes, not applied to 1.0 yet
  
  Revision  Changes    Path
  1.3       +202 -25   
jmx/src/main/test/compliance/relation/RelationServiceTestCase.java
  
  Index: RelationServiceTestCase.java
  ===================================================================
  RCS file: 
/cvsroot/jboss/jmx/src/main/test/compliance/relation/RelationServiceTestCase.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- RelationServiceTestCase.java      2 Mar 2002 21:52:40 -0000       1.2
  +++ RelationServiceTestCase.java      11 Mar 2002 18:21:32 -0000      1.3
  @@ -24,6 +24,7 @@
   import javax.management.NotificationListener;
   import javax.management.MBeanServerFactory;
   import javax.management.ObjectName;
  +
   import javax.management.relation.RelationNotification;
   import javax.management.relation.RelationService;
   import javax.management.relation.RelationServiceNotRegisteredException;
  @@ -61,10 +62,17 @@
      Role roleB2;
      RoleList rolesB;
      HashMap roleInfosB = new HashMap();
  +   Role roleC1;
  +   Role roleC2;
      RoleList rolesC;
      HashMap roleInfosC = new HashMap();
  +   Role roleCX1;
  +   Role roleCX2;
      RoleList rolesCX;
      HashMap roleInfosCX = new HashMap();
  +   Role roleCZ2;
  +   RoleList rolesCZ;
  +   HashMap roleInfosCZ = new HashMap();
   
      // Constructor ---------------------------------------------------------------
   
  @@ -903,14 +911,6 @@
      }
   
      /**
  -    * Test Handle Notification
  -    */
  -   public void testHandleNotificationExternal()
  -   {
  -// TODO !!!!!!!!
  -   }
  -
  -   /**
       * Test Has Relation
       */
      public void testHasRelationExternal()
  @@ -1118,11 +1118,103 @@
      }
   
      /**
  -    * Test purge Relations
  +    * Test purge Relations Automatically
       */
  -   public void testPurgeRelationsExternal()
  +   public void testPurgeRelationsAutomaticExternal()
      {
  -// TODO !!!!!!!!
  +      MBeanServer server = MBeanServerFactory.createMBeanServer();
  +      try
  +      {
  +         ObjectName service = createRelationService("test:type=service", server);
  +         createRelationTypeC(service);
  +         createRolesC(server);
  +         RelationSupport support = null;
  +         ObjectName on = null;
  +         Listener listener = new 
Listener(RelationNotification.RELATION_MBEAN_REMOVAL);
  +         boolean result = false;
  +         try
  +         {
  +            support = new RelationSupport("id1", service, server, 
  +                                          "relationTypeC", rolesC);
  +            addRelation(server, service, support, "test:type=support1");
  +            server.addNotificationListener(service, listener, null, null);
  +            RelationService rs = (RelationService) services.get(service);
  +            server.unregisterMBean(new ObjectName("x:relation=c,role=2,bean=1"));
  +            on = new ObjectName("test:type=support1");
  +            result = rs.hasRelation("id1").booleanValue();
  +         }
  +         catch(Exception e)
  +         {
  +            fail(e.toString());
  +         }
  +         assertEquals(false, result);
  +         RelationNotification rn = listener.check(1);
  +         assertEquals(new ArrayList(), rn.getMBeansToUnregister());
  +         assertEquals(on, rn.getObjectName());
  +         assertEquals("id1", rn.getRelationId());
  +         assertEquals("relationTypeC", rn.getRelationTypeName());
  +      }
  +      finally
  +      {
  +         MBeanServerFactory.releaseMBeanServer(server);
  +      }
  +   }
  +
  +   /**
  +    * Test purge Relations Manually
  +    */
  +   public void testPurgeRelationsManuallyExternal()
  +   {
  +      MBeanServer server = MBeanServerFactory.createMBeanServer();
  +      try
  +      {
  +         ObjectName service = createRelationService("test:type=service", server);
  +         createRelationTypeC(service);
  +         createRolesC(server);
  +         RelationSupport support = null;
  +         ObjectName on = null;
  +         Listener listener = new 
Listener(RelationNotification.RELATION_MBEAN_REMOVAL);
  +         boolean result = false;
  +         RelationService rs = null;
  +         try
  +         {
  +            support = new RelationSupport("id1", service, server, 
  +                                          "relationTypeC", rolesC);
  +            addRelation(server, service, support, "test:type=support1");
  +            server.addNotificationListener(service, listener, null, null);
  +            rs = (RelationService) services.get(service);
  +            rs.setPurgeFlag(false);
  +            server.unregisterMBean(new ObjectName("x:relation=c,role=2,bean=1"));
  +            on = new ObjectName("test:type=support1");
  +            result = rs.hasRelation("id1").booleanValue();
  +         }
  +         catch(Exception e)
  +         {
  +            fail(e.toString());
  +         }
  +         assertEquals(true, result);
  +         RelationNotification rn = listener.check(0);
  +
  +         try
  +         {
  +            rs.purgeRelations();
  +            result = rs.hasRelation("id1").booleanValue();
  +         }
  +         catch(Exception e)
  +         {
  +            fail(e.toString());
  +         }
  +         assertEquals(false, result);
  +         rn = listener.check(1);
  +         assertEquals(new ArrayList(), rn.getMBeansToUnregister());
  +         assertEquals(on, rn.getObjectName());
  +         assertEquals("id1", rn.getRelationId());
  +         assertEquals("relationTypeC", rn.getRelationTypeName());
  +      }
  +      finally
  +      {
  +         MBeanServerFactory.releaseMBeanServer(server);
  +      }
      }
   
      /**
  @@ -1359,23 +1451,90 @@
       */
      public void testSetRoleExternal()
      {
  -// TODO !!!!!!!!
  +      MBeanServer server = MBeanServerFactory.createMBeanServer();
  +      try
  +      {
  +         ObjectName service = createRelationService("test:type=service", server);
  +         createRelationTypeC(service);
  +         createRolesC(server);
  +         createRolesCX(server);
  +         RelationSupport support = null;
  +         ObjectName on = null;
  +         Listener listener = new 
Listener(RelationNotification.RELATION_MBEAN_UPDATE);
  +         try
  +         {
  +            support = new RelationSupport("id1", service, server, 
  +                                          "relationTypeC", rolesC);
  +            addRelation(server, service, support, "test:type=support1");
  +            server.addNotificationListener(service, listener, null, null);
  +            RelationService rs = (RelationService) services.get(service);
  +            rs.setRole("id1", roleCX2);
  +            on = new ObjectName("test:type=support1");
  +         }
  +         catch(Exception e)
  +         {
  +            fail(e.toString());
  +         }
  +         RoleList shouldBe = new RoleList();
  +         shouldBe.add(roleC1);
  +         shouldBe.add(roleCX2);
  +         compare(shouldBe, support.retrieveAllRoles());
  +         RelationNotification rn = listener.check(1);
  +         assertEquals(new ArrayList(), rn.getMBeansToUnregister());
  +         assertEquals(roleCX2.getRoleValue(), rn.getNewRoleValue());
  +         assertEquals(on, rn.getObjectName());
  +         assertEquals(roleC2.getRoleValue(), rn.getOldRoleValue());
  +         assertEquals("id1", rn.getRelationId());
  +         assertEquals("relationTypeC", rn.getRelationTypeName());
  +         assertEquals("roleC2", rn.getRoleName());
  +      }
  +      finally
  +      {
  +         MBeanServerFactory.releaseMBeanServer(server);
  +      }
      }
   
      /**
       * Test set roles
  +    * @info.todo different permutations
       */
      public void testSetRolesExternal()
      {
  -// TODO !!!!!!!!
  -   }
  -
  -   /**
  -    * Test set update role map
  -    */
  -   public void testUpdateMap()
  -   {
  -// TODO !!!!!!!!
  +      MBeanServer server = MBeanServerFactory.createMBeanServer();
  +      try
  +      {
  +         ObjectName service = createRelationService("test:type=service", server);
  +         createRelationTypeC(service);
  +         createRolesC(server);
  +         createRolesCX(server);
  +         RelationSupport support = null;
  +         ObjectName on = null;
  +         Listener listener = new 
Listener(RelationNotification.RELATION_MBEAN_UPDATE);
  +         RoleList shouldBe = new RoleList();
  +         shouldBe.add(roleC1);
  +         shouldBe.add(roleCX2);
  +         try
  +         {
  +            support = new RelationSupport("id1", service, server, 
  +                                          "relationTypeC", rolesC);
  +            addRelation(server, service, support, "test:type=support1");
  +            server.addNotificationListener(service, listener, null, null);
  +            RelationService rs = (RelationService) services.get(service);
  +            
  +            rs.setRoles("id1", shouldBe);
  +            on = new ObjectName("test:type=support1");
  +         }
  +         catch(Exception e)
  +         {
  +            fail(e.toString());
  +         }
  +         compare(shouldBe, support.retrieveAllRoles());
  +         RelationNotification rn = listener.check(1);
  +      }
  +      finally
  +      {
  +         MBeanServerFactory.releaseMBeanServer(server);
  +      }
      }
   
      /**
  @@ -1772,7 +1931,7 @@
                                                 Trivial.class, server));
            roleC1Values.add(createRoleValueBean("x:relation=c,role=1,bean=1", 
                                                 Trivial.class, null));
  -         Role roleC1 = new Role("roleC1", roleC1Values);
  +         roleC1 = new Role("roleC1", roleC1Values);
   
            ArrayList roleC2Values = new ArrayList();
            roleC2Values.add(createRoleValueBean("x:relation=c,role=1,bean=1", 
  @@ -1781,7 +1940,7 @@
                                                 Trivial.class, server));
            roleC2Values.add(createRoleValueBean("x:relation=c,role=2,bean=2", 
                                                 Trivial.class, server));
  -         Role roleC2 = new Role("roleC2", roleC2Values);
  +         roleC2 = new Role("roleC2", roleC2Values);
   
            rolesC = new RoleList();
            rolesC.add(roleC1);
  @@ -1817,7 +1976,7 @@
            ArrayList roleCX1Values = new ArrayList();
            roleCX1Values.add(createRoleValueBean("x:relation=c,role=2,bean=1", 
                                                 Trivial.class, null));
  -         Role roleCX1 = new Role("roleC1", roleCX1Values);
  +         roleCX1 = new Role("roleC1", roleCX1Values);
   
            ArrayList roleCX2Values = new ArrayList();
            roleCX2Values.add(createRoleValueBean("x:relation=c,role=1,bean=1", 
  @@ -1828,7 +1987,7 @@
                                                 Trivial.class, server));
            roleCX2Values.add(createRoleValueBean("x:relation=c,role=1,bean=4", 
                                                 Trivial.class, server));
  -         Role roleCX2 = new Role("roleC2", roleCX2Values);
  +         roleCX2 = new Role("roleC2", roleCX2Values);
   
            rolesCX = new RoleList();
            rolesCX.add(roleCX1);
  @@ -1850,6 +2009,24 @@
            createRelationType(relationService, "relationTypeCX", roleInfos );
            for (int i=0; i < roleInfos.length; i++)
               roleInfosCX.put(roleInfos[i].getName(), roleInfos[i]);
  +      }
  +      catch(Exception e)
  +      {
  +         fail(e.toString());
  +      }
  +   }
  +
  +   private void createRolesCZ(MBeanServer server)
  +   {
  +      try
  +      {
  +         ArrayList roleCZ2Values = new ArrayList();
  +         roleCZ2Values.add(createRoleValueBean("x:relation=c,role=1,bean=1", 
  +                                              Trivial.class, null));
  +         roleCZ2 = new Role("roleC2", roleCZ2Values);
  +
  +         rolesCZ = new RoleList();
  +         rolesCZ.add(roleCZ2);
         }
         catch(Exception e)
         {
  
  
  
  1.5       +145 -12   
jmx/src/main/test/compliance/relation/RelationSupportTestCase.java
  
  Index: RelationSupportTestCase.java
  ===================================================================
  RCS file: 
/cvsroot/jboss/jmx/src/main/test/compliance/relation/RelationSupportTestCase.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- RelationSupportTestCase.java      1 Mar 2002 19:25:58 -0000       1.4
  +++ RelationSupportTestCase.java      11 Mar 2002 18:21:32 -0000      1.5
  @@ -11,14 +11,18 @@
   
   import java.util.ArrayList;
   import java.util.HashMap;
  +import java.util.HashSet;
   import java.util.Iterator;
   import java.util.List;
   import java.util.Map;
   
   import javax.management.MBeanServer;
   import javax.management.MBeanServerFactory;
  +import javax.management.Notification;
  +import javax.management.NotificationListener;
   import javax.management.ObjectName;
   
  +import javax.management.relation.RelationNotification;
   import javax.management.relation.RelationService;
   import javax.management.relation.RelationSupport;
   import javax.management.relation.RelationType;
  @@ -50,8 +54,14 @@
     HashMap roleInfosA = new HashMap();
     RoleList rolesB;
     HashMap roleInfosB = new HashMap();
  +  Role roleC1;
  +  Role roleC2;
     RoleList rolesC;
     HashMap roleInfosC = new HashMap();
  +  Role roleCX1;
  +  Role roleCX2;
  +  RoleList rolesCX;
  +  HashMap roleInfosCX = new HashMap();
   
     // Constructor ---------------------------------------------------------------
   
  @@ -305,14 +315,6 @@
     }
   
     /**
  -   * Test the handle unregistration
  -   */
  -  public void testHandleMBeanUnregistration()
  -  {
  -// TODO !!!!!!!!
  -  }
  -
  -  /**
      * Test relation service flag
      */
     public void testRelationServiceFlag()
  @@ -388,15 +390,88 @@
      */
     public void testSetRole()
     {
  -// TODO !!!!!!!!
  +      MBeanServer server = MBeanServerFactory.createMBeanServer();
  +      try
  +      {
  +         ObjectName service = createRelationService("test:type=service", server);
  +         createRelationTypeC(service);
  +         createRolesC(server);
  +         createRolesCX(server);
  +         RelationSupport support = null;
  +         ObjectName on = null;
  +         Listener listener = new 
Listener(RelationNotification.RELATION_MBEAN_UPDATE);
  +         try
  +         {
  +            support = new RelationSupport("id1", service, server, 
  +                                          "relationTypeC", rolesC);
  +            addRelation(server, service, support, "test:type=support1");
  +            server.addNotificationListener(service, listener, null, null);
  +            support.setRole(roleCX2);
  +            on = new ObjectName("test:type=support1");
  +         }
  +         catch(Exception e)
  +         {
  +            fail(e.toString());
  +         }
  +         RoleList shouldBe = new RoleList();
  +         shouldBe.add(roleC1);
  +         shouldBe.add(roleCX2);
  +         compare(shouldBe, support.retrieveAllRoles());
  +         RelationNotification rn = listener.check(1);
  +         assertEquals(new ArrayList(), rn.getMBeansToUnregister());
  +         assertEquals(roleCX2.getRoleValue(), rn.getNewRoleValue());
  +         assertEquals(on, rn.getObjectName());
  +         assertEquals(roleC2.getRoleValue(), rn.getOldRoleValue());
  +         assertEquals("id1", rn.getRelationId());
  +         assertEquals("relationTypeC", rn.getRelationTypeName());
  +         assertEquals("roleC2", rn.getRoleName());
  +      }
  +      finally
  +      {
  +         MBeanServerFactory.releaseMBeanServer(server);
  +      }
     }
   
     /**
      * Test set roles
  +   * @info.todo different permutations
      */
     public void testSetRoles()
     {
  -// TODO !!!!!!!!
  +      MBeanServer server = MBeanServerFactory.createMBeanServer();
  +      try
  +      {
  +         ObjectName service = createRelationService("test:type=service", server);
  +         createRelationTypeC(service);
  +         createRolesC(server);
  +         createRolesCX(server);
  +         RelationSupport support = null;
  +         ObjectName on = null;
  +         Listener listener = new 
Listener(RelationNotification.RELATION_MBEAN_UPDATE);
  +         RoleList shouldBe = new RoleList();
  +         shouldBe.add(roleC1);
  +         shouldBe.add(roleCX2);
  +         try
  +         {
  +            support = new RelationSupport("id1", service, server, 
  +                                          "relationTypeC", rolesC);
  +            addRelation(server, service, support, "test:type=support1");
  +            server.addNotificationListener(service, listener, null, null);
  +            
  +            support.setRoles(shouldBe);
  +            on = new ObjectName("test:type=support1");
  +         }
  +         catch(Exception e)
  +         {
  +            fail(e.toString());
  +         }
  +         compare(shouldBe, support.retrieveAllRoles());
  +         RelationNotification rn = listener.check(1);
  +      }
  +      finally
  +      {
  +         MBeanServerFactory.releaseMBeanServer(server);
  +      }
     }
   
     /**
  @@ -798,7 +873,7 @@
                                               Trivial.class, server));
         roleC1Values.add(createRoleValueBean("x:relation=c,role=1,bean=1", 
                                               Trivial.class, null));
  -      Role roleC1 = new Role("roleC1", roleC1Values);
  +      roleC1 = new Role("roleC1", roleC1Values);
   
         ArrayList roleC2Values = new ArrayList();
         roleC2Values.add(createRoleValueBean("x:relation=c,role=1,bean=1", 
  @@ -807,7 +882,7 @@
                                               Trivial.class, server));
         roleC2Values.add(createRoleValueBean("x:relation=c,role=2,bean=2", 
                                               Trivial.class, server));
  -      Role roleC2 = new Role("roleC2", roleC2Values);
  +      roleC2 = new Role("roleC2", roleC2Values);
   
         rolesC = new RoleList();
         rolesC.add(roleC1);
  @@ -835,4 +910,62 @@
         fail(e.toString());
       }
     }
  +
  +   private void createRolesCX(MBeanServer server)
  +   {
  +      try
  +      {
  +         ArrayList roleCX1Values = new ArrayList();
  +         roleCX1Values.add(createRoleValueBean("x:relation=c,role=2,bean=1", 
  +                                              Trivial.class, null));
  +         roleCX1 = new Role("roleC1", roleCX1Values);
  +
  +         ArrayList roleCX2Values = new ArrayList();
  +         roleCX2Values.add(createRoleValueBean("x:relation=c,role=1,bean=1", 
  +                                              Trivial.class, null));
  +         roleCX2Values.add(createRoleValueBean("x:relation=c,role=1,bean=2", 
  +                                              Trivial.class, server));
  +         roleCX2Values.add(createRoleValueBean("x:relation=c,role=1,bean=3", 
  +                                              Trivial.class, server));
  +         roleCX2Values.add(createRoleValueBean("x:relation=c,role=1,bean=4", 
  +                                              Trivial.class, server));
  +         roleCX2 = new Role("roleC2", roleCX2Values);
  +
  +         rolesCX = new RoleList();
  +         rolesCX.add(roleCX1);
  +         rolesCX.add(roleCX2);
  +      }
  +      catch(Exception e)
  +      {
  +         fail(e.toString());
  +      }
  +   }
  +
  +   private class Listener
  +      implements NotificationListener
  +   {
  +      String type;
  +      HashSet notifications = new HashSet();
  +      public Listener(String type)
  +      {
  +         this.type = type;
  +      }
  +      public void handleNotification(Notification n, Object h)
  +      {
  +         notifications.add(n);
  +      }
  +      public RelationNotification check(int size)
  +      {
  +         RelationNotification result = null;
  +         assertEquals(size, notifications.size());
  +         Iterator iterator = notifications.iterator();
  +         while (iterator.hasNext())
  +         {
  +            RelationNotification rn = (RelationNotification) iterator.next();
  +            assertEquals(type, rn.getType());
  +            result = rn;
  +         }
  +         return result;
  +      }
  +   }
   }
  
  
  

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

Reply via email to