EarMetaData specMetaData = unmarshal();
JBossAppMetaData jbossMetaData = unmarshal("Ear4x_testJBossSecurityRoles.xml", JBossAppMetaData.class, null);
JBossAppMetaData metaData = new JBossAppMetaData();
metaData.merge(jbossMetaData, specMetaData);
SecurityRolesMetaData secRoles = metaData.getSecurityRoles();
assertNotNull(secRoles);
assertEquals(4, secRoles.size());
// VP
SecurityRoleMetaData VP = secRoles.get("VP");
assertNotNull(VP);
assertEquals("VP", VP.getRoleName());
assertNull(VP.getPrincipals());
// Employee
SecurityRoleMetaData Employee = secRoles.get("Employee");
assertNotNull(Employee);
assertEquals("Employee", Employee.getRoleName());
assertEquals(2, Employee.getPrincipals().size());
Set<String> principals = Employee.getPrincipals();
HashSet<String> expected = new HashSet<String>();
expected.add("javajoe");
expected.add("j2ee");
assertEquals(expected, principals);
// Manager
SecurityRoleMetaData Manager = secRoles.get("Manager");
assertNotNull(Manager);
assertEquals("Manager", Manager.getRoleName());
assertEquals(1, Manager.getPrincipals().size());
String[] principalsArray = new String[0];
principalsArray = Manager.getPrincipals().toArray(principalsArray);
assertEquals("javajoe", principalsArray[0]);
// Administrator
SecurityRoleMetaData Administrator = secRoles.get("Administrator");
assertNotNull(Administrator);
assertEquals("Administrator", Administrator.getRoleName());
assertEquals(1, Administrator.getPrincipals().size());
principalsArray = new String[0];
principalsArray = Administrator.getPrincipals().toArray(principalsArray);
assertEquals("j2ee", principalsArray[0]);
Set<String> j2eeRoles = secRoles.getSecurityRoleNamesByPrincipal("j2ee");
HashSet<String> expectedj2eeRoles = new HashSet<String>();
expectedj2eeRoles.add("Employee");
expectedj2eeRoles.add("Administrator");
assertEquals(expectedj2eeRoles, j2eeRoles);
Set<String> javajoeRoles = secRoles.getSecurityRoleNamesByPrincipal("javajoe");
HashSet<String> expectedjavajoeRoles = new HashSet<String>();
expectedjavajoeRoles.add("Employee");
expectedjavajoeRoles.add("Manager");
assertEquals(expectedjavajoeRoles, javajoeRoles);
SecurityRolesMetaData j2eeRolesMD = secRoles.getSecurityRolesByPrincipal("j2ee");
assertEquals(2, j2eeRolesMD.size());
Employee = j2eeRolesMD.get("Employee");
assertNotNull(Employee);
assertEquals("Employee", Employee.getRoleName());
principals = Employee.getPrincipals();
assertEquals(2, principals.size());
assertEquals(expected, principals);