@@ -9,9 +9,10 @@ import kotlinx.serialization.json.*
9
9
import kotlinx.serialization.builtins.*
10
10
import kotlin.time.*
11
11
import kotlin.test.*
12
+ import kotlin.reflect.typeOf
12
13
13
14
@OptIn(ExperimentalTime ::class )
14
- class InstantSerializationTest {
15
+ class InstantSerializationTest : JsonTestBase () {
15
16
private fun iso8601Serialization (serializer : KSerializer <Instant >) {
16
17
for ((instant, json) in listOf (
17
18
Pair (Instant .fromEpochSeconds(1607505416 , 124000 ),
@@ -23,8 +24,7 @@ class InstantSerializationTest {
23
24
Pair (Instant .fromEpochSeconds(987654321 , 0 ),
24
25
" \" 2001-04-19T04:25:21Z\" " ),
25
26
)) {
26
- assertEquals(json, Json .encodeToString(serializer, instant))
27
- assertEquals(instant, Json .decodeFromString(serializer, json))
27
+ assertJsonFormAndRestored(serializer, instant, json)
28
28
}
29
29
}
30
30
@@ -39,8 +39,7 @@ class InstantSerializationTest {
39
39
Pair (Instant .fromEpochSeconds(987654321 , 0 ),
40
40
" {\" epochSeconds\" :987654321}" ),
41
41
)) {
42
- assertEquals(json, Json .encodeToString(serializer, instant))
43
- assertEquals(instant, Json .decodeFromString(serializer, json))
42
+ assertJsonFormAndRestored(serializer, instant, json)
44
43
}
45
44
// check that having a `"nanosecondsOfSecond": 0` field doesn't break deserialization
46
45
assertEquals(Instant .fromEpochSeconds(987654321 , 0 ),
@@ -64,6 +63,8 @@ class InstantSerializationTest {
64
63
@Test
65
64
fun testDefaultSerializers () {
66
65
// should be the same as the ISO 8601
67
- iso8601Serialization(Json .serializersModule.serializer())
66
+ @Suppress(" UNCHECKED_CAST" )
67
+ iso8601Serialization(serializer(typeOf<Instant >()) as KSerializer <Instant >)
68
+ // iso8601Serialization(serializer()) TODO: uncomment when the compiler adds KT-75759
68
69
}
69
70
}
0 commit comments