def jsonString="""
{
"prodS": {
"langTrans": [
{
"Id": "11",
"lang": "EN"
},
{
"Id": "11",
"lang": "FR"
},
{
"Id": "12",
"lang": "EN"
},
{
"Id": "12",
"lang": "FR"
}
],
"rates": [
{
"Id": "11",
"rate": 100
},
{
"Id": "12",
"rate": 200
}
]
}
}"""
def expectedLanguages = ['EN', 'FR']
def json = new groovy.json.JsonSlurper().parseText(jsonString)
println "Rate Ids are $json.prodS.rates.Id"
json.prodS.rates.Id.collect { id ->
def actualLanguages = json.prodS.langTrans.findAll {it.Id == id}*.lang?.sort()
println "${actualLanguages} found for $id under langTrans"
assert expectedLanguages
== actualLanguages
, "Not matching languages for Id ${id}" }
ZGVmIGpzb25TdHJpbmc9IiIiCnsKICAicHJvZFMiOiB7CiAgICAibGFuZ1RyYW5zIjogWwogICAgICB7CiAgICAgICAgIklkIjogIjExIiwKICAgICAgICAibGFuZyI6ICJFTiIKICAgICAgfSwKICAgICAgewogICAgICAgICJJZCI6ICIxMSIsCiAgICAgICAgImxhbmciOiAiRlIiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiSWQiOiAiMTIiLAogICAgICAgICJsYW5nIjogIkVOIgogICAgICB9LAogICAgICB7CiAgICAgICAgIklkIjogIjEyIiwKICAgICAgICAibGFuZyI6ICJGUiIKICAgICAgfQogICAgXSwKICAgICJyYXRlcyI6IFsKICAgICAgewogICAgICAgICJJZCI6ICIxMSIsCiAgICAgICAgInJhdGUiOiAxMDAKICAgICAgfSwKICAgICAgewogICAgICAgICJJZCI6ICIxMiIsCiAgICAgICAgInJhdGUiOiAyMDAKICAgICAgfQogICAgXQogIH0KfSIiIgpkZWYgZXhwZWN0ZWRMYW5ndWFnZXMgPSBbJ0VOJywgJ0ZSJ10KZGVmIGpzb24gPSBuZXcgZ3Jvb3Z5Lmpzb24uSnNvblNsdXJwZXIoKS5wYXJzZVRleHQoanNvblN0cmluZykKcHJpbnRsbiAiUmF0ZSBJZHMgYXJlICRqc29uLnByb2RTLnJhdGVzLklkIgpqc29uLnByb2RTLnJhdGVzLklkLmNvbGxlY3QgeyBpZCAtPiAgCiAgIGRlZiBhY3R1YWxMYW5ndWFnZXMgPSBqc29uLnByb2RTLmxhbmdUcmFucy5maW5kQWxsIHtpdC5JZCA9PSBpZH0qLmxhbmc/LnNvcnQoKQogICBwcmludGxuICIke2FjdHVhbExhbmd1YWdlc30gZm91bmQgZm9yICRpZCB1bmRlciBsYW5nVHJhbnMiCiAgIGFzc2VydCBleHBlY3RlZExhbmd1YWdlcyA9PSBhY3R1YWxMYW5ndWFnZXMsICJOb3QgbWF0Y2hpbmcgbGFuZ3VhZ2VzIGZvciBJZCAke2lkfSIgCn0=