Comparing json array item against the response which has random order of the json arrary items

This file (getAllDomain.json) has known/valid response but the order of domain_name /domain_code is random which has to compare against api output..

means .. X3 may come first or last and there is no define order.

I was trying to verify each data array element against the response. But its not working.

IS there any way to just verify arrary and all other element other than "data" can be ignored.

* def expected = read('getAllDomain.json')

* def response = 
                """
                    {
                      "status":"SUCCESS",
                      "totalCount":3,
                      "statusCode":"OK",
                      "ResultData":{
                        "data":[
                          {
                            "domain_code":"X3",
                            "domain_name":"BMW"
                          },
                          {
                            "domain_code":"Q5",
                            "domain_name":"AUDI"
                          },
                          {
                            "domain_code":"MDX",
                            "domain_name":"ACURA"
                          }
                        ]
                      }
                    }

                """

And match response.ResultData.data[*] contains any  expected.ResultData.data[0]

Upvotes: 1

Views: 56

Answers (1)

Peter Thomas
Peter Thomas

Reputation: 58058

Here you go. And try to read the docs, it will actually help you:

* def expected =
"""
[
    {
      "domain_code": "MDX",
      "domain_name": "ACURA"
    },
    {
      "domain_code": "X3",
      "domain_name": "BMW"
    },
    {
      "domain_code": "Q5",
      "domain_name": "AUDI"
    }
]
"""
* def response = 
"""
    {
      "status":"SUCCESS",
      "totalCount":3,
      "statusCode":"OK",
      "ResultData":{
        "data":[
          {
            "domain_code":"X3",
            "domain_name":"BMW"
          },
          {
            "domain_code":"Q5",
            "domain_name":"AUDI"
          },
          {
            "domain_code":"MDX",
            "domain_name":"ACURA"
          }
        ]
      }
    }
"""
* match response.ResultData.data contains only expected

Upvotes: 1

Related Questions