@@ -9,9 +9,10 @@ import kotlinx.serialization.json.*
99import kotlinx.serialization.builtins.*
1010import kotlin.time.*
1111import kotlin.test.*
12+ import kotlin.reflect.typeOf
1213
1314@OptIn(ExperimentalTime ::class )
14- class InstantSerializationTest {
15+ class InstantSerializationTest : JsonTestBase () {
1516 private fun iso8601Serialization (serializer : KSerializer <Instant >) {
1617 for ((instant, json) in listOf (
1718 Pair (Instant .fromEpochSeconds(1607505416 , 124000 ),
@@ -23,8 +24,7 @@ class InstantSerializationTest {
2324 Pair (Instant .fromEpochSeconds(987654321 , 0 ),
2425 " \" 2001-04-19T04:25:21Z\" " ),
2526 )) {
26- assertEquals(json, Json .encodeToString(serializer, instant))
27- assertEquals(instant, Json .decodeFromString(serializer, json))
27+ assertJsonFormAndRestored(serializer, instant, json)
2828 }
2929 }
3030
@@ -39,8 +39,7 @@ class InstantSerializationTest {
3939 Pair (Instant .fromEpochSeconds(987654321 , 0 ),
4040 " {\" epochSeconds\" :987654321}" ),
4141 )) {
42- assertEquals(json, Json .encodeToString(serializer, instant))
43- assertEquals(instant, Json .decodeFromString(serializer, json))
42+ assertJsonFormAndRestored(serializer, instant, json)
4443 }
4544 // check that having a `"nanosecondsOfSecond": 0` field doesn't break deserialization
4645 assertEquals(Instant .fromEpochSeconds(987654321 , 0 ),
@@ -64,6 +63,8 @@ class InstantSerializationTest {
6463 @Test
6564 fun testDefaultSerializers () {
6665 // 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
6869 }
6970}
0 commit comments