Coverage Summary for Class: TestMokokiLogger (com.javiersc.mokoki)
Class |
Method, %
|
Branch, %
|
Line, %
|
Instruction, %
|
TestMokokiLogger |
100%
(3/3)
|
|
100%
(6/6)
|
100%
(50/50)
|
TestMokokiLogger$log$lambda-0$$inlined$ansiColor$1 |
0%
(0/1)
|
|
Total |
75%
(3/4)
|
|
100%
(6/6)
|
100%
(50/50)
|
| package com.javiersc.mokoki |
| |
| import com.javiersc.kotlin.stdlib.ansiColor |
| import com.javiersc.mokoki.internal.buildMokokiMessage |
| import io.kotest.matchers.shouldBe |
| import io.kotest.matchers.string.shouldContain |
| import kotlin.reflect.KClass |
| import kotlin.reflect.KType |
| |
| class TestMokokiLogger(minPriority: Priority) : PrintMokokiLogger(minPriority) { |
| |
| var lastMessage: String? = null |
| private set |
| |
| override fun <T : Any> log( |
| priority: Priority, |
| tag: String?, |
| kClass: KClass<T>, |
| kType: KType, |
| message: T |
| ) { |
| super.log(priority, tag, kClass, kType, message) |
| |
| val mokokiMessageLines: List<String> = |
| buildMokokiMessage(priority, tag, message).map { it.ansiColor(priority.ansiColor) } |
| |
| lastMessage = mokokiMessageLines.joinToString("\n") |
| } |
| } |
| |
| fun TestMokokiLogger.assert(message: String) { |
| val expect = |
| "\n" + |
| (message |
| .lines() |
| .filter(String::isNotBlank) |
| .map { it.dropWhile { char -> char.shouldDrop } } |
| .map { it.dropLastWhile { char -> char.shouldDropLast } } |
| .joinToString("\n")) |
| |
| val actual = |
| "\n" + |
| (lastMessage!! |
| .lines() |
| .filter(String::isNotBlank) |
| .map { it.dropWhile { char -> char.shouldDrop } } |
| .map { it.dropLastWhile { char -> char.shouldDropLast } } |
| .joinToString("\n")) |
| |
| actual.shouldBe(expect) |
| } |
| |
| fun TestMokokiLogger.assertContains(message: String) { |
| val expect = |
| "\n" + |
| (message |
| .lines() |
| .filter(String::isNotBlank) |
| .map { it.dropWhile { char -> char.shouldDrop } } |
| .map { it.dropLastWhile { char -> char.shouldDropLast } } |
| .joinToString("\n")) |
| |
| val actual = |
| "\n" + |
| (lastMessage!! |
| .lines() |
| .filter(String::isNotBlank) |
| .map { it.dropWhile { char -> char.shouldDrop } } |
| .map { it.dropLastWhile { char -> char.shouldDropLast } } |
| .joinToString("\n")) |
| |
| actual.shouldContain(expect) |
| } |
| |
| private val Char.shouldDrop: Boolean |
| get() = this != '┌' && this != '│' && this != '├' && this != '└' |
| |
| private val Char.shouldDropLast: Boolean |
| get() = this != '┐' && this != '│' && this != '┤' && this != '┘' |