Additional coroutine context tests
diff --git a/log4j-api-kotlin/src/test/kotlin/org.apache.logging.log4j.kotlin/ThreadContextTest.kt b/log4j-api-kotlin/src/test/kotlin/org.apache.logging.log4j.kotlin/ThreadContextTest.kt
index f6ed109..1b1d5fa 100644
--- a/log4j-api-kotlin/src/test/kotlin/org.apache.logging.log4j.kotlin/ThreadContextTest.kt
+++ b/log4j-api-kotlin/src/test/kotlin/org.apache.logging.log4j.kotlin/ThreadContextTest.kt
@@ -217,6 +217,16 @@
assertEquals("myValue2", ContextMap["myKey2"])
assertEquals(listOf("test", "test2"), ContextStack.view.asList())
}
+ withAdditionalLoggingContext(mapOf("myKey3" to "myValue3"), listOf("test3")) {
+ assertEquals("myValue", ContextMap["myKey"])
+ assertEquals("myValue2", ContextMap["myKey2"])
+ assertEquals("myValue3", ContextMap["myKey3"])
+ assertEquals(listOf("test", "test2", "test3"), ContextStack.view.asList())
+ }
+ assertEquals("myValue", ContextMap["myKey"])
+ assertEquals("myValue2", ContextMap["myKey2"])
+ assertEquals(null, ContextMap["myKey3"])
+ assertEquals(listOf("test", "test2"), ContextStack.view.asList())
}
withLoggingContext(mapOf("myKey2" to "myValue2"), listOf("test2")) {
assertEquals(null, ContextMap["myKey"])
@@ -227,6 +237,15 @@
assertEquals("myValue2", ContextMap["myKey2"])
assertEquals(listOf("test2"), ContextStack.view.asList())
}
+ withLoggingContext(mapOf("myKey3" to "myValue3"), listOf("test3")) {
+ assertEquals(null, ContextMap["myKey"])
+ assertEquals(null, ContextMap["myKey2"])
+ assertEquals(listOf("test3"), ContextStack.view.asList())
+ }
+ assertEquals(null, ContextMap["myKey"])
+ assertEquals("myValue2", ContextMap["myKey2"])
+ assertEquals(null, ContextMap["myKey3"])
+ assertEquals(listOf("test2"), ContextStack.view.asList())
}
}
@@ -237,6 +256,13 @@
withContext(CoroutineThreadContext(ThreadContextData(mapOf("myKey" to "myValue"), listOf("test")))) {
assertEquals("myValue", ContextMap["myKey"])
assertEquals("test", ContextStack.peek())
+ withContext(CoroutineThreadContext(ThreadContextData(mapOf("myKey2" to "myValue2"), listOf("test2")))) {
+ assertEquals(null, ContextMap["myKey"])
+ assertEquals("myValue2", ContextMap["myKey2"])
+ assertEquals(listOf("test2"), ContextStack.view.asList())
+ }
+ assertEquals("myValue", ContextMap["myKey"])
+ assertEquals("test", ContextStack.peek())
}
assertTrue(ContextMap.empty)
assertTrue(ContextStack.empty)
@@ -244,6 +270,13 @@
withContext(loggingContext(mapOf("myKey" to "myValue"), listOf("test"))) {
assertEquals("myValue", ContextMap["myKey"])
assertEquals("test", ContextStack.peek())
+ withContext(loggingContext(mapOf("myKey2" to "myValue2"), listOf("test2"))) {
+ assertEquals(null, ContextMap["myKey"])
+ assertEquals("myValue2", ContextMap["myKey2"])
+ assertEquals(listOf("test2"), ContextStack.view.asList())
+ }
+ assertEquals("myValue", ContextMap["myKey"])
+ assertEquals("test", ContextStack.peek())
}
assertTrue(ContextMap.empty)
assertTrue(ContextStack.empty)
@@ -251,6 +284,52 @@
withLoggingContext(mapOf("myKey" to "myValue"), listOf("test")) {
assertEquals("myValue", ContextMap["myKey"])
assertEquals("test", ContextStack.peek())
+ withLoggingContext(mapOf("myKey2" to "myValue2"), listOf("test2")) {
+ assertEquals(null, ContextMap["myKey"])
+ assertEquals("myValue2", ContextMap["myKey2"])
+ assertEquals(listOf("test2"), ContextStack.view.asList())
+ }
+ assertEquals("myValue", ContextMap["myKey"])
+ assertEquals("test", ContextStack.peek())
+ }
+ assertTrue(ContextMap.empty)
+ assertTrue(ContextStack.empty)
+
+ withAdditionalLoggingContext(mapOf("myKey" to "myValue"), listOf("test")) {
+ assertEquals("myValue", ContextMap["myKey"])
+ assertEquals("test", ContextStack.peek())
+ withAdditionalLoggingContext(mapOf("myKey2" to "myValue2"), listOf("test2")) {
+ assertEquals("myValue", ContextMap["myKey"])
+ assertEquals("myValue2", ContextMap["myKey2"])
+ assertEquals(listOf("test", "test2"), ContextStack.view.asList())
+ }
+ assertEquals("myValue", ContextMap["myKey"])
+ assertEquals(null, ContextMap["myKey2"])
+ assertEquals("test", ContextStack.peek())
+ }
+ assertTrue(ContextMap.empty)
+ assertTrue(ContextStack.empty)
+ }
+
+ @Test
+ fun `Can override existing context, and restore it`() = runBlocking {
+ assertTrue(ContextMap.empty)
+ assertTrue(ContextStack.empty)
+ withLoggingContext(mapOf("myKey" to "myValue", "myKey2" to "myValue2"), listOf("test1", "test2")) {
+ assertEquals(mapOf("myKey" to "myValue", "myKey2" to "myValue2"), ContextMap.view)
+ assertEquals(listOf("test1", "test2"), ContextStack.view.asList())
+ withLoggingContext(mapOf("myKey3" to "myValue3", "myKey4" to "myValue4"), listOf("test3", "test4")) {
+ assertEquals(mapOf("myKey3" to "myValue3", "myKey4" to "myValue4"), ContextMap.view)
+ assertEquals(listOf("test3", "test4"), ContextStack.view.asList())
+ withAdditionalLoggingContext(mapOf("myKey4" to "myValue4Modified", "myKey5" to "myValue5"), listOf("test5")) {
+ assertEquals(mapOf("myKey3" to "myValue3", "myKey4" to "myValue4Modified", "myKey5" to "myValue5"), ContextMap.view)
+ assertEquals(listOf("test3", "test4", "test5"), ContextStack.view.asList())
+ }
+ assertEquals(mapOf("myKey3" to "myValue3", "myKey4" to "myValue4"), ContextMap.view)
+ assertEquals(listOf("test3", "test4"), ContextStack.view.asList())
+ }
+ assertEquals(mapOf("myKey" to "myValue", "myKey2" to "myValue2"), ContextMap.view)
+ assertEquals(listOf("test1", "test2"), ContextStack.view.asList())
}
assertTrue(ContextMap.empty)
assertTrue(ContextStack.empty)