public Result testNumberOfMBeanLessThanNeed() throws Exception { MBeanServer server = MBeanServerFactory.createMBeanServer(); ObjectName unitName = new ObjectName("a:b=c"); server.registerMBean(new Unit(), unitName); RelationService rService = new RelationService(true); server.registerMBean(rService, new ObjectName("a:b=d")); RoleInfo[] rInfo = { new RoleInfo("role", classPath) }; rService.createRelationType("relationType", rInfo); RoleList unitRoles = new RoleList(); /* The Number of MBeans is less than default (1) */ unitRoles.add(new Role("role", new ArrayList())); try { rService.createRelation("relation", "relationType", unitRoles); return failed(""); } catch (InvalidRoleValueException e) { return passed(); } catch (Throwable t) { return failed(t.toString()); } }
public Result testMBeanNotRegistered() throws Exception { MBeanServer server = MBeanServerFactory.createMBeanServer(); ObjectName unitName = new ObjectName("a:b=c"); RelationService rService = new RelationService(true); server.registerMBean(rService, new ObjectName("a:b=d")); RoleInfo[] rInfo = { new RoleInfo("role", classPath) }; rService.createRelationType("relationType", rInfo); RoleList unitRoles = new RoleList(); /* Referenced MBean hasn't registered */ unitRoles.add(new Role("role", Collections.singletonList(unitName))); try { rService.createRelation("relation", "relationType", unitRoles); return failed(""); } catch (InvalidRoleValueException e) { return passed(); } catch (Throwable t) { return failed(t.toString()); } }
public Result testTheSameRoleName() throws Exception { MBeanServer server = MBeanServerFactory.createMBeanServer(); ObjectName unitName = new ObjectName("a:b=c"); ObjectName unitName2 = new ObjectName("a:b=c2"); server.registerMBean(new Unit(), unitName); server.registerMBean(new Unit(), unitName2); RelationService rService = new RelationService(true); server.registerMBean(rService, new ObjectName("a:b=d")); RoleInfo[] rInfo = { new RoleInfo("role", classPath) }; rService.createRelationType("relationType", rInfo); RoleList unitRoles = new RoleList(); /* Add 2 roles with the same name */ unitRoles.add(new Role("role", Collections.singletonList(unitName))); unitRoles.add(new Role("role", Collections.singletonList(unitName2))); try { rService.createRelation("relation", "relationType", unitRoles); return failed(""); } catch (InvalidRoleValueException e) { return passed(); } catch (Throwable t) { return failed(t.toString()); } }
public Result testNumberOfMBeanMoreThanNeed() throws Exception { MBeanServer server = MBeanServerFactory.createMBeanServer(); ObjectName unitName = new ObjectName("a:b=c"); ObjectName unitName2 = new ObjectName("a:b=c2"); server.registerMBean(new Unit(), unitName); server.registerMBean(new Unit(), unitName2); RelationService rService = new RelationService(true); server.registerMBean(rService, new ObjectName("a:b=d")); RoleInfo[] rInfo = { new RoleInfo("role", classPath) }; rService.createRelationType("relationType", rInfo); RoleList unitRoles = new RoleList(); /* The Number of MBeans is more than default (1) */ ArrayList units = new ArrayList(); units.add(unitName); units.add(unitName2); unitRoles.add(new Role("role", units)); try { rService.createRelation("relation", "relationType", unitRoles); return failed(""); } catch (InvalidRoleValueException e) { return passed(); } catch (Throwable t) { return failed(t.toString()); } }
public Result testDifferentTypeMBean() throws Exception { MBeanServer server = MBeanServerFactory.createMBeanServer(); ObjectName unitName = new ObjectName("a:b=c"); /* MBean class is NotUnit */ server.registerMBean(new NotUnit(), unitName); RelationService rService = new RelationService(true); server.registerMBean(rService, new ObjectName("a:b=d")); RoleInfo[] rInfo = { new RoleInfo("role", classPath) }; rService.createRelationType("relationType", rInfo); RoleList unitRoles = new RoleList(); /* Referenced MBean hasn't registered */ unitRoles.add(new Role("role", Collections.singletonList(unitName))); try { rService.createRelation("relation", "relationType", unitRoles); return failed(""); } catch (InvalidRoleValueException e) { return passed(); } catch (Throwable t) { return failed(t.toString()); } }
public Result testExistenceAfterException() throws Exception { MBeanServer server = MBeanServerFactory.createMBeanServer(); ObjectName unitName = new ObjectName("a:b=c"); server.registerMBean(new Unit(), unitName); RelationService rService = new RelationService(true); server.registerMBean(rService, new ObjectName("a:b=d")); RoleInfo[] rInfo = { new RoleInfo("role", classPath), new RoleInfo("another role", classPath) }; rService.createRelationType("relationType", rInfo); RoleList unitRoles = new RoleList(); /* * "anotherRole is incorrect - the number of MBeans is less than * default" */ unitRoles.add(new Role("role", Collections.singletonList(unitName))); unitRoles.add(new Role("another role", new ArrayList())); try { rService.createRelation("relation", "relationType", unitRoles); System.out.println("existenceAfterExceptions test failed"); } catch (InvalidRoleValueException e) { /* this exception should be caught */ } catch (Throwable t) { System.out.println("existenceAfterExceptions test failed: " + t.toString()); } /* now verify is relation exists */ if (!rService.getAllRelationIds().contains("relation")) { return passed(); } return failed(""); }
public SimpleRelationTestSupport(String relationId, ObjectName relationServiceName, String relationTypeName, RoleList roleList) throws InvalidRoleValueException, IllegalArgumentException { super(relationId, relationServiceName, relationTypeName, roleList); }
void unregisterMBean(ObjectName mBeanName, String roleName) throws RoleNotFoundException, InvalidRoleValueException, RelationServiceNotRegisteredException, RelationTypeNotFoundException, RelationNotFoundException, IllegalArgumentException;