CORDA-716 Make asContextEnv available to smoketesting (#2039)

This commit is contained in:
Andrzej Cichocki
2017-11-13 18:28:54 +00:00
committed by GitHub
parent c583af8f4b
commit 687a992262
4 changed files with 28 additions and 16 deletions

View File

@ -8,6 +8,7 @@ import net.corda.node.serialization.KryoServerSerializationScheme
import net.corda.nodeapi.internal.serialization.*
import net.corda.nodeapi.internal.serialization.amqp.AMQPClientSerializationScheme
import net.corda.nodeapi.internal.serialization.amqp.AMQPServerSerializationScheme
import net.corda.testing.common.internal.asContextEnv
import org.junit.rules.TestRule
import org.junit.runner.Description
import org.junit.runners.model.Statement
@ -32,16 +33,6 @@ fun <T> withTestSerialization(inheritable: Boolean = false, callable: (Serializa
return createTestSerializationEnv().asContextEnv(inheritable, callable)
}
private fun <T> SerializationEnvironment.asContextEnv(inheritable: Boolean, callable: (SerializationEnvironment) -> T): T {
val property = if (inheritable) _inheritableContextSerializationEnv else _contextSerializationEnv
property.set(this)
try {
return callable(this)
} finally {
property.set(null)
}
}
/**
* For example your test class uses [SerializationEnvironmentRule] but you want to turn it off for one method.
* Use sparingly, ideally a test class shouldn't mix serialization init mechanisms.