2012-06-07 1 views
4

Когда я настраиваю тест с помощью @ApplicationComposer, он не создает SessionContext внутри моих корпоративных компонентов с соответствующими свойствами. Он всегда использует PropertiesLogin независимо от того, что я ввел в конфигурацию.Установить учетные данные пользователя для методов тестирования в тесте junit с помощью OpenEJB @ApplicationComposer

Я ВСЕГДА получаю

javax.ejb.EJBException: User not found for login guest 

Exception. Вот мой тестовый класс junit и пример bean.

@RunWith(ApplicationComposer.class) 
public class OpenEJBTest { 
    @EJB 
    UserUtil uu; 

    @Configuration 
    public Properties properties() { 
    Properties p=new Properties(); 
    p.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.client.LocalInitialContextFactory"); 
    p.put(Context.SECURITY_PRINCIPAL, "test"); 
    p.put(Context.SECURITY_CREDENTIALS, "test"); 
    p.put("openejb.authentication.realmName", "mylogmodule"); 
    return p; 
    } 
    @Test 
    public void testSth() { 
    uu.getUserlogin(); 
    } 

}

@Stateless 
public class UserUtilBean implements UserUtil { 
    @Resource 
    private SessionContext ctx; 

    public String getUserLogin() { 
     return ctx.getCallerPrincipal().getName(); 
    } 
} 

Я попытался с помощью пользовательских LogModule (mylogmodule определено в login.config), модуль по умолчанию (PropertiesLogin), начиная InitialContext со свойствами внутри метода испытаний, но без успеха. Спасибо за любые предложения.

ответ

Смежные вопросы