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

io.mockk.impl.recording.CallRoundBuilder.kt Maven / Gradle / Ivy

package io.mockk.impl.recording

import io.mockk.Invocation
import io.mockk.Matcher
import io.mockk.impl.log.SafeLog
import kotlin.reflect.KClass

class CallRoundBuilder(val safeLog: SafeLog) {
    val signedMatchers = mutableListOf()
    val signedCalls = mutableListOf()

    fun addMatcher(matcher: Matcher<*>, sigValue: Any) {
        signedMatchers.add(SignedMatcher(matcher, sigValue))
    }

    fun addSignedCall(
        retValue: Any?,
        tempMock: Boolean,
        retType: KClass<*>,
        invocation: Invocation
    ) {
        val signedCall = SignedCall(
            retValue,
            tempMock,
            retType,
            invocation.self,
            invocation.method,
            invocation.args,
            safeLog.exec { invocation.toString() },
            signedMatchers.toList()
        )

        signedCalls.add(signedCall)
        signedMatchers.clear()
    }

    fun addWasNotCalled(list: List) {
        for (self in list) {
            signedCalls.add(
                SignedCall(
                    Unit,
                    false,
                    Unit::class,
                    self,
                    WasNotCalled.method,
                    listOf(),
                    safeLog.exec { "${self} wasNot Called" },
                    listOf()
                )
            )
        }
    }

    fun build() = CallRound(signedCalls.toList())
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy