Implemente os testes de API usando MockMvc para deleção de produto (método DELETE do ProductController), considerando os seguintes cenários. Lembre-se de inserir o token no cabeçalho da requisição.
Como o delete é por ID, não precisamos passar o ProductDTO no corpo. Portanto, não precisa usar o jsonBody e o ".content e contentType".
deleta produto existente quando logado como admin
@TestpublicvoiddeleteShouldDoNothingWhenLoggedAsAdminAndProductExists() throws Exception {ResultActions result =mockMvc.perform(delete("/products/{id}", existingId).header("Authorization","Bearer "+ adminToken).accept(MediaType.APPLICATION_JSON));result.andExpect(status().isNoContent()); }
404 para produto inexistente quando logado como admin
@TestpublicvoiddeleteShouldReturnNotFoundWhenLoggedAsAdminAndProductDoesnotExists() throws Exception {ResultActions result =mockMvc.perform(delete("/products/{id}", nonExistingId).header("Authorization","Bearer "+ adminToken).accept(MediaType.APPLICATION_JSON));result.andExpect(status().isNotFound()); }
400 para produto dependente quando logado como admin
Nesse caso específico, precisamos colocar o @Transactional