io.specmatic.test.ScenarioTestGenerationException.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.test
import io.specmatic.conversions.convertPathParameterStyle
import io.specmatic.core.HttpResponse
import io.specmatic.core.Result
import io.specmatic.core.Scenario
import io.specmatic.core.pattern.ContractException
import io.specmatic.core.utilities.exceptionCauseMessage
class ScenarioTestGenerationException(val scenario: Scenario, val e: Throwable, val message: String, val breadCrumb: String?) : ContractTest {
override fun testResultRecord(result: Result, response: HttpResponse?): TestResultRecord? {
return null
}
override fun testDescription(): String {
return scenario.testDescription()
}
override fun runTest(testBaseURL: String, timeoutInMilliseconds: Long): Pair {
return error()
}
override fun runTest(testExecutor: TestExecutor): Pair {
return error()
}
override fun plusValidator(validator: ResponseValidator): ContractTest {
return this
}
fun error(): Pair {
val result: Result = when(e) {
is ContractException -> Result.Failure(message, e.failure(), breadCrumb = breadCrumb ?: "").updateScenario(scenario)
else -> Result.Failure(message + " - " + exceptionCauseMessage(e), breadCrumb = breadCrumb ?: "").updateScenario(scenario)
}
return Pair(result, null)
}
}