I have a Rest Assured response that contains the following body:
{
"content":[
{
"id":"7db80896",
"secondaryId":"12F9BD",
"version":1,
"details":{
"status":"VALID",
"reason":"Passed validations"
},
"subscriptionStatuses":[
{
"subscriptionId":"b8003508",
"subscriptionName":"Sub_1",
"creator":"Person 1",
"details":{
"status":"ACCEPTED",
"reason":"Passed validations"
}
},
{
"subscriptionId":"b8003509",
"subscriptionName":"Sub_2",
"creator":"Person 1",
"details":{
"status":"ACCEPTED",
"reason":"Passed validations"
}
}
]
},
{
"id":"7db80895",
"secondaryId":"11F9BD",
"version":1,
"details":{
"status":"VALID",
"reason":"Passed validations"
},
"subscriptionStatuses":[
{
"subscriptionId":"b8003509",
"subscriptionName":"Sub_2",
"creator":"Person 2",
"details":{
"status":"ACCEPTED",
"reason":"Passed validations"
}
}
]
}
]
}
I want to verify the status "ACCEPTED" and reason "PASSED VALIDATIONS" which is nested within 2 arrays. I have tried storing the reasons as a list, outlined in this example but I get the following error:
code:
var list: List<Any> = response.jsonPath().getList("reason")
error:
java.lang.IllegalStateException: response.jsonPath().getList("reason") must not be null
Is there a way to do:
for obj in response:
for obj2 in obj.subscriptionStatuses:
assertThat(obj2.status == expected)
assertThat(obj2.reason == expected)