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