fix: DateTime serializer

This commit is contained in:
2019-07-30 23:01:58 +02:00
parent ecd130198c
commit 7346c85f95
3 changed files with 26 additions and 6 deletions

View File

@@ -4,6 +4,7 @@ import fr.postgresjson.entity.IdEntity
import fr.postgresjson.serializer.Serializer
import fr.postgresjson.serializer.deserialize
import fr.postgresjson.serializer.serialize
import org.joda.time.DateTime
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Assertions.assertTrue
import org.junit.jupiter.api.BeforeEach
@@ -13,10 +14,12 @@ import org.junit.jupiter.api.TestInstance
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
internal class SerializerTest: TestAbstract() {
private class ObjTest(var val1: String, var val2: Int) : IdEntity(1)
private class ObjTestDate(var val1: DateTime) : IdEntity(2)
private val serializer = Serializer()
private val objSerialized: String = """{"val1":"plop","val2":123,"id":2}"""
private val objSerializedWithExtra: String = """{"val1":"plop","val2":123,"id":2,"toto":"tata"}"""
private val objSerializedUpdate = """{"val1":"update","val2":123}"""
private lateinit var obj: ObjTest
@@ -29,13 +32,20 @@ internal class SerializerTest: TestAbstract() {
@Test
fun serialize() {
val json = serializer.serialize(obj)
assertTrue(json.contains("\"val1\":\"plop\",\"val2\":123"))
assertTrue(json.contains(""""val1":"plop","val2":123"""))
}
@Test
fun serialize2() {
val json = obj.serialize()
assertTrue(json.contains("\"val1\":\"plop\",\"val2\":123"))
assertTrue(json.contains(""""val1":"plop","val2":123"""))
}
@Test
fun serializeDate() {
val objDate = ObjTestDate(DateTime.parse("2019-07-30T14:08:51.420108+04:00"))
val json = objDate.serialize()
assertTrue(json.contains(""""val1":"2019-07-30T10:08:51.420Z""""), json)
}
@Test
@@ -45,6 +55,13 @@ internal class SerializerTest: TestAbstract() {
assertEquals(obj.val2, objDeserialized.val2)
}
@Test
fun deserializeWhitExtraField() {
val objDeserialized = serializer.deserialize<Int?, ObjTest>(objSerializedWithExtra)
assertEquals(obj.val1, objDeserialized.val1)
assertEquals(obj.val2, objDeserialized.val2)
}
@Test
fun deserializeUpdate() {
val objDeserialized: ObjTest = serializer.deserialize(objSerializedUpdate, obj)