Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

AssertionFailedError: expected: "{"id":null, ... - but was: "{"id":0, ...

Help!

MockHttpServletResponse:
           Status = 201
    Error message = null
          Headers = [Vary:"Origin", "Access-Control-Request-Method", "Access-Control-Request-Headers", Location:"http://localhost/medicos/0", Content-Type:"application/json", X-Content-Type-Options:"nosniff", X-XSS-Protection:"0", Cache-Control:"no-cache, no-store, max-age=0, must-revalidate", Pragma:"no-cache", Expires:"0", X-Frame-Options:"DENY"]
     Content type = application/json
             Body = {"id":0,"nome":"Medico","crm":"123456","especialidade":"CARDIOLOGIA","email":"medico@voll.med","telefone":"12344432121","endereco":{"logradouro":"rua xpto","numero":"123","bairro":"bairro","complemento":null,"cidade":"Brasilia","uf":"DF","cep":"00000000"}}
    Forwarded URL = null
   Redirected URL = http://localhost/medicos/0
          Cookies = []

org.opentest4j.AssertionFailedError: 
expected: "{"id":null,"nome":"Medico","crm":"123456","especialidade":"CARDIOLOGIA","email":"medico@voll.med","telefone":"12344432121","endereco":{"logradouro":"rua xpto","numero":"123","bairro":"bairro","complemento":null,"cidade":"Brasilia","uf":"DF","cep":"00000000"}}"
 but was: "{"id":0,"nome":"Medico","crm":"123456","especialidade":"CARDIOLOGIA","email":"medico@voll.med","telefone":"12344432121","endereco":{"logradouro":"rua xpto","numero":"123","bairro":"bairro","complemento":null,"cidade":"Brasilia","uf":"DF","cep":"00000000"}}"
Expected :"{"id":null,"nome":"Medico","crm":"123456","especialidade":"CARDIOLOGIA","email":"medico@voll.med","telefone":"12344432121","endereco":{"logradouro":"rua xpto","numero":"123","bairro":"bairro","complemento":null,"cidade":"Brasilia","uf":"DF","cep":"0 ...

Actual   :"{"id":0,"nome":"Medico","crm":"123456","especialidade":"CARDIOLOGIA","email":"medico@voll.med","telefone":"12344432121","endereco":{"logradouro":"rua xpto","numero":"123","bairro":"bairro","complemento":null,"cidade":"Brasilia","uf":"DF","cep":"0000 ...
    @Test
    @DisplayName("Devolver HTTP 200 para infos VÁLIDAS")
    @WithMockUser
    void cadastroMedicos_cenario2() throws Exception {

        var dadosCadastro = new DadosCadastroMedico(
                "Medico",
                "123456",
                Especialidade.CARDIOLOGIA,
                "12344432121",
                "medico@voll.med",
                dadosEndereco());

        when(repository.save(any())).thenReturn(new Medico(dadosCadastro));

        var response = mvc.perform(post("/medicos")
                        .contentType(MediaType.APPLICATION_JSON)
                        .content(dadosCadastroMedicoJson.write(dadosCadastro).getJson()))
                     .andReturn().getResponse();

        var detalhamentoMedico = new DetalhamentoMedico(
                null,
                dadosCadastro.nome(),
                dadosCadastro.crm(),
                dadosCadastro.especialidade(),
                dadosCadastro.email(),
                dadosCadastro.telefone(),
                new Endereco(dadosCadastro.endereco()));

        var jsonEsperado = dadosDetalhamentoMedicoJson.write(detalhamentoMedico).getJson();

        assertThat(response.getStatus()).isEqualTo(HttpStatus.CREATED.value());
        assertThat(response.getContentAsString()).isEqualTo(jsonEsperado);
    }

    private DadosEndereco dadosEndereco() {
               return new DadosEndereco(
                "rua xpto",
                "123",
                null,
                "bairro",
                "Brasilia",
                "DF",
                "00000000");
            }
        }
2 respostas
solução!

Oi!

Provavelmente na classe Medico, ou em algum DTO de médico, o atribuito id foi declarado como long (primitivo) ao invés de Long (classe)

Obrigada! Foi na entidade. Agora deu certo =)