Fala pessoal,
Como faço para nos meus testes verificar as minhas regras de validação do Hibernate.
Por exemplo:
Eu tenho uma classe com as seguintes validações:
@Component
@SessionScoped
public class UserWeb {
private User logged;
@NotNull(message="Usuário precisa ser preenchido.")
private String userName;
}
Eu possuo uma action de um controller que valida o atributo userName:
@Post("/Administrador")
public void login(final UserWeb user) throws Exception
{
User loaded = null;
this.validator.validate(user);
this.validator.onErrorUsePageOf(this).show();
userWeb.login(loaded);
result.redirectTo(HomeController.class).show();
}
E no meu teste eu queria validar quando passo branco para o user name.
@Test
public void testLoginInWebPageWithUserBlankUserNameReturnValidation() throws Exception
{
try{
//Assert
LoginController mockLoginController = mock(LoginController.class);
when(result.redirectTo(LoginController.class)).thenReturn(mockLoginController);
UserWeb userWeb = new UserWeb("", "senha");
LoginController login = new LoginController(result, validator, userWeb, users);
//Act
login.login(userWeb);
}
catch(Exception ex)
{
ValidationException ve = (ValidationException) ex;
List<Message> errors = ve.getErrors();
for(Message error : errors)
{
System.out.println(error.getMessage());
}
//Assert
assertTrue(errors.size() > 0);
}
}
O meu erro não retorna nenhuma mensagem de erro e deveria retornar o erro de validação do Hibernate.
Como eu faço isso?
Obrigado pela ajuda,
Rodrigo Morais
