From dd0380c5d0d9ed247286b616b326ada42c7ef0a5 Mon Sep 17 00:00:00 2001 From: Janne Koschinski <janne@kuschku.de> Date: Tue, 15 Jan 2019 20:46:37 +0100 Subject: [PATCH] Add tests for deserialization --- .../serializer/BoolSerializerTest.kt | 6 +++++- .../serializer/BufferInfoSerializerTest.kt | 3 +++ .../serializer/ByteArraySerializerTest.kt | 3 +++ .../serializer/ByteSerializerTest.kt | 5 +++++ .../serializer/CharSerializerTest.kt | 10 ++++++++++ .../serializer/DateTimeSerializerTest.kt | 14 ++++++++----- .../primitive/serializer/IntSerializerTest.kt | 6 ++++++ .../serializer/LongSerializerTest.kt | 5 +++++ .../serializer/MessageSerializerTest.kt | 6 ++++++ .../serializer/ShortSerializerTest.kt | 5 +++++ .../serializer/StringSerializerTest.kt | 20 ++++++++++++++++++- .../libquassel/util/SerializerHelpers.kt | 6 ++++++ 12 files changed, 82 insertions(+), 7 deletions(-) diff --git a/lib/src/test/java/de/kuschku/libquassel/protocol/primitive/serializer/BoolSerializerTest.kt b/lib/src/test/java/de/kuschku/libquassel/protocol/primitive/serializer/BoolSerializerTest.kt index 4f8cc8b24..282ca3d5d 100644 --- a/lib/src/test/java/de/kuschku/libquassel/protocol/primitive/serializer/BoolSerializerTest.kt +++ b/lib/src/test/java/de/kuschku/libquassel/protocol/primitive/serializer/BoolSerializerTest.kt @@ -19,14 +19,18 @@ package de.kuschku.libquassel.protocol.primitive.serializer +import de.kuschku.libquassel.util.deserialize import de.kuschku.libquassel.util.roundTrip import org.junit.Assert.assertEquals import org.junit.Test class BoolSerializerTest { @Test - fun testFalse() { + fun test() { assertEquals(true, roundTrip(BoolSerializer, true)) + assertEquals(true, deserialize(BoolSerializer, byteArrayOf(1))) + assertEquals(false, roundTrip(BoolSerializer, false)) + assertEquals(false, deserialize(BoolSerializer, byteArrayOf(0))) } } diff --git a/lib/src/test/java/de/kuschku/libquassel/protocol/primitive/serializer/BufferInfoSerializerTest.kt b/lib/src/test/java/de/kuschku/libquassel/protocol/primitive/serializer/BufferInfoSerializerTest.kt index 124f46083..b3cf67206 100644 --- a/lib/src/test/java/de/kuschku/libquassel/protocol/primitive/serializer/BufferInfoSerializerTest.kt +++ b/lib/src/test/java/de/kuschku/libquassel/protocol/primitive/serializer/BufferInfoSerializerTest.kt @@ -21,6 +21,7 @@ package de.kuschku.libquassel.protocol.primitive.serializer import de.kuschku.libquassel.protocol.Buffer_Type import de.kuschku.libquassel.quassel.BufferInfo +import de.kuschku.libquassel.util.deserialize import de.kuschku.libquassel.util.roundTrip import org.junit.Assert.assertEquals import org.junit.Test @@ -36,6 +37,7 @@ class BufferInfoSerializerTest { "" ) assertEquals(value, roundTrip(BufferInfoSerializer, value)) + assertEquals(value, deserialize(BufferInfoSerializer, byteArrayOf(-1, -1, -1, -1, -1, -1, -1, -1, 0, 0, -1, -1, -1, -1, 0, 0, 0, 0))) } @Test @@ -48,5 +50,6 @@ class BufferInfoSerializerTest { "äẞ\u0000\uFFFF" ) assertEquals(value, roundTrip(BufferInfoSerializer, value)) + assertEquals(value, deserialize(BufferInfoSerializer, byteArrayOf(127, -1, -1, -1, 127, -1, -1, -1, 0, 15, 127, -1, -1, -1, 0, 0, 0, 9, -61, -92, -31, -70, -98, 0, -17, -65, -65))) } } diff --git a/lib/src/test/java/de/kuschku/libquassel/protocol/primitive/serializer/ByteArraySerializerTest.kt b/lib/src/test/java/de/kuschku/libquassel/protocol/primitive/serializer/ByteArraySerializerTest.kt index f8378916c..50d561034 100644 --- a/lib/src/test/java/de/kuschku/libquassel/protocol/primitive/serializer/ByteArraySerializerTest.kt +++ b/lib/src/test/java/de/kuschku/libquassel/protocol/primitive/serializer/ByteArraySerializerTest.kt @@ -19,6 +19,7 @@ package de.kuschku.libquassel.protocol.primitive.serializer +import de.kuschku.libquassel.util.deserialize import de.kuschku.libquassel.util.roundTrip import org.junit.Assert.assertArrayEquals import org.junit.Test @@ -29,11 +30,13 @@ class ByteArraySerializerTest { fun testBaseCase() { val value = byteArrayOf() assertArrayEquals(value, roundTrip(ByteArraySerializer, ByteBuffer.wrap(value))?.array()) + assertArrayEquals(value, deserialize(ByteArraySerializer, byteArrayOf(0, 0, 0, 0))?.array()) } @Test fun testNormal() { val value = byteArrayOf(1, 2, 3, 4, 5, 6, 7, 8, 9) assertArrayEquals(value, roundTrip(ByteArraySerializer, ByteBuffer.wrap(value))?.array()) + assertArrayEquals(value, deserialize(ByteArraySerializer, byteArrayOf(0, 0, 0, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9))?.array()) } } diff --git a/lib/src/test/java/de/kuschku/libquassel/protocol/primitive/serializer/ByteSerializerTest.kt b/lib/src/test/java/de/kuschku/libquassel/protocol/primitive/serializer/ByteSerializerTest.kt index 8892bbfdc..e66020dc0 100644 --- a/lib/src/test/java/de/kuschku/libquassel/protocol/primitive/serializer/ByteSerializerTest.kt +++ b/lib/src/test/java/de/kuschku/libquassel/protocol/primitive/serializer/ByteSerializerTest.kt @@ -19,6 +19,7 @@ package de.kuschku.libquassel.protocol.primitive.serializer +import de.kuschku.libquassel.util.deserialize import de.kuschku.libquassel.util.roundTrip import org.junit.Assert.assertEquals import org.junit.Test @@ -28,20 +29,24 @@ class ByteSerializerTest { @Test fun testZero() { assertEquals(0.toByte(), roundTrip(ByteSerializer, 0.toByte())) + assertEquals(0.toByte(), deserialize(ByteSerializer, byteArrayOf(0))) } @Test fun testMinimal() { assertEquals(Byte.MIN_VALUE, roundTrip(ByteSerializer, Byte.MIN_VALUE)) + assertEquals(Byte.MIN_VALUE, deserialize(ByteSerializer, byteArrayOf(-128))) } @Test fun testMaximal() { assertEquals(Byte.MAX_VALUE, roundTrip(ByteSerializer, Byte.MAX_VALUE)) + assertEquals(Byte.MAX_VALUE, deserialize(ByteSerializer, byteArrayOf(127))) } @Test fun testAllOnes() { assertEquals((0.toByte().inv()), roundTrip(ByteSerializer, (0.toByte().inv()))) + assertEquals((0.toByte().inv()), deserialize(ByteSerializer, byteArrayOf(-1))) } } diff --git a/lib/src/test/java/de/kuschku/libquassel/protocol/primitive/serializer/CharSerializerTest.kt b/lib/src/test/java/de/kuschku/libquassel/protocol/primitive/serializer/CharSerializerTest.kt index 4cc17c512..5f242f426 100644 --- a/lib/src/test/java/de/kuschku/libquassel/protocol/primitive/serializer/CharSerializerTest.kt +++ b/lib/src/test/java/de/kuschku/libquassel/protocol/primitive/serializer/CharSerializerTest.kt @@ -19,6 +19,7 @@ package de.kuschku.libquassel.protocol.primitive.serializer +import de.kuschku.libquassel.util.deserialize import de.kuschku.libquassel.util.roundTrip import org.junit.Assert.assertEquals import org.junit.Test @@ -27,9 +28,18 @@ class CharSerializerTest { @Test fun testAll() { assertEquals(' ', roundTrip(CharSerializer, ' ')) + assertEquals(' ', deserialize(CharSerializer, byteArrayOf(0, 32))) + assertEquals('a', roundTrip(CharSerializer, 'a')) + assertEquals('a', deserialize(CharSerializer, byteArrayOf(0, 97))) + assertEquals('ä', roundTrip(CharSerializer, 'ä')) + assertEquals('ä', deserialize(CharSerializer, byteArrayOf(0, -28))) + assertEquals('\u0000', roundTrip(CharSerializer, '\u0000')) + assertEquals('\u0000', deserialize(CharSerializer, byteArrayOf(0, 0))) + assertEquals('\uFFFF', roundTrip(CharSerializer, '\uFFFF')) + assertEquals('\uFFFF', deserialize(CharSerializer, byteArrayOf(-1, -1))) } } diff --git a/lib/src/test/java/de/kuschku/libquassel/protocol/primitive/serializer/DateTimeSerializerTest.kt b/lib/src/test/java/de/kuschku/libquassel/protocol/primitive/serializer/DateTimeSerializerTest.kt index cd01454a6..2a6b68e07 100644 --- a/lib/src/test/java/de/kuschku/libquassel/protocol/primitive/serializer/DateTimeSerializerTest.kt +++ b/lib/src/test/java/de/kuschku/libquassel/protocol/primitive/serializer/DateTimeSerializerTest.kt @@ -19,11 +19,13 @@ package de.kuschku.libquassel.protocol.primitive.serializer +import de.kuschku.libquassel.util.deserialize import de.kuschku.libquassel.util.roundTrip import org.junit.Assert.assertEquals import org.junit.Test import org.threeten.bp.Instant import org.threeten.bp.LocalDateTime +import org.threeten.bp.Month import org.threeten.bp.ZoneOffset class DateTimeSerializerTest { @@ -31,15 +33,14 @@ class DateTimeSerializerTest { fun testEpoch() { val value = roundTrip(DateTimeSerializer, Instant.EPOCH) assertEquals(Instant.EPOCH, value) + assertEquals(Instant.EPOCH, deserialize(DateTimeSerializer, byteArrayOf(0, 37, 61, -116, 0, 0, 0, 0, 2))) } @Test fun testEpochAtTimezone() { val value = Instant.EPOCH.atOffset(ZoneOffset.ofTotalSeconds(1234)) - assertEquals( - value, - roundTrip(DateTimeSerializer, value) - ) + assertEquals(value, roundTrip(DateTimeSerializer, value)) + assertEquals(value, deserialize(DateTimeSerializer, byteArrayOf(0, 37, 61, -116, 0, 18, -44, 80, 3, 0, 0, 4, -46))) } @Test @@ -47,11 +48,14 @@ class DateTimeSerializerTest { val value = LocalDateTime.of(1970, 1, 1, 0, 0) .atZone(ZoneOffset.systemDefault()).toInstant() assertEquals(value, roundTrip(DateTimeSerializer, value)) + assertEquals(value, deserialize(DateTimeSerializer, byteArrayOf(0, 37, 61, -117, 4, -17, 109, -128, 2))) } @Test fun testNormalCase() { - val value = LocalDateTime.now().atZone(ZoneOffset.systemDefault()).toInstant() + val value = LocalDateTime.of(2019, Month.JANUARY, 15, 20, 25) + .atZone(ZoneOffset.systemDefault()).toInstant() assertEquals(value, roundTrip(DateTimeSerializer, value)) + assertEquals(value, deserialize(DateTimeSerializer, byteArrayOf(0, 37, -125, -125, 4, 42, -106, -32, 2))) } } diff --git a/lib/src/test/java/de/kuschku/libquassel/protocol/primitive/serializer/IntSerializerTest.kt b/lib/src/test/java/de/kuschku/libquassel/protocol/primitive/serializer/IntSerializerTest.kt index b28075ee0..a9c449af2 100644 --- a/lib/src/test/java/de/kuschku/libquassel/protocol/primitive/serializer/IntSerializerTest.kt +++ b/lib/src/test/java/de/kuschku/libquassel/protocol/primitive/serializer/IntSerializerTest.kt @@ -19,28 +19,34 @@ package de.kuschku.libquassel.protocol.primitive.serializer +import de.kuschku.libquassel.util.deserialize import de.kuschku.libquassel.util.roundTrip import org.junit.Assert.assertEquals import org.junit.Test +import kotlin.experimental.inv class IntSerializerTest { @Test fun testZero() { assertEquals(0, roundTrip(IntSerializer, 0)) + assertEquals(0, deserialize(IntSerializer, byteArrayOf(0, 0, 0, 0))) } @Test fun testMinimal() { assertEquals(Int.MIN_VALUE, roundTrip(IntSerializer, Int.MIN_VALUE)) + assertEquals(Int.MIN_VALUE, deserialize(IntSerializer, byteArrayOf(-128, 0, 0, 0))) } @Test fun testMaximal() { assertEquals(Int.MAX_VALUE, roundTrip(IntSerializer, Int.MAX_VALUE)) + assertEquals(Int.MAX_VALUE, deserialize(IntSerializer, byteArrayOf(127, -1, -1, -1))) } @Test fun testAllOnes() { assertEquals(0.inv(), roundTrip(IntSerializer, 0.inv())) + assertEquals(0.inv(), deserialize(IntSerializer, byteArrayOf(-1, -1, -1, -1))) } } diff --git a/lib/src/test/java/de/kuschku/libquassel/protocol/primitive/serializer/LongSerializerTest.kt b/lib/src/test/java/de/kuschku/libquassel/protocol/primitive/serializer/LongSerializerTest.kt index e69e7231f..7bcd8d586 100644 --- a/lib/src/test/java/de/kuschku/libquassel/protocol/primitive/serializer/LongSerializerTest.kt +++ b/lib/src/test/java/de/kuschku/libquassel/protocol/primitive/serializer/LongSerializerTest.kt @@ -19,6 +19,7 @@ package de.kuschku.libquassel.protocol.primitive.serializer +import de.kuschku.libquassel.util.deserialize import de.kuschku.libquassel.util.roundTrip import org.junit.Assert.assertEquals import org.junit.Test @@ -27,20 +28,24 @@ class LongSerializerTest { @Test fun testZero() { assertEquals(0L, roundTrip(LongSerializer, 0L)) + assertEquals(0L, deserialize(LongSerializer, byteArrayOf(0, 0, 0, 0, 0, 0, 0, 0))) } @Test fun testMinimal() { assertEquals(Long.MIN_VALUE, roundTrip(LongSerializer, Long.MIN_VALUE)) + assertEquals(Long.MIN_VALUE, deserialize(LongSerializer, byteArrayOf(-128, 0, 0, 0, 0, 0, 0, 0))) } @Test fun testMaximal() { assertEquals(Long.MAX_VALUE, roundTrip(LongSerializer, Long.MAX_VALUE)) + assertEquals(Long.MAX_VALUE, deserialize(LongSerializer, byteArrayOf(127, -1, -1, -1, -1, -1, -1, -1))) } @Test fun testAllOnes() { assertEquals(0L.inv(), roundTrip(LongSerializer, 0L.inv())) + assertEquals(0L.inv(), deserialize(LongSerializer, byteArrayOf(-1, -1, -1, -1, -1, -1, -1, -1))) } } diff --git a/lib/src/test/java/de/kuschku/libquassel/protocol/primitive/serializer/MessageSerializerTest.kt b/lib/src/test/java/de/kuschku/libquassel/protocol/primitive/serializer/MessageSerializerTest.kt index 9f874a2e2..5cc08b616 100644 --- a/lib/src/test/java/de/kuschku/libquassel/protocol/primitive/serializer/MessageSerializerTest.kt +++ b/lib/src/test/java/de/kuschku/libquassel/protocol/primitive/serializer/MessageSerializerTest.kt @@ -22,6 +22,7 @@ package de.kuschku.libquassel.protocol.primitive.serializer import de.kuschku.libquassel.protocol.* import de.kuschku.libquassel.quassel.BufferInfo import de.kuschku.libquassel.quassel.QuasselFeatures +import de.kuschku.libquassel.util.deserialize import de.kuschku.libquassel.util.roundTrip import org.junit.Assert.assertEquals import org.junit.Test @@ -50,6 +51,7 @@ class MessageSerializerTest { ) val other = roundTrip(MessageSerializer, value, features = QuasselFeatures.empty()) assertEquals(value, other) + assertEquals(value, deserialize(MessageSerializer, byteArrayOf(-1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), features = QuasselFeatures.empty())) } @Test @@ -74,6 +76,7 @@ class MessageSerializerTest { ) val other = roundTrip(MessageSerializer, value, features = QuasselFeatures.empty()) assertEquals(value, other) + assertEquals(value, deserialize(MessageSerializer, byteArrayOf(127, -1, -1, -1, 90, -33, -109, -106, 0, 7, -1, -1, -113, 127, -1, -1, -1, 127, -1, -1, -1, 0, 15, 127, -1, -1, -1, 0, 0, 0, 9, -61, -92, -31, -70, -98, 0, -17, -65, -65, 0, 0, 0, 9, -61, -92, -31, -70, -98, 0, -17, -65, -65, 0, 0, 0, 9, -61, -92, -31, -70, -98, 0, -17, -65, -65), features = QuasselFeatures.empty())) } @Test @@ -98,6 +101,7 @@ class MessageSerializerTest { ) val other = roundTrip(MessageSerializer, value, features = QuasselFeatures.all()) assertEquals(value, other) + assertEquals(value, deserialize(MessageSerializer, byteArrayOf(-1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), features = QuasselFeatures.all())) } @Test @@ -122,6 +126,7 @@ class MessageSerializerTest { ) val other = roundTrip(MessageSerializer, value, features = QuasselFeatures.all()) assertEquals(value, other) + assertEquals(value, deserialize(MessageSerializer, byteArrayOf(127, -1, -1, -1, -1, -1, -1, -1, 0, 0, 1, 98, -7, 88, -127, -16, 0, 7, -1, -1, -113, 127, -1, -1, -1, 127, -1, -1, -1, 0, 15, 127, -1, -1, -1, 0, 0, 0, 9, -61, -92, -31, -70, -98, 0, -17, -65, -65, 0, 0, 0, 9, -61, -92, -31, -70, -98, 0, -17, -65, -65, 0, 0, 0, 9, -61, -92, -31, -70, -98, 0, -17, -65, -65, 0, 0, 0, 9, -61, -92, -31, -70, -98, 0, -17, -65, -65, 0, 0, 0, 9, -61, -92, -31, -70, -98, 0, -17, -65, -65, 0, 0, 0, 9, -61, -92, -31, -70, -98, 0, -17, -65, -65), features = QuasselFeatures.all())) } @Test @@ -146,5 +151,6 @@ class MessageSerializerTest { ) val other = roundTrip(MessageSerializer, value, features = QuasselFeatures.all()) assertEquals(value, other) + assertEquals(value, deserialize(MessageSerializer, byteArrayOf(127, -1, -1, -1, -1, -1, -1, -1, 0, 0, 19, -121, -1, -1, -40, -16, 0, 7, -1, -1, -113, 127, -1, -1, -1, 127, -1, -1, -1, 0, 15, 127, -1, -1, -1, 0, 0, 0, 9, -61, -92, -31, -70, -98, 0, -17, -65, -65, 0, 0, 0, 9, -61, -92, -31, -70, -98, 0, -17, -65, -65, 0, 0, 0, 9, -61, -92, -31, -70, -98, 0, -17, -65, -65, 0, 0, 0, 9, -61, -92, -31, -70, -98, 0, -17, -65, -65, 0, 0, 0, 9, -61, -92, -31, -70, -98, 0, -17, -65, -65, 0, 0, 0, 9, -61, -92, -31, -70, -98, 0, -17, -65, -65), features = QuasselFeatures.all())) } } diff --git a/lib/src/test/java/de/kuschku/libquassel/protocol/primitive/serializer/ShortSerializerTest.kt b/lib/src/test/java/de/kuschku/libquassel/protocol/primitive/serializer/ShortSerializerTest.kt index 983f13056..79d090def 100644 --- a/lib/src/test/java/de/kuschku/libquassel/protocol/primitive/serializer/ShortSerializerTest.kt +++ b/lib/src/test/java/de/kuschku/libquassel/protocol/primitive/serializer/ShortSerializerTest.kt @@ -19,6 +19,7 @@ package de.kuschku.libquassel.protocol.primitive.serializer +import de.kuschku.libquassel.util.deserialize import de.kuschku.libquassel.util.roundTrip import org.junit.Assert.assertEquals import org.junit.Test @@ -28,20 +29,24 @@ class ShortSerializerTest { @Test fun testZero() { assertEquals(0.toShort(), roundTrip(ShortSerializer, 0.toShort())) + assertEquals(0.toShort(), deserialize(ShortSerializer, byteArrayOf(0, 0))) } @Test fun testMinimal() { assertEquals(Short.MIN_VALUE, roundTrip(ShortSerializer, Short.MIN_VALUE)) + assertEquals(Short.MIN_VALUE, deserialize(ShortSerializer, byteArrayOf(-128, 0))) } @Test fun testMaximal() { assertEquals(Short.MAX_VALUE, roundTrip(ShortSerializer, Short.MAX_VALUE)) + assertEquals(Short.MAX_VALUE, deserialize(ShortSerializer, byteArrayOf(127, -1))) } @Test fun testAllOnes() { assertEquals((0.toShort().inv()), roundTrip(ShortSerializer, (0.toShort().inv()))) + assertEquals((0.toShort().inv()), deserialize(ShortSerializer, byteArrayOf(-1, -1))) } } diff --git a/lib/src/test/java/de/kuschku/libquassel/protocol/primitive/serializer/StringSerializerTest.kt b/lib/src/test/java/de/kuschku/libquassel/protocol/primitive/serializer/StringSerializerTest.kt index f17fc1982..9ba4c0b4a 100644 --- a/lib/src/test/java/de/kuschku/libquassel/protocol/primitive/serializer/StringSerializerTest.kt +++ b/lib/src/test/java/de/kuschku/libquassel/protocol/primitive/serializer/StringSerializerTest.kt @@ -19,6 +19,7 @@ package de.kuschku.libquassel.protocol.primitive.serializer +import de.kuschku.libquassel.util.deserialize import de.kuschku.libquassel.util.roundTrip import org.hamcrest.BaseMatcher import org.hamcrest.Description @@ -28,7 +29,7 @@ import org.junit.Test class StringSerializerTest { @Test - fun testVigListOfNaughtyStrings() { + fun testBigListOfNaughtyStrings() { this::class.java.getResourceAsStream("/blns.txt").bufferedReader(Charsets.UTF_8).forEachLine { // Ignore comments if (!it.startsWith('#')) { @@ -38,6 +39,23 @@ class StringSerializerTest { } } + @Test + fun testSample() { + val value = """ + : ACHTUNG! + ALLES TURISTEN UND NONTEKNISCHEN LOOKENPEEPERS! + DAS KOMPUTERMASCHINE IST NICHT FÜR DER GEFINGERPOKEN UND MITTENGRABEN! ODERWISE IST EASY TO SCHNAPPEN DER SPRINGENWERK, BLOWENFUSEN UND POPPENCORKEN MIT SPITZENSPARKEN. + IST NICHT FÜR GEWERKEN BEI DUMMKOPFEN. DER RUBBERNECKEN SIGHTSEEREN KEEPEN DAS COTTONPICKEN HÄNDER IN DAS POCKETS MUSS. + ZO RELAXEN UND WATSCHEN DER BLINKENLICHTEN. + """.trimIndent() + + assertEquals(value, roundTrip(StringSerializer.UTF8, value)) + assertEquals(value, deserialize(StringSerializer.UTF8, byteArrayOf(0, 0, 1, -118, 58, 32, 65, 67, 72, 84, 85, 78, 71, 33, 10, 65, 76, 76, 69, 83, 32, 84, 85, 82, 73, 83, 84, 69, 78, 32, 85, 78, 68, 32, 78, 79, 78, 84, 69, 75, 78, 73, 83, 67, 72, 69, 78, 32, 76, 79, 79, 75, 69, 78, 80, 69, 69, 80, 69, 82, 83, 33, 10, 68, 65, 83, 32, 75, 79, 77, 80, 85, 84, 69, 82, 77, 65, 83, 67, 72, 73, 78, 69, 32, 73, 83, 84, 32, 78, 73, 67, 72, 84, 32, 70, -61, -100, 82, 32, 68, 69, 82, 32, 71, 69, 70, 73, 78, 71, 69, 82, 80, 79, 75, 69, 78, 32, 85, 78, 68, 32, 77, 73, 84, 84, 69, 78, 71, 82, 65, 66, 69, 78, 33, 32, 79, 68, 69, 82, 87, 73, 83, 69, 32, 73, 83, 84, 32, 69, 65, 83, 89, 32, 84, 79, 32, 83, 67, 72, 78, 65, 80, 80, 69, 78, 32, 68, 69, 82, 32, 83, 80, 82, 73, 78, 71, 69, 78, 87, 69, 82, 75, 44, 32, 66, 76, 79, 87, 69, 78, 70, 85, 83, 69, 78, 32, 85, 78, 68, 32, 80, 79, 80, 80, 69, 78, 67, 79, 82, 75, 69, 78, 32, 77, 73, 84, 32, 83, 80, 73, 84, 90, 69, 78, 83, 80, 65, 82, 75, 69, 78, 46, 10, 73, 83, 84, 32, 78, 73, 67, 72, 84, 32, 70, -61, -100, 82, 32, 71, 69, 87, 69, 82, 75, 69, 78, 32, 66, 69, 73, 32, 68, 85, 77, 77, 75, 79, 80, 70, 69, 78, 46, 32, 68, 69, 82, 32, 82, 85, 66, 66, 69, 82, 78, 69, 67, 75, 69, 78, 32, 83, 73, 71, 72, 84, 83, 69, 69, 82, 69, 78, 32, 75, 69, 69, 80, 69, 78, 32, 68, 65, 83, 32, 67, 79, 84, 84, 79, 78, 80, 73, 67, 75, 69, 78, 32, 72, -61, -124, 78, 68, 69, 82, 32, 73, 78, 32, 68, 65, 83, 32, 80, 79, 67, 75, 69, 84, 83, 32, 77, 85, 83, 83, 46, 10, 90, 79, 32, 82, 69, 76, 65, 88, 69, 78, 32, 85, 78, 68, 32, 87, 65, 84, 83, 67, 72, 69, 78, 32, 68, 69, 82, 32, 66, 76, 73, 78, 75, 69, 78, 76, 73, 67, 72, 84, 69, 78, 46))) + + assertEquals(value, roundTrip(StringSerializer.UTF16, value)) + assertEquals(value, deserialize(StringSerializer.UTF16, byteArrayOf(0, 0, 3, 14, 0, 58, 0, 32, 0, 65, 0, 67, 0, 72, 0, 84, 0, 85, 0, 78, 0, 71, 0, 33, 0, 10, 0, 65, 0, 76, 0, 76, 0, 69, 0, 83, 0, 32, 0, 84, 0, 85, 0, 82, 0, 73, 0, 83, 0, 84, 0, 69, 0, 78, 0, 32, 0, 85, 0, 78, 0, 68, 0, 32, 0, 78, 0, 79, 0, 78, 0, 84, 0, 69, 0, 75, 0, 78, 0, 73, 0, 83, 0, 67, 0, 72, 0, 69, 0, 78, 0, 32, 0, 76, 0, 79, 0, 79, 0, 75, 0, 69, 0, 78, 0, 80, 0, 69, 0, 69, 0, 80, 0, 69, 0, 82, 0, 83, 0, 33, 0, 10, 0, 68, 0, 65, 0, 83, 0, 32, 0, 75, 0, 79, 0, 77, 0, 80, 0, 85, 0, 84, 0, 69, 0, 82, 0, 77, 0, 65, 0, 83, 0, 67, 0, 72, 0, 73, 0, 78, 0, 69, 0, 32, 0, 73, 0, 83, 0, 84, 0, 32, 0, 78, 0, 73, 0, 67, 0, 72, 0, 84, 0, 32, 0, 70, 0, -36, 0, 82, 0, 32, 0, 68, 0, 69, 0, 82, 0, 32, 0, 71, 0, 69, 0, 70, 0, 73, 0, 78, 0, 71, 0, 69, 0, 82, 0, 80, 0, 79, 0, 75, 0, 69, 0, 78, 0, 32, 0, 85, 0, 78, 0, 68, 0, 32, 0, 77, 0, 73, 0, 84, 0, 84, 0, 69, 0, 78, 0, 71, 0, 82, 0, 65, 0, 66, 0, 69, 0, 78, 0, 33, 0, 32, 0, 79, 0, 68, 0, 69, 0, 82, 0, 87, 0, 73, 0, 83, 0, 69, 0, 32, 0, 73, 0, 83, 0, 84, 0, 32, 0, 69, 0, 65, 0, 83, 0, 89, 0, 32, 0, 84, 0, 79, 0, 32, 0, 83, 0, 67, 0, 72, 0, 78, 0, 65, 0, 80, 0, 80, 0, 69, 0, 78, 0, 32, 0, 68, 0, 69, 0, 82, 0, 32, 0, 83, 0, 80, 0, 82, 0, 73, 0, 78, 0, 71, 0, 69, 0, 78, 0, 87, 0, 69, 0, 82, 0, 75, 0, 44, 0, 32, 0, 66, 0, 76, 0, 79, 0, 87, 0, 69, 0, 78, 0, 70, 0, 85, 0, 83, 0, 69, 0, 78, 0, 32, 0, 85, 0, 78, 0, 68, 0, 32, 0, 80, 0, 79, 0, 80, 0, 80, 0, 69, 0, 78, 0, 67, 0, 79, 0, 82, 0, 75, 0, 69, 0, 78, 0, 32, 0, 77, 0, 73, 0, 84, 0, 32, 0, 83, 0, 80, 0, 73, 0, 84, 0, 90, 0, 69, 0, 78, 0, 83, 0, 80, 0, 65, 0, 82, 0, 75, 0, 69, 0, 78, 0, 46, 0, 10, 0, 73, 0, 83, 0, 84, 0, 32, 0, 78, 0, 73, 0, 67, 0, 72, 0, 84, 0, 32, 0, 70, 0, -36, 0, 82, 0, 32, 0, 71, 0, 69, 0, 87, 0, 69, 0, 82, 0, 75, 0, 69, 0, 78, 0, 32, 0, 66, 0, 69, 0, 73, 0, 32, 0, 68, 0, 85, 0, 77, 0, 77, 0, 75, 0, 79, 0, 80, 0, 70, 0, 69, 0, 78, 0, 46, 0, 32, 0, 68, 0, 69, 0, 82, 0, 32, 0, 82, 0, 85, 0, 66, 0, 66, 0, 69, 0, 82, 0, 78, 0, 69, 0, 67, 0, 75, 0, 69, 0, 78, 0, 32, 0, 83, 0, 73, 0, 71, 0, 72, 0, 84, 0, 83, 0, 69, 0, 69, 0, 82, 0, 69, 0, 78, 0, 32, 0, 75, 0, 69, 0, 69, 0, 80, 0, 69, 0, 78, 0, 32, 0, 68, 0, 65, 0, 83, 0, 32, 0, 67, 0, 79, 0, 84, 0, 84, 0, 79, 0, 78, 0, 80, 0, 73, 0, 67, 0, 75, 0, 69, 0, 78, 0, 32, 0, 72, 0, -60, 0, 78, 0, 68, 0, 69, 0, 82, 0, 32, 0, 73, 0, 78, 0, 32, 0, 68, 0, 65, 0, 83, 0, 32, 0, 80, 0, 79, 0, 67, 0, 75, 0, 69, 0, 84, 0, 83, 0, 32, 0, 77, 0, 85, 0, 83, 0, 83, 0, 46, 0, 10, 0, 90, 0, 79, 0, 32, 0, 82, 0, 69, 0, 76, 0, 65, 0, 88, 0, 69, 0, 78, 0, 32, 0, 85, 0, 78, 0, 68, 0, 32, 0, 87, 0, 65, 0, 84, 0, 83, 0, 67, 0, 72, 0, 69, 0, 78, 0, 32, 0, 68, 0, 69, 0, 82, 0, 32, 0, 66, 0, 76, 0, 73, 0, 78, 0, 75, 0, 69, 0, 78, 0, 76, 0, 73, 0, 67, 0, 72, 0, 84, 0, 69, 0, 78, 0, 46))) + } + @Test fun testAscii() { // The simple solution: Just test all diff --git a/lib/src/test/java/de/kuschku/libquassel/util/SerializerHelpers.kt b/lib/src/test/java/de/kuschku/libquassel/util/SerializerHelpers.kt index ea1ade487..a565b5070 100644 --- a/lib/src/test/java/de/kuschku/libquassel/util/SerializerHelpers.kt +++ b/lib/src/test/java/de/kuschku/libquassel/util/SerializerHelpers.kt @@ -22,6 +22,7 @@ package de.kuschku.libquassel.util import de.kuschku.libquassel.protocol.primitive.serializer.Serializer import de.kuschku.libquassel.quassel.QuasselFeatures import de.kuschku.libquassel.util.nio.ChainedByteBuffer +import java.nio.ByteBuffer fun <T> roundTrip(serializer: Serializer<T>, value: T, features: QuasselFeatures = QuasselFeatures.all()): T { @@ -32,3 +33,8 @@ fun <T> roundTrip(serializer: Serializer<T>, value: T, val buffer = chainedBuffer.toBuffer() return serializer.deserialize(buffer, features) } + +fun <T> deserialize(serializer: Serializer<T>, values: ByteArray, + features: QuasselFeatures = QuasselFeatures.all()): T { + return serializer.deserialize(ByteBuffer.wrap(byteArrayOf(*values)), features) +} -- GitLab