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