Estou com problemas para criar um mock para testar o método que segue no print destacado, depois que eu recebo os atributos, eu não consigo enviar o password (null), para eu validar o cenário de sucesso. Como que eu faço para ajustar no código essa configuração?
Segue o trecho do código que eu criei para testar:
@Test
@DisplayName("Deveria devolver código http 200, quando as informações estiverem válidas")
@WithMockUser
void efetuateLoginCenario2() throws Exception {
var dadosAutenticacao = new DadosAutenticacao("user.test@plano.saude", "12345");
var dadosToken = new DadosToken("$2a$12$1gu8/Allz2imTogT3O75ne/UArKM8UExUnhHRy4jRF2107qE6ZwSy");
var response = mvc
.perform(
post("/login")
.contentType(MediaType.APPLICATION_JSON)
.content(dadosAutenticacaoJson.write(dadosAutenticacao).getJson())
)
.andReturn().getResponse();
assertThat(response.getStatus()).isEqualTo(HttpStatus.OK.value());
var jsonRetorno = dadosTokenJson.write(dadosToken).getJson();
assertThat(response.getContentAsString()).isEqualTo(jsonRetorno);
}
Entendo que dessa forma a classe TokenService, como aprendemos no curso, não vai fazer o tratamento do token, seguindo as configurações que foram feitas. Porém, se eu criar o mock abaixo, ele espera um valor, que não consigo passar qual é e aí aumentou a minha dúvida na hora de testar...
when(tokenService.generateToken(any())).thenReturn(String.valueOf(dadosAutenticacao));
Poderiam me ajudar, por favor?