ENT-11113 Updating test case to user overrridden Sysout instead of mock

This commit is contained in:
Balwant Kothari
2024-01-18 00:15:46 +05:30
parent 49f35aa5ea
commit 13e13fd236

View File

@ -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);
} }
/** /**