commonMain.dev.mokkery.internal.MokkeryInterceptorScope.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of mokkery-runtime Show documentation
Show all versions of mokkery-runtime Show documentation
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)
}