io.specmatic.core.value.Value.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of specmatic-core Show documentation
Show all versions of specmatic-core Show documentation
Turn your contracts into executable specifications. Contract Driven Development - Collaboratively Design & Independently Deploy MicroServices & MicroFrontends.
package io.specmatic.core.value
import io.specmatic.core.ExampleDeclarations
import io.specmatic.core.pattern.Pattern
interface Value {
fun valueErrorSnippet(): String = "${this.displayableValue()} (${this.displayableType()})"
val httpContentType: String
fun displayableValue(): String
fun toStringLiteral(): String
fun toStringValue(): StringValue {
return StringValue(toStringLiteral())
}
fun displayableType(): String
fun exactMatchElseType(): Pattern
fun type(): Pattern
fun deepPattern(): Pattern {
return type()
}
fun typeDeclarationWithoutKey(exampleKey: String, types: Map, exampleDeclarations: ExampleDeclarations): Pair
fun typeDeclarationWithKey(key: String, types: Map, exampleDeclarations: ExampleDeclarations): Pair
fun listOf(valueList: List): Value
fun hasTemplate(): Boolean {
return this is StringValue
&& this.string.startsWith("$(")
&& this.string.endsWith(")")
}
fun hasDataTemplate(): Boolean {
return this is StringValue && this.string.hasDataTemplate()
}
}
fun String.hasDataTemplate(): Boolean {
return this.startsWith("$(") && this.endsWith(")")
}