Problema 1: Consultar produto por ID
Implemente o teste de API usando o RestAssured para consultar produto com id existente. Para o teste, você deve fazer uma requisição do tipo GET no endpoint /products/{id} onde id = 2, conforme ilustrado na Figura 1a (abaixo). Em seguida, você deverá verificar se o status da requisição corresponde a 200 (Ok), obter o corpo da resposta e verificar se os campos id, name, imgUrl, price, categories.id e categories.name correspondem aos valores apresentados na Figura 1b (abaixo).

JSON
{
"id": 2,
"name": "Smart TV",
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore",
"price": 2190.0,
"imgUrl": "https://raw.githubusercontent.com/devsuperior/dscatalog-resources/master/backend/img/2-big.jpg",
"categories": [
{
"id": 3,
"name": "Computadores"
},
{
"id": 2,
"name": "Eletrônicos"
}
]
}
ID Existe
@Test
public void findByIdShouldReturnProductWhenIdExists() {
existingId = 2L;
given()
.get("/products/{id}", existingId)
.then()
.statusCode(200)
.assertThat().body("id", is(2))
//para comparar String, usamos equalTo
.assertThat().body("name", equalTo("Smart TV"))
.assertThat().body("imgUrl", equalTo("https://raw.githubusercontent.com/devsuperior/dscatalog-resources/master/backend/img/2-big.jpg"))
.assertThat().body("price", is(2190.0F))
//para verificarmos arrays
.assertThat().body("categories.id", hasItems(3, 2))
.assertThat().body("categories.name", hasItems("Eletrônicos", "Computadores"));
}
Atualizado