Insere produto com dados válidos quando logado como admin
@Test
public void insertShouldReturnProductDtoWhenValidDataAndLoggedAsAdmin() throws Exception {
//converter o DTO para JSON
String jsonBody = objectMapper.writeValueAsString(productDTO);
ResultActions result =
mockMvc.perform(post("/products")
// como usamos token, colocamos a header
.header("Authorization", "Bearer " + adminToken)
.content(jsonBody)
.contentType(MediaType.APPLICATION_JSON)
.accept(MediaType.APPLICATION_JSON))
.andDo(MockMvcResultHandlers.print());
result.andExpect(status().isCreated());
result.andExpect(jsonPath("$.id").value(26L));
result.andExpect(jsonPath("$.name").value("Console Playstation 5"));
result.andExpect(jsonPath("$.description").value("Lorem ipsum, dolor sit amet consectetur adipisicing elit."));
result.andExpect(jsonPath("$.price").value(3999.90));
result.andExpect(jsonPath("$.imgUrl").value("https://raw.githubusercontent.com/devsuperior/dscatalog-resources/master/backend/img/1-big.jpg"));
//acessando a lista de categorias do JSON
result.andExpect(jsonPath("$.categories[0].id").value(2L));
}
AnteriorProblema 2: Inserir produtoPróximo422 e mensagens customizadas com dados inválidos quando logado como admin
Atualizado