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.MethodDescription
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