Simplified input & output message DSL

This commit is contained in:
Tim Ysewyn
2019-08-10 14:34:50 +02:00
parent 0b32e87c48
commit d0f578de5f
2 changed files with 58 additions and 66 deletions

View File

@@ -22,11 +22,13 @@ package org.springframework.cloud.contract.spec.internal
@ContractDslMarker
class InputDsl : CommonDsl(), RegexCreatingProperty<ClientDslProperty> {
private val delegate = Input()
var messageFrom: DslProperty<String>? = 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<ClientDslProperty> {
this.headers = HeadersDsl().apply(headers).get()
}
fun triggeredBy(triggeredBy: String) {
this.triggeredBy = ExecutionProperty(triggeredBy)
}
fun messageBody(vararg pairs: Pair<String, Any>) {
this.messageBody = Input.BodyType(pairs.toMap())
}
@@ -53,64 +51,60 @@ class InputDsl : CommonDsl(), RegexCreatingProperty<ClientDslProperty> {
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
}
}

View File

@@ -22,10 +22,12 @@ package org.springframework.cloud.contract.spec.internal
@ContractDslMarker
class OutputMessageDsl : CommonDsl(), RegexCreatingProperty<ServerDslProperty> {
private val delegate = OutputMessage()
var sentTo: DslProperty<String>? = null
var headers: Headers? = null
var body: DslProperty<Any>? = 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<ServerDslProperty> {
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
}