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

io.mockk.impl.stub.AdditionalAnswerOpportunity.kt Maven / Gradle / Ivy

package io.mockk.impl.stub

import io.mockk.Answer
import io.mockk.ManyAnswersAnswer

class AdditionalAnswerOpportunity(val get: () -> Answer<*>, val set: (Answer<*>) -> Unit) {
    fun addAnswer(answer: Answer<*>) {
        set(combineAnswers(get(), answer))
    }

    private fun combineAnswers(firstAnswer: Answer<*>, secondAnswer: Answer<*>): Answer<*> {
        val lst = unMany(firstAnswer).toMutableList()
        lst.addAll(unMany(secondAnswer))
        return ManyAnswersAnswer(lst)
    }

    private fun unMany(firstAnswer: Answer<*>): List> {
        return if (firstAnswer is ManyAnswersAnswer) {
            firstAnswer.answers
        } else {
            listOf(firstAnswer)
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy