diff --git a/specs/spring-cloud-contract-spec-kotlin/src/main/kotlin/org/springframework/cloud/contract/spec/internal/CommonDsl.kt b/specs/spring-cloud-contract-spec-kotlin/src/main/kotlin/org/springframework/cloud/contract/spec/internal/CommonDsl.kt index f1a5a5e6ec..d4e5536533 100644 --- a/specs/spring-cloud-contract-spec-kotlin/src/main/kotlin/org/springframework/cloud/contract/spec/internal/CommonDsl.kt +++ b/specs/spring-cloud-contract-spec-kotlin/src/main/kotlin/org/springframework/cloud/contract/spec/internal/CommonDsl.kt @@ -22,62 +22,68 @@ import java.util.regex.Pattern * @author Tim Ysewyn */ open class CommonDsl { + + /* HELPER FUNCTIONS */ /** * Helper method to provide a better name for the consumer side. * @param clientValue client value * @return client dsl property */ - fun client(clientValue: Any) = ClientDslProperty(clientValue) + fun client(clientValue: Any?) = ClientDslProperty(clientValue) /** * Helper method to provide a better name for the consumer side. * @param clientValue client value * @return client dsl property */ - fun c(clientValue: Any) = ClientDslProperty(clientValue) + fun c(clientValue: Any?) = ClientDslProperty(clientValue) /** * Helper method to provide a better name for the consumer side. * @param clientValue client value * @return client dsl property */ - fun consumer(clientValue: Any) = ClientDslProperty(clientValue) + fun consumer(clientValue: Any?) = ClientDslProperty(clientValue) /** * Helper method to provide a better name for the consumer side. * @param clientValue client value * @return client dsl property */ - fun stub(clientValue: Any) = ClientDslProperty(clientValue) + fun stub(clientValue: Any?) = ClientDslProperty(clientValue) /** * Helper method to provide a better name for the server side. * @param serverValue server value * @return server dsl property */ - fun server(serverValue: Any) = ServerDslProperty(serverValue) + fun server(serverValue: Any?) = ServerDslProperty(serverValue) /** * Helper method to provide a better name for the server side. * @param serverValue server value * @return server dsl property */ - fun p(serverValue: Any) = ServerDslProperty(serverValue) + fun p(serverValue: Any?) = ServerDslProperty(serverValue) /** * Helper method to provide a better name for the server side. * @param serverValue server value * @return server dsl property */ - fun producer(serverValue: Any) = ServerDslProperty(serverValue) + fun producer(serverValue: Any?) = ServerDslProperty(serverValue) /** * Helper method to provide a better name for the server side. * @param serverValue server value * @return server dsl property */ - fun test(serverValue: Any) = ServerDslProperty(serverValue) + fun test(serverValue: Any?) = ServerDslProperty(serverValue) + + fun optional(value: Any?) = OptionalProperty(value) + + fun execute(commandToExecute: String) = ExecutionProperty(commandToExecute) /* REGEX */ diff --git a/specs/spring-cloud-contract-spec-kotlin/src/main/kotlin/org/springframework/cloud/contract/spec/internal/RequestDsl.kt b/specs/spring-cloud-contract-spec-kotlin/src/main/kotlin/org/springframework/cloud/contract/spec/internal/RequestDsl.kt index 6e0877fe34..267d9993b2 100644 --- a/specs/spring-cloud-contract-spec-kotlin/src/main/kotlin/org/springframework/cloud/contract/spec/internal/RequestDsl.kt +++ b/specs/spring-cloud-contract-spec-kotlin/src/main/kotlin/org/springframework/cloud/contract/spec/internal/RequestDsl.kt @@ -17,12 +17,15 @@ package org.springframework.cloud.contract.spec.internal import org.springframework.cloud.contract.spec.toDslProperties +import java.util.regex.Pattern /** * @author Tim Ysewyn */ @ContractDslMarker open class RequestDsl : CommonDsl(), RegexCreatingProperty { + + private val delegate = Request() var method: DslProperty? = null var url: Url? = null @@ -105,71 +108,91 @@ open class RequestDsl : CommonDsl(), RegexCreatingProperty { bodyMatchers = BodyMatchers().apply(block) } - fun value(value: DslProperty): DslProperty = Request().value(value) + /* HELPER FUNCTIONS */ - fun v(value: DslProperty): DslProperty = Request().value(value) + fun value(value: ClientDslProperty) = delegate.value(value) - fun `$`(value: DslProperty): DslProperty = Request().value(value) + fun v(value: ClientDslProperty) = delegate.value(value) - fun value(value: Any): DslProperty = Request().value(value) + fun `$`(value: ClientDslProperty) = delegate.value(value) - fun v(value: Any): DslProperty = Request().value(value) + fun value(value: DslProperty) = delegate.value(value) - fun `$`(value: Any): DslProperty = Request().value(value) + fun v(value: DslProperty) = delegate.value(value) - fun value(client: ClientDslProperty, server: ServerDslProperty): DslProperty = Request().value(client, server) + fun `$`(value: DslProperty) = delegate.value(value) - fun v(client: ClientDslProperty, server: ServerDslProperty): DslProperty = Request().value(client, server) + fun value(value: Pattern) = delegate.value(value) - fun `$`(client: ClientDslProperty, server: ServerDslProperty): DslProperty = Request().value(client, server) + fun v(value: Pattern) = delegate.value(value) - fun value(server: ServerDslProperty, client: ClientDslProperty): DslProperty = Request().value(client, server) + fun `$`(value: Pattern) = delegate.value(value) - fun v(server: ServerDslProperty, client: ClientDslProperty): DslProperty = Request().value(client, server) + fun value(value: RegexProperty) = delegate.value(value) - fun `$`(server: ServerDslProperty, client: ClientDslProperty): DslProperty = Request().value(client, server) + fun v(value: RegexProperty) = delegate.value(value) - override fun anyAlphaUnicode(): ClientDslProperty = Request().anyAlphaUnicode() + fun `$`(value: RegexProperty) = delegate.value(value) - override fun anyAlphaNumeric(): ClientDslProperty = Request().anyAlphaNumeric() + fun value(value: Any?) = delegate.value(value) - override fun anyNumber(): ClientDslProperty = Request().anyNumber() + fun v(value: Any?) = delegate.value(value) - override fun anyInteger(): ClientDslProperty = Request().anyInteger() + fun `$`(value: Any?) = delegate.value(value) - override fun anyPositiveInt(): ClientDslProperty = Request().anyPositiveInt() + fun value(client: ClientDslProperty, server: ServerDslProperty) = delegate.value(client, server) - override fun anyDouble(): ClientDslProperty = Request().anyDouble() + fun v(client: ClientDslProperty, server: ServerDslProperty) = delegate.value(client, server) - override fun anyHex(): ClientDslProperty = Request().anyHex() + fun `$`(client: ClientDslProperty, server: ServerDslProperty) = delegate.value(client, server) - override fun aBoolean(): ClientDslProperty = Request().aBoolean() + fun value(server: ServerDslProperty, client: ClientDslProperty) = delegate.value(client, server) - override fun anyIpAddress(): ClientDslProperty = Request().anyIpAddress() + fun v(server: ServerDslProperty, client: ClientDslProperty) = delegate.value(client, server) - override fun anyHostname(): ClientDslProperty = Request().anyHostname() + fun `$`(server: ServerDslProperty, client: ClientDslProperty) = delegate.value(client, server) - override fun anyEmail(): ClientDslProperty = Request().anyEmail() + override fun anyAlphaUnicode() = delegate.anyAlphaUnicode() - override fun anyUrl(): ClientDslProperty = Request().anyUrl() + override fun anyAlphaNumeric() = delegate.anyAlphaNumeric() - override fun anyHttpsUrl(): ClientDslProperty = Request().anyHttpsUrl() + override fun anyNumber() = delegate.anyNumber() - override fun anyUuid(): ClientDslProperty = Request().anyUuid() + override fun anyInteger() = delegate.anyInteger() - override fun anyDate(): ClientDslProperty = Request().anyDate() + override fun anyPositiveInt() = delegate.anyPositiveInt() - override fun anyDateTime(): ClientDslProperty = Request().anyDateTime() + override fun anyDouble() = delegate.anyDouble() - override fun anyTime(): ClientDslProperty = Request().anyTime() + override fun anyHex() = delegate.anyHex() - override fun anyIso8601WithOffset(): ClientDslProperty = Request().anyIso8601WithOffset() + override fun aBoolean() = delegate.aBoolean() - override fun anyNonBlankString(): ClientDslProperty = Request().anyNonBlankString() + override fun anyIpAddress() = delegate.anyIpAddress() - override fun anyNonEmptyString(): ClientDslProperty = Request().anyNonEmptyString() + override fun anyHostname() = delegate.anyHostname() - override fun anyOf(vararg values: String?): ClientDslProperty = Request().anyOf(*values) + override fun anyEmail() = delegate.anyEmail() + + override fun anyUrl() = delegate.anyUrl() + + override fun anyHttpsUrl() = delegate.anyHttpsUrl() + + override fun anyUuid() = delegate.anyUuid() + + override fun anyDate() = delegate.anyDate() + + override fun anyDateTime() = delegate.anyDateTime() + + override fun anyTime() = delegate.anyTime() + + override fun anyIso8601WithOffset() = delegate.anyIso8601WithOffset() + + override fun anyNonBlankString() = delegate.anyNonBlankString() + + override fun anyNonEmptyString() = delegate.anyNonEmptyString() + + override fun anyOf(vararg values: String?) = delegate.anyOf(*values) internal fun get(): Request { val request = Request() diff --git a/specs/spring-cloud-contract-spec-kotlin/src/main/kotlin/org/springframework/cloud/contract/spec/internal/ResponseDsl.kt b/specs/spring-cloud-contract-spec-kotlin/src/main/kotlin/org/springframework/cloud/contract/spec/internal/ResponseDsl.kt index 1dd08eede9..2f5d06b189 100644 --- a/specs/spring-cloud-contract-spec-kotlin/src/main/kotlin/org/springframework/cloud/contract/spec/internal/ResponseDsl.kt +++ b/specs/spring-cloud-contract-spec-kotlin/src/main/kotlin/org/springframework/cloud/contract/spec/internal/ResponseDsl.kt @@ -18,6 +18,7 @@ package org.springframework.cloud.contract.spec.internal import org.springframework.cloud.contract.spec.toDslProperties import org.springframework.cloud.contract.spec.toDslProperty +import java.util.regex.Pattern /** * @author Tim Ysewyn @@ -25,6 +26,8 @@ import org.springframework.cloud.contract.spec.toDslProperty @ContractDslMarker class ResponseDsl : CommonDsl(), RegexCreatingProperty { + private val delegate = Response() + var status: DslProperty? = null var delay: DslProperty? = null var headers: Headers? = null @@ -77,47 +80,91 @@ class ResponseDsl : CommonDsl(), RegexCreatingProperty { this.bodyMatchers = ResponseBodyMatchers().apply(bodyMatchers) } - override fun anyAlphaUnicode(): ServerDslProperty = Response().anyAlphaUnicode() + /* HELPER FUNCTIONS */ - override fun anyAlphaNumeric(): ServerDslProperty = Response().anyAlphaNumeric() + fun value(value: ClientDslProperty) = delegate.value(value) - override fun anyNumber(): ServerDslProperty = Response().anyNumber() + fun v(value: ClientDslProperty) = delegate.value(value) - override fun anyInteger(): ServerDslProperty = Response().anyInteger() + fun `$`(value: ClientDslProperty) = delegate.value(value) - override fun anyPositiveInt(): ServerDslProperty = Response().anyPositiveInt() + fun value(value: DslProperty) = delegate.value(value) - override fun anyDouble(): ServerDslProperty = Response().anyDouble() + fun v(value: DslProperty) = delegate.value(value) - override fun anyHex(): ServerDslProperty = Response().anyHex() + fun `$`(value: DslProperty) = delegate.value(value) - override fun aBoolean(): ServerDslProperty = Response().aBoolean() + fun value(value: Pattern) = delegate.value(value) - override fun anyIpAddress(): ServerDslProperty = Response().anyIpAddress() + fun v(value: Pattern) = delegate.value(value) - override fun anyHostname(): ServerDslProperty = Response().anyHostname() + fun `$`(value: Pattern) = delegate.value(value) - override fun anyEmail(): ServerDslProperty = Response().anyEmail() + fun value(value: RegexProperty) = delegate.value(value) - override fun anyUrl(): ServerDslProperty = Response().anyUrl() + fun v(value: RegexProperty) = delegate.value(value) - override fun anyHttpsUrl(): ServerDslProperty = Response().anyHttpsUrl() + fun `$`(value: RegexProperty) = delegate.value(value) - override fun anyUuid(): ServerDslProperty = Response().anyUuid() + fun value(value: Any?) = delegate.value(value) - override fun anyDate(): ServerDslProperty = Response().anyDate() + fun v(value: Any?) = delegate.value(value) - override fun anyDateTime(): ServerDslProperty = Response().anyDateTime() + fun `$`(value: Any?) = delegate.value(value) - override fun anyTime(): ServerDslProperty = Response().anyTime() + fun value(client: ClientDslProperty, server: ServerDslProperty) = delegate.value(client, server) - override fun anyIso8601WithOffset(): ServerDslProperty = Response().anyIso8601WithOffset() + fun v(client: ClientDslProperty, server: ServerDslProperty) = delegate.value(client, server) - override fun anyNonBlankString(): ServerDslProperty = Response().anyNonBlankString() + fun `$`(client: ClientDslProperty, server: ServerDslProperty) = delegate.value(client, server) - override fun anyNonEmptyString(): ServerDslProperty = Response().anyNonEmptyString() + fun value(server: ServerDslProperty, client: ClientDslProperty) = delegate.value(client, server) - override fun anyOf(vararg values: String?): ServerDslProperty = Response().anyOf(*values) + fun v(server: ServerDslProperty, client: ClientDslProperty) = delegate.value(client, server) + + fun `$`(server: ServerDslProperty, client: ClientDslProperty) = delegate.value(client, server) + + override fun anyAlphaUnicode() = delegate.anyAlphaUnicode() + + override fun anyAlphaNumeric() = delegate.anyAlphaNumeric() + + override fun anyNumber() = delegate.anyNumber() + + override fun anyInteger() = delegate.anyInteger() + + override fun anyPositiveInt() = delegate.anyPositiveInt() + + override fun anyDouble() = delegate.anyDouble() + + override fun anyHex() = delegate.anyHex() + + override fun aBoolean() = delegate.aBoolean() + + override fun anyIpAddress() = delegate.anyIpAddress() + + override fun anyHostname() = delegate.anyHostname() + + override fun anyEmail() = delegate.anyEmail() + + override fun anyUrl() = delegate.anyUrl() + + override fun anyHttpsUrl() = delegate.anyHttpsUrl() + + override fun anyUuid() = delegate.anyUuid() + + override fun anyDate() = delegate.anyDate() + + override fun anyDateTime() = delegate.anyDateTime() + + override fun anyTime() = delegate.anyTime() + + override fun anyIso8601WithOffset() = delegate.anyIso8601WithOffset() + + override fun anyNonBlankString() = delegate.anyNonBlankString() + + override fun anyNonEmptyString() = delegate.anyNonEmptyString() + + override fun anyOf(vararg values: String?) = delegate.anyOf(*values) internal fun get(): Response { val response = Response()