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

commonMain.dev.mokkery.internal.MokkeryInterceptorScope.kt Maven / Gradle / Ivy

Go to download

Mokkery is a mocking library for Kotlin Multiplatform, easy to use, boilerplate-free and compiler plugin driven.

The newest version!
@file:Suppress("unused")

package dev.mokkery.internal

import dev.mokkery.MockMode
import kotlin.reflect.KClass

internal interface MokkeryInterceptorScope {

    val id: String

    val interceptor: MokkeryInterceptor

    val interceptedTypes: List>
}

internal interface MokkeryMockScope : MokkeryInterceptorScope {

    override val interceptor: MokkeryMock
}

internal fun MokkeryMockScope(
    mode: MockMode,
    kind: MokkeryKind,
    typeName: String,
    mockedType: KClass<*>
): MokkeryMockScope {
    return DynamicMokkeryMockScope(mode, kind, typeName, listOf(mockedType))
}

private class DynamicMokkeryMockScope(
    mode: MockMode,
    kind: MokkeryKind,
    typeName: String,
    override val interceptedTypes: List>,
) : MokkeryMockScope {
    override val interceptor = MokkeryMock(mode, kind)

    override val id = MockUniqueReceiversGenerator.generate(typeName)
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy