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

io.mockk.impl.instantiation.JsInstantiator.kt Maven / Gradle / Ivy

package io.mockk.impl.instantiation

import kotlin.reflect.KClass

class JsInstantiator(instanceFactoryRegistry: CommonInstanceFactoryRegistry) :
    AbstractInstantiator(instanceFactoryRegistry) {
    @Suppress("UNCHECKED_CAST")
    override fun  instantiate(cls: KClass): T {
        return instantiateViaInstanceFactoryRegistry(cls) {
            Proxy(InstanceStubTarget(), InstanceProxyHandler()) as T
        }
    }
}

internal class InstanceStubTarget {
    override fun toString() = ""

}

internal class InstanceProxyHandler : EmptyProxyHandler() {
    override fun get(target: dynamic, name: String, receiver: dynamic): Any {
        if (isJsNativeMethods(name)) {
            return target[name]
        }
        return super.get(target, name, receiver)
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy