@Test
 public void testRunAsPrincipal() throws Exception {
   WhoAmI bean = lookupCallerRunAsPrincipal();
   try {
     String actual = bean.getCallerPrincipal();
     Assert.fail("Expected EJBAccessException and it was get identity: " + actual);
   } catch (EJBAccessException e) {
     // good
   }
 }
 @Test
 public void testAnonymous() throws Exception {
   SecurityClient client = SecurityClientFactory.getSecurityClient();
   client.setSimple("user1", "password1");
   client.login();
   try {
     WhoAmI bean = lookupCaller();
     String actual = bean.getCallerPrincipal();
     Assert.assertEquals("anonymous", actual);
   } finally {
     client.logout();
   }
 }
 @Test
 public void testSingletonPostconstructSecurity() throws Exception {
   SecurityClient client = SecurityClientFactory.getSecurityClient();
   client.setSimple("user1", "password1");
   client.login();
   try {
     WhoAmI bean = lookupSingleCallerWithIdentity();
     String actual = bean.getCallerPrincipal();
     Assert.assertEquals("Helloween", actual);
   } finally {
     client.logout();
   }
 }
 @Test
 public void testJackInABox() throws Exception {
   SecurityClient client = SecurityClientFactory.getSecurityClient();
   client.setSimple("user1", "password1");
   client.login();
   try {
     WhoAmI bean = lookupCallerWithIdentity();
     String actual = bean.getCallerPrincipal();
     Assert.assertEquals("jackinabox", actual);
   } finally {
     client.logout();
   }
 }
 @Test
 public void testSingletonPostconstructSecurityNotPropagating() throws Exception {
   SecurityClient client = SecurityClientFactory.getSecurityClient();
   client.setSimple("user1", "password1");
   client.login();
   try {
     WhoAmI bean = lookupSingletonUseBeanWithIdentity(); // To load the singleton
     bean.getCallerPrincipal();
     Assert.fail("Deployment should fail");
   } catch (Exception dex) {
     Throwable t = checkEjbException(dex);
     log.trace(
         "Expected deployment error because the Singleton has nosecurity context per itself",
         dex.getCause());
     Assert.assertThat(t.getMessage(), t.getMessage(), CoreMatchers.containsString("WFLYEJB0364"));
   } finally {
     client.logout();
   }
 }