Skip to content
Snippets Groups Projects
Select Git revision
  • main default protected
  • wip
  • ChenZhangg-Modify_GRADLE_1
  • jetpack-compose-rewrite
  • demo-jump-in-history
  • attachments
  • 1.7.0 protected
  • 1.6.2 protected
  • 1.6.1 protected
  • 1.6.0 protected
  • 1.5.3 protected
  • 1.5.2 protected
  • 1.5.1 protected
  • 1.5.0 protected
  • 1.4.4 protected
  • 1.4.3 protected
  • 1.4.2 protected
  • 1.4.1 protected
  • 1.4.0 protected
  • v1.3.3 protected
  • v1.3.2 protected
  • v1.3.1 protected
  • v1.3.0 protected
  • v1.2.28 protected
  • v1.2.27 protected
  • v1.2.26 protected
26 results

SerializerUnitTest.kt

Blame
  • SerializerUnitTest.kt 3.95 KiB
    package de.kuschku.libquassel
    
    import de.kuschku.libquassel.protocol.Quassel_Feature
    import de.kuschku.libquassel.protocol.Quassel_Features
    import de.kuschku.libquassel.protocol.primitive.serializer.*
    import de.kuschku.libquassel.util.nio.ChainedByteBuffer
    import org.junit.Assert.assertArrayEquals
    import org.junit.Assert.assertEquals
    import org.junit.Test
    import org.threeten.bp.Instant
    import org.threeten.bp.LocalDateTime
    import org.threeten.bp.ZoneOffset
    import java.nio.ByteBuffer
    import kotlin.experimental.inv
    
    class SerializerUnitTest {
      @Test
      fun boolSerializer() {
        assertEquals(true, roundTrip(BoolSerializer, true))
        assertEquals(false, roundTrip(BoolSerializer, false))
      }
    
      @Test
      fun byteArraySerializer() {
        val value1 = byteArrayOf()
        assertArrayEquals(value1, roundTrip(ByteArraySerializer, ByteBuffer.wrap(value1))?.array())
    
        val value2 = byteArrayOf(1, 2, 3, 4, 5, 6, 7, 8, 9)
        assertArrayEquals(value2, roundTrip(ByteArraySerializer, ByteBuffer.wrap(value2))?.array())
      }
    
      @Test
      fun charSerializer() {
        assertEquals(' ', roundTrip(CharSerializer, ' '))
        assertEquals('a', roundTrip(CharSerializer, 'a'))
        assertEquals('ä', roundTrip(CharSerializer, 'ä'))
        assertEquals('\u0000', roundTrip(CharSerializer, '\u0000'))
        assertEquals('\uFFFF', roundTrip(CharSerializer, '\uFFFF'))
        assertEquals(' ', roundTrip(CharSerializer, ' '))
        assertEquals('a', roundTrip(CharSerializer, 'a'))
        assertEquals('ä', roundTrip(CharSerializer, 'ä'))
      }
    
      @Test
      fun dateTimeSerializer() {
        assertEquals(Instant.EPOCH, roundTrip(DateTimeSerializer, Instant.EPOCH))
        val now = Instant.now()
        assertEquals(now, roundTrip(DateTimeSerializer, now))
    
        val value1 = Instant.EPOCH.atOffset(ZoneOffset.ofTotalSeconds(1234))
        assertEquals(value1.toInstant(), roundTrip(DateTimeSerializer, value1))
        val value2 = Instant.now().atOffset(ZoneOffset.ofTotalSeconds(1234))
        assertEquals(value2.toInstant(), roundTrip(DateTimeSerializer, value2))
    
        val value3 = LocalDateTime.of(1970, 1, 1, 0, 0)
          .atZone(ZoneOffset.systemDefault()).toInstant()
        assertEquals(value3, roundTrip(DateTimeSerializer, value3))
        val value4 = LocalDateTime.now().atZone(ZoneOffset.systemDefault()).toInstant()
        assertEquals(value4, roundTrip(DateTimeSerializer, value4))
      }
    
      @Test
      fun byteSerializer() {
        assertEquals(0.toByte(), roundTrip(ByteSerializer, 0.toByte()))
        assertEquals(Byte.MAX_VALUE, roundTrip(ByteSerializer, Byte.MAX_VALUE))
        assertEquals(Byte.MIN_VALUE, roundTrip(ByteSerializer, Byte.MIN_VALUE))
        assertEquals((0.toByte().inv()), roundTrip(ByteSerializer, (0.toByte().inv())))
      }
    
      @Test
      fun shortSerializer() {
        assertEquals(0.toShort(), roundTrip(ShortSerializer, 0.toShort()))
        assertEquals(Short.MAX_VALUE, roundTrip(ShortSerializer, Short.MAX_VALUE))
        assertEquals(Short.MIN_VALUE, roundTrip(ShortSerializer, Short.MIN_VALUE))
        assertEquals((0.toShort().inv()), roundTrip(ShortSerializer, (0.toShort().inv())))
      }
    
      @Test
      fun intSerializer() {
        assertEquals(0, roundTrip(IntSerializer, 0))
        assertEquals(Integer.MAX_VALUE, roundTrip(IntSerializer, Integer.MAX_VALUE))
        assertEquals(Integer.MIN_VALUE, roundTrip(IntSerializer, Integer.MIN_VALUE))
        assertEquals(0.inv(), roundTrip(IntSerializer, 0.inv()))
      }
    
      @Test
      fun longSerializer() {
        assertEquals(0, roundTrip(LongSerializer, 0))
        assertEquals(Long.MAX_VALUE, roundTrip(LongSerializer, Long.MAX_VALUE))
        assertEquals(Long.MIN_VALUE, roundTrip(LongSerializer, Long.MIN_VALUE))
        assertEquals(0L.inv(), roundTrip(LongSerializer, 0L.inv()))
      }
    
      companion object {
        fun <T> roundTrip(serializer: Serializer<T>, value: T,
                          features: Quassel_Features = Quassel_Feature.NONE): T {
          val chainedBuffer = ChainedByteBuffer(
            direct = false)
          serializer.serialize(chainedBuffer, value, features)
          val buffer = chainedBuffer.toBuffer()
          return serializer.deserialize(buffer, features)
        }
      }
    }