mirror of
https://github.com/InsanusMokrassar/KSLog.git
synced 2026-11-02 09:42:56 +00:00
58 lines
1.7 KiB
Kotlin
58 lines
1.7 KiB
Kotlin
package dev.inmo.kslog.common
|
|
|
|
import dev.inmo.kslog.common.filter.filtered
|
|
import kotlin.test.Test
|
|
import kotlin.test.assertEquals
|
|
import kotlin.test.assertFalse
|
|
import kotlin.test.assertSame
|
|
import kotlin.test.assertTrue
|
|
|
|
class CallbackKSLogTest {
|
|
@Test
|
|
fun forwardsExactArguments() {
|
|
val expectedThrowable = IllegalStateException("boom")
|
|
var observedLevel: LogLevel? = null
|
|
var observedTag: String? = null
|
|
var observedMessage: Any? = null
|
|
var observedThrowable: Throwable? = null
|
|
|
|
val logger = KSLog { level, tag, message, throwable ->
|
|
observedLevel = level
|
|
observedTag = tag
|
|
observedMessage = message
|
|
observedThrowable = throwable
|
|
}
|
|
|
|
logger.performLog(LogLevel.WARNING, "network", "retrying", expectedThrowable)
|
|
|
|
assertEquals(LogLevel.WARNING, observedLevel)
|
|
assertEquals("network", observedTag)
|
|
assertEquals("retrying", observedMessage)
|
|
assertSame(expectedThrowable, observedThrowable)
|
|
}
|
|
|
|
@Test
|
|
fun filteredLoggerDoesNotBuildRejectedLazyMessage() {
|
|
var callbackInvoked = false
|
|
var messageBuilt = false
|
|
val logger = KSLog { _, _, _, _ -> callbackInvoked = true }
|
|
.filtered { level, _, _ -> level >= LogLevel.INFO }
|
|
|
|
logger.performLog(LogLevel.DEBUG, "test", null) {
|
|
messageBuilt = true
|
|
"expensive"
|
|
}
|
|
|
|
assertFalse(callbackInvoked)
|
|
assertFalse(messageBuilt)
|
|
|
|
logger.performLog(LogLevel.ERROR, "test", null) {
|
|
messageBuilt = true
|
|
"needed"
|
|
}
|
|
|
|
assertTrue(callbackInvoked)
|
|
assertTrue(messageBuilt)
|
|
}
|
|
}
|