У меня проблемы с выяснением того, как представлять массивы со структурно различными объектами в массиве в договорных договорах.
С pact-spec-v3
Также необходимо определить, должны ли
в сочетании с логическим И (все совпадения должны совпадать) или ИЛИ (как минимум
один матчер должен совпадать). И должен быть по умолчанию, но есть
случаи, когда ИЛИ имеет смысл
Может ли это быть использовано для 'ИЛИ' двух различных типов объектов?
Это ответ, который я пытаюсь смоделировать с помощью pact-jvm DSL, массив suggestions
содержит два объекта разных типов, '1' и '3', имеющих разные схемы -
{
"suggestions": [
{
"display_name": "Potato",
"type": 1,
"keyword": "Potato",
"category_l1": {
"icon_image_url": "XXXXX",
"id": 1489,
"name": "Potato"
}
},
{
"type": 3,
"suggestion": {
"display_name": "New Potato (Aloo)",
"name": "New Potato"
}
}
]
}
Код, который у меня пока есть:
private DslPart getBody() {
return new PactDslJsonBody()
.eachLike("suggestions", 1)
.stringType("display_name")
.integerType("type")
.stringType("keyword")
.object("category_l1")
.stringType("icon_image_url")
.stringType("name")
.integerType("id")
.closeObject()
.closeObject()
.closeArray();
}