Skip to content
Snippets Groups Projects
Commit df36ffab authored by Janne Mareike Koschinski's avatar Janne Mareike Koschinski
Browse files

Fixed a few bugs with the serialization tests

parent b622c9d6
Branches
Tags
No related merge requests found
......@@ -86,7 +86,9 @@ dependencies {
implementation(appArch("persistence.room", "runtime"))
kapt(appArch("persistence.room", "compiler"))
implementation(appArch("paging", "runtime", version = "1.0.0-alpha1"))
implementation(appArch("paging", "runtime", version = "1.0.0-alpha1")) {
exclude(group = "junit", module = "junit")
}
implementation("org.threeten:threetenbp:1.3.6")
......
......@@ -2,10 +2,7 @@ package de.kuschku.libquassel.protocol.primitive.serializer
import de.kuschku.libquassel.protocol.Quassel_Features
import de.kuschku.libquassel.util.nio.ChainedByteBuffer
import org.threeten.bp.Instant
import org.threeten.bp.LocalDateTime
import org.threeten.bp.OffsetDateTime
import org.threeten.bp.ZoneOffset
import org.threeten.bp.*
import org.threeten.bp.temporal.ChronoField
import org.threeten.bp.temporal.JulianFields
import org.threeten.bp.temporal.Temporal
......@@ -37,6 +34,12 @@ object DateTimeSerializer : Serializer<Temporal> {
ByteSerializer.serialize(buffer, TimeSpec.OffsetFromUTC.value, features)
IntSerializer.serialize(buffer, data.offset.totalSeconds, features)
}
is ZonedDateTime -> {
IntSerializer.serialize(buffer, data.getLong(JulianFields.JULIAN_DAY).toInt(), features)
IntSerializer.serialize(buffer, data.getLong(ChronoField.MILLI_OF_DAY).toInt(), features)
ByteSerializer.serialize(buffer, TimeSpec.OffsetFromUTC.value, features)
IntSerializer.serialize(buffer, data.offset.totalSeconds, features)
}
is Instant -> {
val time = data.atOffset(ZoneOffset.UTC)
IntSerializer.serialize(buffer, time.getLong(JulianFields.JULIAN_DAY).toInt(), features)
......@@ -61,6 +64,12 @@ object DateTimeSerializer : Serializer<Temporal> {
.with(JulianFields.JULIAN_DAY, julianDay)
.with(ChronoField.MILLI_OF_DAY, milliOfDay)
.toInstant()
TimeSpec.OffsetFromUTC ->
Instant.EPOCH.atOffset(
ZoneOffset.ofTotalSeconds(IntSerializer.deserialize(buffer, features)))
.with(JulianFields.JULIAN_DAY, julianDay)
.with(ChronoField.MILLI_OF_DAY, milliOfDay)
.toInstant()
else ->
Instant.EPOCH.atOffset(ZoneOffset.UTC)
.with(JulianFields.JULIAN_DAY, julianDay)
......
......@@ -44,12 +44,13 @@ class SerializerUnitTest {
@Test
fun dateTimeSerializer() {
assertEquals(Instant.EPOCH, roundTrip(DateTimeSerializer, Instant.EPOCH))
assertEquals(Instant.now(), roundTrip(DateTimeSerializer, Instant.now()))
val now = Instant.now()
assertEquals(now, roundTrip(DateTimeSerializer, now))
val value1 = Instant.EPOCH.atOffset(ZoneOffset.ofTotalSeconds(1234))
assertEquals(value1, roundTrip(DateTimeSerializer, value1))
assertEquals(value1.toInstant(), roundTrip(DateTimeSerializer, value1))
val value2 = Instant.now().atOffset(ZoneOffset.ofTotalSeconds(1234))
assertEquals(value2, roundTrip(DateTimeSerializer, value2))
assertEquals(value2.toInstant(), roundTrip(DateTimeSerializer, value2))
val value3 = LocalDateTime.of(1970, 1, 1, 0, 0)
.atZone(ZoneOffset.systemDefault()).toInstant()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment