Seien Sie Versichert: extrahieren Wert aus der Antwort Liste

Habe ich eine Liste zurückgegeben als Antwort. Ich müssen zu bekommen ein Element aus der Liste mit Produkt.name und tariffPlan.name.

    [
  {
    "id": 123,
    "product": {
      "id": 1,
      "code": "credit",
      "name": "Credit"
    },
    "tariffPlan": {
      "id": 1,
      "code": "gold",
      "name": "Gold"
    }
  },
  {
    "id": 234,
    "product": {
      "id": 2,
      "code": "debit",
      "name": "Debit"
    },
    "tariffPlan": {
      "id": 1,
      "code": "gold",
      "name": "Gold"
    }
  }
]

Benutze ich Java8. Hier ist meine Methode. Ich habe die Liste der Card.class Elemente. Und dann muss ich einzelne Artikel aus der Liste mit angegeben "Produkt.name" und "tariffPlan.Namen".

public List<Card> getCardId(String productName, String tariffPlanName) {
    return given()
        .param("product.name", productName)
        .param("tariffPlan.name", tariffPlanName)
        .when().get("/").then()
        .extract().jsonPath().getList("", Card.class);
  }

Ist es möglich, es zu tun mit restAssured? Vielleicht verwenden .param-Methode wie in meinem Beispiel? Aber in meinem Beispiel .param-Methode wird ignoriert. Danke für Eure Ideen.

UPD. Meine Entscheidung ist:

 public Card getCard(String productName, String tariffPlanName) {
    List<Card> cardList = given()
        .when().get("/").then()
        .extract().jsonPath().getList("", Card.class);

    return cardList.stream()
        .filter(card -> card.product.name.equals(productName))
        .filter(card -> card.tariffPlan.name.equals(tariffPlanName))
        .findFirst()
        .get();
  }
Ich Java8 verwendet labdas. Aktualisierte Frage.

InformationsquelleAutor | 2017-07-31

Schreibe einen Kommentar