public void testSecurityIdentity() throws Exception
{
JBossSessionBeanMetaData original = new JBossSessionBeanMetaData();
original.setEjbName("session");
SecurityIdentityMetaData secId = new SecurityIdentityMetaData();
RunAsMetaData runAs = new RunAsMetaData();
runAs.setRoleName("originalRole");
secId.setRunAs(runAs);
secId.setRunAsPrincipal("originalPrincipal");
secId.setUseCallerIdentity(new EmptyMetaData());
original.setSecurityIdentity(secId);
// override
JBossSessionBeanMetaData override = new JBossSessionBeanMetaData();
override.setEjbName("session");
//runAs = new RunAsMetaData();
//runAs.setRoleName("overrideRole");
//secId.setRunAs(runAs);
secId.setRunAsPrincipal("overridePrincipal");
override.setSecurityIdentity(secId);
// merged
JBossSessionBeanMetaData merged = new JBossSessionBeanMetaData();
merged.merge(override, original);
secId = merged.getSecurityIdentity();
assertNotNull(secId);
runAs = secId.getRunAs();
assertNotNull(runAs);
assertEquals("originalRole", runAs.getRoleName());
assertEquals("overridePrincipal", secId.getRunAsPrincipal());
assertNotNull(secId.getUseCallerIdentity()); // is this right?
}