0 Replies Latest reply on Dec 22, 2008 4:34 PM by nbhatia.bhatian.comcast.net

    SeamTest not persisting User entity

    nbhatia.bhatian.comcast.net

      I am testing the following component using SeamTest:


      @Name("createUserService")
      @AutoCreate
      public class CreateUserService {
          @In private IdentityManager identityManager;
      
          public void createUser(
                  final String username,
                  final String password,
                  final String role) {
              
              new RunAsOperation() {
                  public void execute() {
                     identityManager.createUser(username, password);
                     identityManager.grantRole(username, role);
                  }         
               }.addRole("admin")
                .run();
          }
      }
      



      Unfortunately, identityManager.grantRole() is failing with the following error:


      org.jboss.seam.security.management.NoSuchUserException: Could not grant role, no such user 'jdoe'
           at org.jboss.seam.security.management.JpaIdentityStore.grantRole(JpaIdentityStore.java:277)
           at org.jboss.seam.security.management.IdentityManager.grantRole(IdentityManager.java:134)
           at org.archfirst.bullsfirst.domain.security.CreateUserService$1.execute(CreateUserService.java:45)
           at org.jboss.seam.security.Identity.runAs(Identity.java:734)
           at org.jboss.seam.security.RunAsOperation.run(RunAsOperation.java:84)
           at myApp.CreateUserService.createUser(CreateUserService.java:42)
      



      Since the component is working perfectly well in the real app, can someone suggest what might be going wrong here? Is persistence not working in the test environment? I am using the same persistence.xml in test and app (using HSQL). I was seeing a warning earlier in the test environment about not having a persistent-permission-resolver which I cleared by putting the following in components.xml (in the test environment):


      <security:persistent-permission-resolver permission-store="#{jpaPermissionStore}"/>
      



      Still no luck!