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

Additional testing

parent 3c0e613b
Branches
No related tags found
No related merge requests found
Pipeline #583 passed
Showing
with 172 additions and 4 deletions
...@@ -18,14 +18,26 @@ ...@@ -18,14 +18,26 @@
*/ */
package de.kuschku.libquassel.protocol.serializers.primitive package de.kuschku.libquassel.protocol.serializers.primitive
import de.kuschku.libquassel.protocol.serializers.QtSerializers
import de.kuschku.libquassel.protocol.testutil.byteBufferOf import de.kuschku.libquassel.protocol.testutil.byteBufferOf
import de.kuschku.libquassel.protocol.testutil.matchers.MapMatcher import de.kuschku.libquassel.protocol.testutil.matchers.MapMatcher
import de.kuschku.libquassel.protocol.testutil.qtSerializerTest import de.kuschku.libquassel.protocol.testutil.qtSerializerTest
import de.kuschku.libquassel.protocol.variant.QVariantMap
import de.kuschku.libquassel.protocol.variant.QtType import de.kuschku.libquassel.protocol.variant.QtType
import de.kuschku.libquassel.protocol.variant.qVariant import de.kuschku.libquassel.protocol.variant.qVariant
import org.junit.jupiter.api.Assertions
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Test import org.junit.jupiter.api.Test
class QVariantMapSerializerTest { class QVariantMapSerializerTest {
@Test
fun testIsRegistered() {
assertEquals(
QVariantMapSerializer,
QtSerializers.find<QVariantMap>(QtType.QVariantMap),
)
}
@Test @Test
fun testEmpty() = qtSerializerTest( fun testEmpty() = qtSerializerTest(
QVariantMapSerializer, QVariantMapSerializer,
...@@ -50,8 +62,20 @@ class QVariantMapSerializerTest { ...@@ -50,8 +62,20 @@ class QVariantMapSerializerTest {
mapOf( mapOf(
"" to qVariant<String?>(null, QtType.QString) "" to qVariant<String?>(null, QtType.QString)
), ),
byteBufferOf(0x00u, 0x00u, 0x00u, 0x01u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x0Au, 0x00u, 0xFFu, 0xFFu, 0xFFu, 0xFFu), byteBufferOf(
::MapMatcher // length
0x00u, 0x00u, 0x00u, 0x01u,
// length of key
0xFFu, 0xFFu, 0xFFu, 0xFFu,
// type of value
0x00u, 0x00u, 0x00u, 0x0Au,
// isNull of value
0x00u,
// length of value
0xFFu, 0xFFu, 0xFFu, 0xFFu
),
::MapMatcher,
serializeFeatureSet = null
) )
} }
...@@ -19,12 +19,24 @@ ...@@ -19,12 +19,24 @@
package de.kuschku.libquassel.protocol.serializers.primitive package de.kuschku.libquassel.protocol.serializers.primitive
import de.kuschku.libquassel.protocol.serializers.NoSerializerForTypeException import de.kuschku.libquassel.protocol.serializers.NoSerializerForTypeException
import de.kuschku.libquassel.protocol.serializers.QtSerializers
import de.kuschku.libquassel.protocol.testutil.byteBufferOf import de.kuschku.libquassel.protocol.testutil.byteBufferOf
import de.kuschku.libquassel.protocol.testutil.deserialize import de.kuschku.libquassel.protocol.testutil.deserialize
import de.kuschku.libquassel.protocol.variant.QVariant_
import de.kuschku.libquassel.protocol.variant.QtType
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Test import org.junit.jupiter.api.Test
import org.junit.jupiter.api.assertThrows import org.junit.jupiter.api.assertThrows
class QVariantSerializerTest { class QVariantSerializerTest {
@Test
fun testIsRegistered() {
assertEquals(
QVariantSerializer,
QtSerializers.find<QVariant_>(QtType.QVariant),
)
}
@Test @Test
fun testUnregisteredQtType() { fun testUnregisteredQtType() {
assertThrows<NoSerializerForTypeException> { assertThrows<NoSerializerForTypeException> {
......
...@@ -18,12 +18,24 @@ ...@@ -18,12 +18,24 @@
*/ */
package de.kuschku.libquassel.protocol.serializers.primitive package de.kuschku.libquassel.protocol.serializers.primitive
import de.kuschku.libquassel.protocol.serializers.QtSerializers
import de.kuschku.libquassel.protocol.testutil.byteBufferOf import de.kuschku.libquassel.protocol.testutil.byteBufferOf
import de.kuschku.libquassel.protocol.testutil.qtSerializerTest import de.kuschku.libquassel.protocol.testutil.qtSerializerTest
import de.kuschku.libquassel.protocol.variant.QtType
import org.junit.jupiter.api.Assertions
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Test import org.junit.jupiter.api.Test
import kotlin.experimental.inv import kotlin.experimental.inv
class ShortSerializerTest { class ShortSerializerTest {
@Test
fun testIsRegistered() {
assertEquals(
ShortSerializer,
QtSerializers.find<Short>(QtType.Short),
)
}
@Test @Test
fun testZero() = qtSerializerTest( fun testZero() = qtSerializerTest(
ShortSerializer, ShortSerializer,
......
...@@ -18,17 +18,27 @@ ...@@ -18,17 +18,27 @@
*/ */
package de.kuschku.libquassel.protocol.serializers.primitive package de.kuschku.libquassel.protocol.serializers.primitive
import de.kuschku.libquassel.protocol.serializers.QtSerializers
import de.kuschku.libquassel.protocol.testutil.byteBufferOf import de.kuschku.libquassel.protocol.testutil.byteBufferOf
import de.kuschku.libquassel.protocol.testutil.deserialize import de.kuschku.libquassel.protocol.testutil.deserialize
import de.kuschku.libquassel.protocol.testutil.matchers.BomMatcherString import de.kuschku.libquassel.protocol.testutil.matchers.BomMatcherString
import de.kuschku.libquassel.protocol.testutil.matchers.ByteBufferMatcher import de.kuschku.libquassel.protocol.testutil.matchers.ByteBufferMatcher
import de.kuschku.libquassel.protocol.testutil.testQtSerializerDirect import de.kuschku.libquassel.protocol.testutil.testQtSerializerDirect
import de.kuschku.libquassel.protocol.testutil.testQtSerializerVariant import de.kuschku.libquassel.protocol.testutil.testQtSerializerVariant
import de.kuschku.libquassel.protocol.variant.QtType
import org.hamcrest.MatcherAssert.assertThat import org.hamcrest.MatcherAssert.assertThat
import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Test import org.junit.jupiter.api.Test
class StringSerializerTest { class StringSerializerTest {
@Test
fun testIsRegistered() {
assertEquals(
StringSerializerUtf16,
QtSerializers.find<String>(QtType.QString),
)
}
@Test @Test
fun testBigListOfNaughtyStrings() { fun testBigListOfNaughtyStrings() {
this::class.java.getResourceAsStream("/blns.txt")!!.bufferedReader(Charsets.UTF_8).forEachLine { this::class.java.getResourceAsStream("/blns.txt")!!.bufferedReader(Charsets.UTF_8).forEachLine {
......
...@@ -18,11 +18,23 @@ ...@@ -18,11 +18,23 @@
*/ */
package de.kuschku.libquassel.protocol.serializers.primitive package de.kuschku.libquassel.protocol.serializers.primitive
import de.kuschku.libquassel.protocol.serializers.QtSerializers
import de.kuschku.libquassel.protocol.testutil.byteBufferOf import de.kuschku.libquassel.protocol.testutil.byteBufferOf
import de.kuschku.libquassel.protocol.testutil.qtSerializerTest import de.kuschku.libquassel.protocol.testutil.qtSerializerTest
import de.kuschku.libquassel.protocol.variant.QtType
import org.junit.jupiter.api.Assertions
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Test import org.junit.jupiter.api.Test
class UByteSerializerTest { class UByteSerializerTest {
@Test
fun testIsRegistered() {
assertEquals(
UByteSerializer,
QtSerializers.find<UByte>(QtType.UChar),
)
}
@Test @Test
fun testZero() = qtSerializerTest( fun testZero() = qtSerializerTest(
UByteSerializer, UByteSerializer,
......
...@@ -18,11 +18,23 @@ ...@@ -18,11 +18,23 @@
*/ */
package de.kuschku.libquassel.protocol.serializers.primitive package de.kuschku.libquassel.protocol.serializers.primitive
import de.kuschku.libquassel.protocol.serializers.QtSerializers
import de.kuschku.libquassel.protocol.testutil.byteBufferOf import de.kuschku.libquassel.protocol.testutil.byteBufferOf
import de.kuschku.libquassel.protocol.testutil.qtSerializerTest import de.kuschku.libquassel.protocol.testutil.qtSerializerTest
import de.kuschku.libquassel.protocol.variant.QtType
import org.junit.jupiter.api.Assertions
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Test import org.junit.jupiter.api.Test
class UIntSerializerTest { class UIntSerializerTest {
@Test
fun testIsRegistered() {
assertEquals(
UIntSerializer,
QtSerializers.find<UInt>(QtType.UInt),
)
}
@Test @Test
fun testZero() = qtSerializerTest( fun testZero() = qtSerializerTest(
UIntSerializer, UIntSerializer,
......
...@@ -18,11 +18,23 @@ ...@@ -18,11 +18,23 @@
*/ */
package de.kuschku.libquassel.protocol.serializers.primitive package de.kuschku.libquassel.protocol.serializers.primitive
import de.kuschku.libquassel.protocol.serializers.QtSerializers
import de.kuschku.libquassel.protocol.testutil.byteBufferOf import de.kuschku.libquassel.protocol.testutil.byteBufferOf
import de.kuschku.libquassel.protocol.testutil.qtSerializerTest import de.kuschku.libquassel.protocol.testutil.qtSerializerTest
import de.kuschku.libquassel.protocol.variant.QtType
import org.junit.jupiter.api.Assertions
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Test import org.junit.jupiter.api.Test
class ULongSerializerTest { class ULongSerializerTest {
@Test
fun testIsRegistered() {
assertEquals(
ULongSerializer,
QtSerializers.find<ULong>(QtType.ULong),
)
}
@Test @Test
fun testZero() = qtSerializerTest( fun testZero() = qtSerializerTest(
ULongSerializer, ULongSerializer,
......
...@@ -18,11 +18,23 @@ ...@@ -18,11 +18,23 @@
*/ */
package de.kuschku.libquassel.protocol.serializers.primitive package de.kuschku.libquassel.protocol.serializers.primitive
import de.kuschku.libquassel.protocol.serializers.QtSerializers
import de.kuschku.libquassel.protocol.testutil.byteBufferOf import de.kuschku.libquassel.protocol.testutil.byteBufferOf
import de.kuschku.libquassel.protocol.testutil.qtSerializerTest import de.kuschku.libquassel.protocol.testutil.qtSerializerTest
import de.kuschku.libquassel.protocol.variant.QtType
import org.junit.jupiter.api.Assertions
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Test import org.junit.jupiter.api.Test
class UShortSerializerTest { class UShortSerializerTest {
@Test
fun testIsRegistered() {
assertEquals(
UShortSerializer,
QtSerializers.find<UShort>(QtType.UShort),
)
}
@Test @Test
fun testZero() = qtSerializerTest( fun testZero() = qtSerializerTest(
UShortSerializer, UShortSerializer,
......
/*
* Quasseldroid - Quassel client for Android
*
* Copyright (c) 2020 Janne Mareike Koschinski
* Copyright (c) 2020 The Quassel Project
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 3 as published
* by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package de.kuschku.libquassel.protocol.serializers.primitive
import de.kuschku.libquassel.protocol.serializers.QtSerializers
import de.kuschku.libquassel.protocol.testutil.byteBufferOf
import de.kuschku.libquassel.protocol.testutil.qtSerializerTest
import de.kuschku.libquassel.protocol.variant.QtType
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Test
class VoidSerializerTest {
@Test
fun testIsRegistered() {
assertEquals(
VoidSerializer,
QtSerializers.find<Unit>(QtType.Void),
)
}
@Test
fun test() = qtSerializerTest(
VoidSerializer,
Unit,
byteBufferOf()
)
}
...@@ -20,5 +20,16 @@ package de.kuschku.libquassel.protocol.testutil ...@@ -20,5 +20,16 @@ package de.kuschku.libquassel.protocol.testutil
import java.nio.ByteBuffer import java.nio.ByteBuffer
inline fun byteBufferOf(vararg elements: Byte) = ByteBuffer.wrap(byteArrayOf(*elements)) @Suppress("NOTHING_TO_INLINE")
inline fun byteBufferOf(vararg elements: UByte) = ByteBuffer.wrap(ubyteArrayOf(*elements).toByteArray()) inline fun byteBufferOf(
vararg elements: Byte
): ByteBuffer = ByteBuffer.wrap(byteArrayOf(*elements))
@Suppress("NOTHING_TO_INLINE")
inline fun byteBufferOf(
vararg elements: UByte
): ByteBuffer = ByteBuffer.wrap(ubyteArrayOf(*elements).toByteArray())
@Suppress("NOTHING_TO_INLINE")
inline fun byteBufferOf(): ByteBuffer =
ByteBuffer.allocateDirect(0)
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
package de.kuschku.libquassel.protocol.variant package de.kuschku.libquassel.protocol.variant
import de.kuschku.libquassel.protocol.testutil.byteBufferOf import de.kuschku.libquassel.protocol.testutil.byteBufferOf
import de.kuschku.libquassel.protocol.types.BufferId
import de.kuschku.libquassel.protocol.variant.QtType import de.kuschku.libquassel.protocol.variant.QtType
import de.kuschku.libquassel.protocol.variant.qVariant import de.kuschku.libquassel.protocol.variant.qVariant
import org.junit.jupiter.api.Assertions.* import org.junit.jupiter.api.Assertions.*
...@@ -42,5 +43,12 @@ class QVariantTest { ...@@ -42,5 +43,12 @@ class QVariantTest {
QtType.QString QtType.QString
).toString() ).toString()
) )
assertEquals(
"QVariant(BufferIdSerializer, BufferId(-1))",
qVariant(
BufferId(-1),
QuasselType.BufferId
).toString()
)
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment