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

in.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. Deprecation Notice for group ID "in.specmatic" ****************************************************************************************************** Updates for "specmatic-core" will no longer be available under the deprecated group ID "in.specmatic". Please update your dependencies to use the new group ID "io.specmatic". ******************************************************************************************************

The newest version!
package `in`.specmatic.core.pattern

import `in`.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