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