diff --git a/specs/spring-cloud-contract-spec-kotlin/src/main/kotlin/org/springframework/cloud/contract/spec/internal/InputDsl.kt b/specs/spring-cloud-contract-spec-kotlin/src/main/kotlin/org/springframework/cloud/contract/spec/internal/InputDsl.kt index d1423d95da..24473090f3 100644 --- a/specs/spring-cloud-contract-spec-kotlin/src/main/kotlin/org/springframework/cloud/contract/spec/internal/InputDsl.kt +++ b/specs/spring-cloud-contract-spec-kotlin/src/main/kotlin/org/springframework/cloud/contract/spec/internal/InputDsl.kt @@ -22,11 +22,13 @@ package org.springframework.cloud.contract.spec.internal @ContractDslMarker class InputDsl : CommonDsl(), RegexCreatingProperty { + private val delegate = Input() + var messageFrom: DslProperty? = null - var triggeredBy: ExecutionProperty? = null + var triggeredBy: String? = null var headers: Headers? = null var messageBody: Input.BodyType? = null - var assertThat: ExecutionProperty? = null + var assertThat: String? = null var bodyMatchers: BodyMatchers? = null fun messageFrom(messageFrom: String) { @@ -37,10 +39,6 @@ class InputDsl : CommonDsl(), RegexCreatingProperty { this.headers = HeadersDsl().apply(headers).get() } - fun triggeredBy(triggeredBy: String) { - this.triggeredBy = ExecutionProperty(triggeredBy) - } - fun messageBody(vararg pairs: Pair) { this.messageBody = Input.BodyType(pairs.toMap()) } @@ -53,64 +51,60 @@ class InputDsl : CommonDsl(), RegexCreatingProperty { this.messageBody = Input.BodyType(value) } - fun assertThat(assertThat: String) { - this.assertThat = ExecutionProperty(assertThat) - } - fun bodyMatchers(configurer: BodyMatchersDsl.() -> Unit) { - bodyMatchers = BodyMatchersDsl().apply(configurer).get() + this.bodyMatchers = BodyMatchersDsl().apply(configurer).get() } - override fun anyAlphaUnicode(): ClientDslProperty = Input().anyAlphaUnicode() + override fun anyAlphaUnicode(): ClientDslProperty = delegate.anyAlphaUnicode() - override fun anyAlphaNumeric(): ClientDslProperty = Input().anyAlphaNumeric() + override fun anyAlphaNumeric(): ClientDslProperty = delegate.anyAlphaNumeric() - override fun anyNumber(): ClientDslProperty = Input().anyNumber() + override fun anyNumber(): ClientDslProperty = delegate.anyNumber() - override fun anyInteger(): ClientDslProperty = Input().anyInteger() + override fun anyInteger(): ClientDslProperty = delegate.anyInteger() - override fun anyPositiveInt(): ClientDslProperty = Input().anyPositiveInt() + override fun anyPositiveInt(): ClientDslProperty = delegate.anyPositiveInt() - override fun anyDouble(): ClientDslProperty = Input().anyDouble() + override fun anyDouble(): ClientDslProperty = delegate.anyDouble() - override fun anyHex(): ClientDslProperty = Input().anyHex() + override fun anyHex(): ClientDslProperty = delegate.anyHex() - override fun aBoolean(): ClientDslProperty = Input().aBoolean() + override fun aBoolean(): ClientDslProperty = delegate.aBoolean() - override fun anyIpAddress(): ClientDslProperty = Input().anyIpAddress() + override fun anyIpAddress(): ClientDslProperty = delegate.anyIpAddress() - override fun anyHostname(): ClientDslProperty = Input().anyHostname() + override fun anyHostname(): ClientDslProperty = delegate.anyHostname() - override fun anyEmail(): ClientDslProperty = Input().anyEmail() + override fun anyEmail(): ClientDslProperty = delegate.anyEmail() - override fun anyUrl(): ClientDslProperty = Input().anyUrl() + override fun anyUrl(): ClientDslProperty = delegate.anyUrl() - override fun anyHttpsUrl(): ClientDslProperty = Input().anyHttpsUrl() + override fun anyHttpsUrl(): ClientDslProperty = delegate.anyHttpsUrl() - override fun anyUuid(): ClientDslProperty = Input().anyUuid() + override fun anyUuid(): ClientDslProperty = delegate.anyUuid() - override fun anyDate(): ClientDslProperty = Input().anyDate() + override fun anyDate(): ClientDslProperty = delegate.anyDate() - override fun anyDateTime(): ClientDslProperty = Input().anyDateTime() + override fun anyDateTime(): ClientDslProperty = delegate.anyDateTime() - override fun anyTime(): ClientDslProperty = Input().anyTime() + override fun anyTime(): ClientDslProperty = delegate.anyTime() - override fun anyIso8601WithOffset(): ClientDslProperty = Input().anyIso8601WithOffset() + override fun anyIso8601WithOffset(): ClientDslProperty = delegate.anyIso8601WithOffset() - override fun anyNonBlankString(): ClientDslProperty = Input().anyNonBlankString() + override fun anyNonBlankString(): ClientDslProperty = delegate.anyNonBlankString() - override fun anyNonEmptyString(): ClientDslProperty = Input().anyNonEmptyString() + override fun anyNonEmptyString(): ClientDslProperty = delegate.anyNonEmptyString() - override fun anyOf(vararg values: String?): ClientDslProperty = Input().anyOf(*values) + override fun anyOf(vararg values: String?): ClientDslProperty = delegate.anyOf(*values) internal fun get(): Input { val input = Input() - messageFrom?.also { input.messageFrom = messageFrom!! } - triggeredBy?.also { input.triggeredBy = triggeredBy!! } - headers?.also { input.messageHeaders = headers!! } - messageBody?.also { input.messageBody = messageBody!! } - assertThat?.also { input.assertThat = assertThat!! } - bodyMatchers?.also { input.bodyMatchers = bodyMatchers!! } + messageFrom?.also { input.messageFrom = messageFrom } + triggeredBy?.also { input.triggeredBy(triggeredBy) } + headers?.also { input.messageHeaders = headers } + messageBody?.also { input.messageBody = messageBody } + assertThat?.also { input.assertThat(assertThat) } + bodyMatchers?.also { input.bodyMatchers = bodyMatchers } return input } } diff --git a/specs/spring-cloud-contract-spec-kotlin/src/main/kotlin/org/springframework/cloud/contract/spec/internal/OutputMessageDsl.kt b/specs/spring-cloud-contract-spec-kotlin/src/main/kotlin/org/springframework/cloud/contract/spec/internal/OutputMessageDsl.kt index 18545cf76f..ea3621f6ad 100644 --- a/specs/spring-cloud-contract-spec-kotlin/src/main/kotlin/org/springframework/cloud/contract/spec/internal/OutputMessageDsl.kt +++ b/specs/spring-cloud-contract-spec-kotlin/src/main/kotlin/org/springframework/cloud/contract/spec/internal/OutputMessageDsl.kt @@ -22,10 +22,12 @@ package org.springframework.cloud.contract.spec.internal @ContractDslMarker class OutputMessageDsl : CommonDsl(), RegexCreatingProperty { + private val delegate = OutputMessage() + var sentTo: DslProperty? = null var headers: Headers? = null var body: DslProperty? = null - var assertThat: ExecutionProperty? = null + var assertThat: String? = null var bodyMatchers: ResponseBodyMatchers? = null fun sentTo(sentTo: String) { @@ -40,62 +42,58 @@ class OutputMessageDsl : CommonDsl(), RegexCreatingProperty { this.body = DslProperty(body) } - fun assertThat(assertThat: String) { - this.assertThat = ExecutionProperty(assertThat) - } - fun bodyMatchers(configurer: ResponseBodyMatchersDsl.() -> Unit) { - bodyMatchers = ResponseBodyMatchersDsl().apply(configurer).get() + this.bodyMatchers = ResponseBodyMatchersDsl().apply(configurer).get() } - override fun anyAlphaUnicode(): ServerDslProperty = OutputMessage().anyAlphaUnicode() + override fun anyAlphaUnicode(): ServerDslProperty = delegate.anyAlphaUnicode() - override fun anyAlphaNumeric(): ServerDslProperty = OutputMessage().anyAlphaNumeric() + override fun anyAlphaNumeric(): ServerDslProperty = delegate.anyAlphaNumeric() - override fun anyNumber(): ServerDslProperty = OutputMessage().anyNumber() + override fun anyNumber(): ServerDslProperty = delegate.anyNumber() - override fun anyInteger(): ServerDslProperty = OutputMessage().anyInteger() + override fun anyInteger(): ServerDslProperty = delegate.anyInteger() - override fun anyPositiveInt(): ServerDslProperty = OutputMessage().anyPositiveInt() + override fun anyPositiveInt(): ServerDslProperty = delegate.anyPositiveInt() - override fun anyDouble(): ServerDslProperty = OutputMessage().anyDouble() + override fun anyDouble(): ServerDslProperty = delegate.anyDouble() - override fun anyHex(): ServerDslProperty = OutputMessage().anyHex() + override fun anyHex(): ServerDslProperty = delegate.anyHex() - override fun aBoolean(): ServerDslProperty = OutputMessage().aBoolean() + override fun aBoolean(): ServerDslProperty = delegate.aBoolean() - override fun anyIpAddress(): ServerDslProperty = OutputMessage().anyIpAddress() + override fun anyIpAddress(): ServerDslProperty = delegate.anyIpAddress() - override fun anyHostname(): ServerDslProperty = OutputMessage().anyHostname() + override fun anyHostname(): ServerDslProperty = delegate.anyHostname() - override fun anyEmail(): ServerDslProperty = OutputMessage().anyEmail() + override fun anyEmail(): ServerDslProperty = delegate.anyEmail() - override fun anyUrl(): ServerDslProperty = OutputMessage().anyUrl() + override fun anyUrl(): ServerDslProperty = delegate.anyUrl() - override fun anyHttpsUrl(): ServerDslProperty = OutputMessage().anyHttpsUrl() + override fun anyHttpsUrl(): ServerDslProperty = delegate.anyHttpsUrl() - override fun anyUuid(): ServerDslProperty = OutputMessage().anyUuid() + override fun anyUuid(): ServerDslProperty = delegate.anyUuid() - override fun anyDate(): ServerDslProperty = OutputMessage().anyDate() + override fun anyDate(): ServerDslProperty = delegate.anyDate() - override fun anyDateTime(): ServerDslProperty = OutputMessage().anyDateTime() + override fun anyDateTime(): ServerDslProperty = delegate.anyDateTime() - override fun anyTime(): ServerDslProperty = OutputMessage().anyTime() + override fun anyTime(): ServerDslProperty = delegate.anyTime() - override fun anyIso8601WithOffset(): ServerDslProperty = OutputMessage().anyIso8601WithOffset() + override fun anyIso8601WithOffset(): ServerDslProperty = delegate.anyIso8601WithOffset() - override fun anyNonBlankString(): ServerDslProperty = OutputMessage().anyNonBlankString() + override fun anyNonBlankString(): ServerDslProperty = delegate.anyNonBlankString() - override fun anyNonEmptyString(): ServerDslProperty = OutputMessage().anyNonEmptyString() + override fun anyNonEmptyString(): ServerDslProperty = delegate.anyNonEmptyString() - override fun anyOf(vararg values: String?): ServerDslProperty = OutputMessage().anyOf(*values) + override fun anyOf(vararg values: String?): ServerDslProperty = delegate.anyOf(*values) internal fun get(): OutputMessage { val outputMessage = OutputMessage() sentTo?.also { outputMessage.sentTo = sentTo } body?.also { outputMessage.body = body } headers?.also { outputMessage.headers = headers } - assertThat?.also { outputMessage.assertThat = assertThat } + assertThat?.also { outputMessage.assertThat(assertThat) } bodyMatchers?.also { outputMessage.bodyMatchers = bodyMatchers } return outputMessage }