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
No related branches found
No related tags found
No related merge requests found
...@@ -86,7 +86,9 @@ dependencies { ...@@ -86,7 +86,9 @@ dependencies {
implementation(appArch("persistence.room", "runtime")) implementation(appArch("persistence.room", "runtime"))
kapt(appArch("persistence.room", "compiler")) 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") implementation("org.threeten:threetenbp:1.3.6")
......
...@@ -2,10 +2,7 @@ package de.kuschku.libquassel.protocol.primitive.serializer ...@@ -2,10 +2,7 @@ package de.kuschku.libquassel.protocol.primitive.serializer
import de.kuschku.libquassel.protocol.Quassel_Features import de.kuschku.libquassel.protocol.Quassel_Features
import de.kuschku.libquassel.util.nio.ChainedByteBuffer import de.kuschku.libquassel.util.nio.ChainedByteBuffer
import org.threeten.bp.Instant import org.threeten.bp.*
import org.threeten.bp.LocalDateTime
import org.threeten.bp.OffsetDateTime
import org.threeten.bp.ZoneOffset
import org.threeten.bp.temporal.ChronoField import org.threeten.bp.temporal.ChronoField
import org.threeten.bp.temporal.JulianFields import org.threeten.bp.temporal.JulianFields
import org.threeten.bp.temporal.Temporal import org.threeten.bp.temporal.Temporal
...@@ -37,6 +34,12 @@ object DateTimeSerializer : Serializer<Temporal> { ...@@ -37,6 +34,12 @@ object DateTimeSerializer : Serializer<Temporal> {
ByteSerializer.serialize(buffer, TimeSpec.OffsetFromUTC.value, features) ByteSerializer.serialize(buffer, TimeSpec.OffsetFromUTC.value, features)
IntSerializer.serialize(buffer, data.offset.totalSeconds, 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 -> { is Instant -> {
val time = data.atOffset(ZoneOffset.UTC) val time = data.atOffset(ZoneOffset.UTC)
IntSerializer.serialize(buffer, time.getLong(JulianFields.JULIAN_DAY).toInt(), features) IntSerializer.serialize(buffer, time.getLong(JulianFields.JULIAN_DAY).toInt(), features)
...@@ -61,6 +64,12 @@ object DateTimeSerializer : Serializer<Temporal> { ...@@ -61,6 +64,12 @@ object DateTimeSerializer : Serializer<Temporal> {
.with(JulianFields.JULIAN_DAY, julianDay) .with(JulianFields.JULIAN_DAY, julianDay)
.with(ChronoField.MILLI_OF_DAY, milliOfDay) .with(ChronoField.MILLI_OF_DAY, milliOfDay)
.toInstant() .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 -> else ->
Instant.EPOCH.atOffset(ZoneOffset.UTC) Instant.EPOCH.atOffset(ZoneOffset.UTC)
.with(JulianFields.JULIAN_DAY, julianDay) .with(JulianFields.JULIAN_DAY, julianDay)
......
...@@ -44,12 +44,13 @@ class SerializerUnitTest { ...@@ -44,12 +44,13 @@ class SerializerUnitTest {
@Test @Test
fun dateTimeSerializer() { fun dateTimeSerializer() {
assertEquals(Instant.EPOCH, roundTrip(DateTimeSerializer, Instant.EPOCH)) 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)) 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)) 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) val value3 = LocalDateTime.of(1970, 1, 1, 0, 0)
.atZone(ZoneOffset.systemDefault()).toInstant() .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