mirror of
https://github.com/corda/corda.git
synced 2025-06-18 15:18:16 +00:00
ENT-11113 Updating test case to user overrridden Sysout instead of mock
This commit is contained in:
@ -2,24 +2,19 @@ package net.corda.node.services.config
|
|||||||
|
|
||||||
import com.typesafe.config.Config
|
import com.typesafe.config.Config
|
||||||
import com.typesafe.config.ConfigFactory
|
import com.typesafe.config.ConfigFactory
|
||||||
import net.corda.node.internal.Node
|
|
||||||
import org.assertj.core.api.Assertions.assertThatExceptionOfType
|
import org.assertj.core.api.Assertions.assertThatExceptionOfType
|
||||||
import org.junit.After
|
import org.junit.After
|
||||||
import org.junit.Assert
|
import org.junit.Assert
|
||||||
import org.junit.Before
|
import org.junit.Before
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.mockito.ArgumentMatchers.contains
|
import java.io.ByteArrayOutputStream
|
||||||
import org.mockito.kotlin.spy
|
import java.io.PrintStream
|
||||||
import org.mockito.kotlin.verify
|
|
||||||
import org.slf4j.Logger
|
|
||||||
import java.lang.invoke.MethodHandles
|
|
||||||
import java.lang.reflect.Field
|
|
||||||
import java.lang.reflect.Modifier
|
|
||||||
import java.nio.file.Files
|
import java.nio.file.Files
|
||||||
import java.nio.file.Path
|
import java.nio.file.Path
|
||||||
import kotlin.io.path.deleteExisting
|
import kotlin.io.path.deleteExisting
|
||||||
import kotlin.io.path.div
|
import kotlin.io.path.div
|
||||||
import kotlin.test.assertFalse
|
import kotlin.test.assertFalse
|
||||||
|
import kotlin.test.assertTrue
|
||||||
|
|
||||||
class ConfigHelperTests {
|
class ConfigHelperTests {
|
||||||
private var baseDir: Path? = null
|
private var baseDir: Path? = null
|
||||||
@ -70,23 +65,20 @@ class ConfigHelperTests {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Test(timeout = 300_000)
|
@Test(timeout = 300_000)
|
||||||
fun `bad keys are ignored and warned for`() {
|
fun `bad keys are ignored and warned for`() {
|
||||||
val loggerField = Node::class.java.getDeclaredField("staticLog")
|
val outContent = ByteArrayOutputStream()
|
||||||
loggerField.isAccessible = true
|
val errContent = ByteArrayOutputStream()
|
||||||
val fieldLookup = MethodHandles.privateLookupIn(Field::class.java, MethodHandles.lookup());
|
val originalOut = System.out
|
||||||
val modifiersField = fieldLookup.findVarHandle(Field::class.java, "modifiers", Int::class.javaPrimitiveType)
|
val originalErr = System.err
|
||||||
modifiersField.set(loggerField, loggerField.modifiers and Modifier.FINAL.inv())
|
System.setOut(PrintStream(outContent));
|
||||||
val originalLogger = loggerField.get(null) as Logger
|
System.setErr(PrintStream(errContent));
|
||||||
val spyLogger = spy(originalLogger)
|
|
||||||
loggerField.set(null, spyLogger)
|
|
||||||
|
|
||||||
val config = loadConfig("corda_bad_key" to "2077")
|
val config = loadConfig("corda_bad_key" to "2077")
|
||||||
|
assertTrue(outContent.toString().contains("(property or environment variable) cannot be mapped to an existing Corda"))
|
||||||
verify(spyLogger).warn(contains("(property or environment variable) cannot be mapped to an existing Corda"))
|
|
||||||
assertFalse(config?.hasPath("corda_bad_key") ?: true)
|
assertFalse(config?.hasPath("corda_bad_key") ?: true)
|
||||||
|
System.setOut(originalOut);
|
||||||
loggerField.set(null, originalLogger)
|
System.setErr(originalErr);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user