All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.specmatic.core.pattern.ConsumeResult.kt Maven / Gradle / Ivy

Go to download

Turn your contracts into executable specifications. Contract Driven Development - Collaboratively Design & Independently Deploy MicroServices & MicroFrontends.

There is a newer version: 2.0.37
Show newest version
package io.specmatic.core.pattern

import io.specmatic.core.Result

data class ProvisionalError(val result: Result.Failure, val type: Pattern, val value: MatchedType)

data class ConsumeResult(val result: Result = Result.Success(), val remainder: List = emptyList(), val provisionalError: ProvisionalError? = null) {
    constructor(patterns: List): this(remainder = patterns)

    fun breadCrumb(breadCrumb: String): ConsumeResult = this.copy(result = result.breadCrumb(breadCrumb))

    inline fun  cast(typeName: String): ConsumeResult {
        val newList = remainder.map {
            if(it is OtherListType)
                it
            else
                throw ContractException("Could not cast list to $typeName type")
        }

        return ConsumeResult(result, newList, provisionalError)
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy