Я пытаюсь использовать весенний облачный контракт. Я пишу спецификацию тела JSON, и мне нужно, чтобы свойство Date было необязательным. Когда я указываю в groovy dsl:
"processingDate": $(consumer(optional(anyDate())), producer(anyDate())),
это не удается:
Exception in thread "main" Assertion failed:
assert testSide ==~ Pattern.compile(stubSide.optionalPattern())
| | | | |
| false | | (org.springframework.cloud.contract.spec.internal.ClientDslProperty(DslProperty(clientValue:(\d\d\d\d)-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01]), serverValue:2016-06-16)))?
| | (org.springframework.cloud.contract.spec.internal.ClientDslProperty(DslProperty(clientValue:(\d\d\d\d)-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01]), serverValue:2016-06-16)))?
| (org.springframework.cloud.contract.spec.internal.ClientDslProperty(DslProperty(clientValue:(\d\d\d\d)-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01]), serverValue:2016-06-16)))?
org.springframework.cloud.contract.spec.internal.ClientDslProperty(DslProperty(clientValue:(\d\d\d\d)-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01]), serverValue:2011-01-11))
Однако он работает при использовании optional вместе с регулярным выражением:
"processingDate": $(consumer(optional(regex(isoDate()))), producer(LocalDateTime.now().format(DateTimeFormatter.ISO_DATE))),
но, очевидно, я не хочу использовать такое обходное решение для каждого необязательного поля.
Спасибо!
groovy
файлом контракта? - person Yogendra Mishra   schedule 14.07.2018