Coverage Summary for Class: User (com.javiersc.mokoki.serialization)
Class | Method, % | Branch, % | Line, % | Instruction, % |
---|---|---|---|---|
User$$serializer | 100% (1/1) | 0% (0/8) | 100% (1/1) | 45.7% (84/184) |
User$Companion | 100% (1/1) | 100% (1/1) | 100% (4/4) | |
Total | 100% (2/2) | 0% (0/8) | 100% (2/2) | 46.8% (88/188) |
@file:Suppress("MaxLineLength")
package com.javiersc.mokoki.serialization
import com.javiersc.kotlin.test.IgnoreMINGW
import com.javiersc.mokoki.MokokiLogger
import com.javiersc.mokoki.Priority
import com.javiersc.mokoki.logD
import com.javiersc.mokoki.logE
import com.javiersc.mokoki.logI
import com.javiersc.mokoki.logV
import com.javiersc.mokoki.logW
import com.javiersc.mokoki.logWTF
import com.javiersc.mokoki.test.internal.lineNumberForTest
import kotlin.test.AfterTest
import kotlin.test.BeforeTest
import kotlin.test.Test
import kotlinx.serialization.Serializable
@IgnoreMINGW
internal class MokokiSerializationTest {
private val testLogger = TestMokokiSerializationLogger(minPriority = Priority.VERBOSE)
@BeforeTest
fun install_logger() {
MokokiLogger.install(testLogger)
}
@AfterTest
fun uninstallAllLoggers() {
MokokiLogger.uninstallAllLoggers()
}
@Test
fun json_log_V() {
logV("Some tag") { userString }
val n = testLogger.lastMessage.lineNumberForTest
testLogger.assert(
"""
┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Some tag │ VERBOSE.(MokokiSerializationTest.kt:$n) │ file MokokiSerializationTest.kt │ class MokokiSerializationTest │ fun json_log_V │ line $n │
├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ { │
│ "name": "Mike", │
│ "age": 22, │
│ "hobbies": [ │
│ "Football", │
│ "Reading" │
│ ] │
│ } │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
"""
.trimIndent()
)
}
@Test
fun json_log_D() {
logD("Some tag") { userString }
val n = testLogger.lastMessage.lineNumberForTest
testLogger.assert(
"""
┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Some tag │ DEBUG.(MokokiSerializationTest.kt:$n) │ file MokokiSerializationTest.kt │ class MokokiSerializationTest │ fun json_log_D │ line $n │
├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ { │
│ "name": "Mike", │
│ "age": 22, │
│ "hobbies": [ │
│ "Football", │
│ "Reading" │
│ ] │
│ } │
└───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
"""
.trimIndent()
)
}
@Test
fun json_log_I() {
logI("Some tag") { userString }
val n = testLogger.lastMessage.lineNumberForTest
testLogger.assert(
"""
┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Some tag │ INFO.(MokokiSerializationTest.kt:$n) │ file MokokiSerializationTest.kt │ class MokokiSerializationTest │ fun json_log_I │ line $n │
├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ { │
│ "name": "Mike", │
│ "age": 22, │
│ "hobbies": [ │
│ "Football", │
│ "Reading" │
│ ] │
│ } │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
"""
.trimIndent()
)
}
@Test
fun json_log_W() {
logW("Some tag") { userString }
val nu = testLogger.lastMessage.lineNumberForTest
testLogger.assert(
"""
┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Some tag │ WARN.(MokokiSerializationTest.kt:$nu) │ file MokokiSerializationTest.kt │ class MokokiSerializationTest │ fun json_log_W │ line $nu │
├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ { │
│ "name": "Mike", │
│ "age": 22, │
│ "hobbies": [ │
│ "Football", │
│ "Reading" │
│ ] │
│ } │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
"""
.trimIndent()
)
}
@Test
fun json_log_E() {
logE("Some tag") { userString }
val nu = testLogger.lastMessage.lineNumberForTest
testLogger.assert(
"""
┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Some tag │ ERROR.(MokokiSerializationTest.kt:$nu) │ file MokokiSerializationTest.kt │ class MokokiSerializationTest │ fun json_log_E │ line $nu │
├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ { │
│ "name": "Mike", │
│ "age": 22, │
│ "hobbies": [ │
│ "Football", │
│ "Reading" │
│ ] │
│ } │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
"""
.trimIndent()
)
}
@Test
fun json_log_WTF() {
logWTF("Some tag") { userString }
val nu = testLogger.lastMessage.lineNumberForTest
testLogger.assert(
"""
┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Some tag │ ASSERT.(MokokiSerializationTest.kt:$nu) │ file MokokiSerializationTest.kt │ class MokokiSerializationTest │ fun json_log_WTF │ line $nu │
├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ { │
│ "name": "Mike", │
│ "age": 22, │
│ "hobbies": [ │
│ "Football", │
│ "Reading" │
│ ] │
│ } │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
"""
.trimIndent()
)
}
@Test
fun serializable_log_V() {
logV("Some tag") { user }
val nu = testLogger.lastMessage.lineNumberForTest
testLogger.assert(
"""
┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Some tag │ VERBOSE.(MokokiSerializationTest.kt:$nu) │ file MokokiSerializationTest.kt │ class MokokiSerializationTest │ fun serializable_log_V │ line $nu │
├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ { │
│ "name": "John", │
│ "age": 19, │
│ "hobbies": [ │
│ "Tennis", │
│ "Coding" │
│ ] │
│ } │
└───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
"""
.trimIndent()
)
}
@Test
fun serializable_log_D() {
logD("Some tag") { user }
val nu = testLogger.lastMessage.lineNumberForTest
testLogger.assert(
"""
┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Some tag │ DEBUG.(MokokiSerializationTest.kt:$nu) │ file MokokiSerializationTest.kt │ class MokokiSerializationTest │ fun serializable_log_D │ line $nu │
├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ { │
│ "name": "John", │
│ "age": 19, │
│ "hobbies": [ │
│ "Tennis", │
│ "Coding" │
│ ] │
│ } │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
"""
.trimIndent()
)
}
@Test
fun serializable_log_I() {
logI("Some tag") { user }
val nu = testLogger.lastMessage.lineNumberForTest
testLogger.assert(
"""
┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Some tag │ INFO.(MokokiSerializationTest.kt:$nu) │ file MokokiSerializationTest.kt │ class MokokiSerializationTest │ fun serializable_log_I │ line $nu │
├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ { │
│ "name": "John", │
│ "age": 19, │
│ "hobbies": [ │
│ "Tennis", │
│ "Coding" │
│ ] │
│ } │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
"""
.trimIndent()
)
}
@Test
fun serializable_log_W() {
logW("Some tag") { user }
val nu = testLogger.lastMessage.lineNumberForTest
testLogger.assert(
"""
┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Some tag │ WARN.(MokokiSerializationTest.kt:$nu) │ file MokokiSerializationTest.kt │ class MokokiSerializationTest │ fun serializable_log_W │ line $nu │
├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ { │
│ "name": "John", │
│ "age": 19, │
│ "hobbies": [ │
│ "Tennis", │
│ "Coding" │
│ ] │
│ } │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
"""
.trimIndent()
)
}
@Test
fun serializable_log_E() {
logE("Some tag") { user }
val nu = testLogger.lastMessage.lineNumberForTest
testLogger.assert(
"""
┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Some tag │ ERROR.(MokokiSerializationTest.kt:$nu) │ file MokokiSerializationTest.kt │ class MokokiSerializationTest │ fun serializable_log_E │ line $nu │
├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ { │
│ "name": "John", │
│ "age": 19, │
│ "hobbies": [ │
│ "Tennis", │
│ "Coding" │
│ ] │
│ } │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
"""
.trimIndent()
)
}
@Test
fun serializable_log_WTF() {
logWTF("Some tag") { user }
val nu = testLogger.lastMessage.lineNumberForTest
testLogger.assert(
"""
┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Some tag │ ASSERT.(MokokiSerializationTest.kt:$nu) │ file MokokiSerializationTest.kt │ class MokokiSerializationTest │ fun serializable_log_WTF │ line $nu │
├────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ { │
│ "name": "John", │
│ "age": 19, │
│ "hobbies": [ │
│ "Tennis", │
│ "Coding" │
│ ] │
│ } │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
"""
.trimIndent()
)
}
}
@Serializable private data class User(val name: String, val age: Int, val hobbies: List<String>)
private val user = User("John", 19, listOf("Tennis", "Coding"))
private val userString =
"""
| {
| "name": "Mike",
| "age": 22,
| "hobbies": ["Football", "Reading"]
| }
"""
.trimMargin()