Как проверить формат ключа по ответу json в тестах весеннего облачного контракта?
Допустим, у меня есть ответ json, который выглядит следующим образом:
{
"products": {
"0": {
"type": "food",
"name": "pizza"
},
"9": {
"type": "drink",
"name": "wine"
}
}
}
И тест контракта выглядит следующим образом:
import org.springframework.cloud.contract.spec.Contract
Contract.make {
description 'Dynamic key example'
request {
method 'GET'
urlPath '/products/all'
}
response {
status 200
headers {
contentType applicationJsonUtf8()
}
body(
[
"products": [
"0": [
"type": $(anyOf("food", "drinks")),
"name" : $(nonBlank()),
]
]
]
)
}
}
Идентификаторы продукта ("0"
и "9"
) могут принимать любые положительные целые значения.Я хочу проверить идентификаторы продукта в тестовом контракте.Но если я заменю "0"
в контракте на $(consumer("0"), producer(regex("^\\d*\$")))
, произойдет сбой.
Есть идеи, как решить эту проблему?Возможно ли это вообще?
PS У меня нет возможности изменить протокол