Refactoring TLV's code

This commit is contained in:
Vitor Pamplona
2023-08-15 11:13:01 -04:00
parent 52687a48df
commit 1ad1d233cd
5 changed files with 143 additions and 146 deletions
@@ -0,0 +1,40 @@
package com.vitorpamplona.amethyst.service
import com.vitorpamplona.amethyst.service.nip19.toByteArray
import com.vitorpamplona.amethyst.service.nip19.toInt32
import org.junit.Assert
import org.junit.Assert.assertEquals
import org.junit.Test
class TlvIntegerTest {
fun to_int_32_length_smaller_than_4() {
Assert.assertNull(byteArrayOfInts(1, 2, 3).toInt32())
}
fun to_int_32_length_bigger_than_4() {
Assert.assertNull(byteArrayOfInts(1, 2, 3, 4, 5).toInt32())
}
@Test()
fun to_int_32_length_4() {
val actual = byteArrayOfInts(1, 2, 3, 4).toInt32()
assertEquals(16909060, actual)
}
@Test()
fun backAndForth() {
assertEquals(234, 234.toByteArray().toInt32())
assertEquals(1, 1.toByteArray().toInt32())
assertEquals(0, 0.toByteArray().toInt32())
assertEquals(1000, 1000.toByteArray().toInt32())
assertEquals(-234, (-234).toByteArray().toInt32())
assertEquals(-1, (-1).toByteArray().toInt32())
assertEquals(-0, (-0).toByteArray().toInt32())
assertEquals(-1000, (-1000).toByteArray().toInt32())
}
private fun byteArrayOfInts(vararg ints: Int) =
ByteArray(ints.size) { pos -> ints[pos].toByte() }
}
@@ -1,35 +0,0 @@
package com.vitorpamplona.amethyst.service
import com.vitorpamplona.amethyst.service.nip19.Tlv
import org.junit.Assert
import org.junit.Ignore
import org.junit.Test
class TlvTest {
@Test(expected = IllegalArgumentException::class)
fun to_int_32_length_smaller_than_4() {
Tlv.toInt32(byteArrayOfInts(1, 2, 3))
}
@Test(expected = IllegalArgumentException::class)
fun to_int_32_length_bigger_than_4() {
Tlv.toInt32(byteArrayOfInts(1, 2, 3, 4, 5))
}
@Test()
fun to_int_32_length_4() {
val actual = Tlv.toInt32(byteArrayOfInts(1, 2, 3, 4))
Assert.assertEquals(16909060, actual)
}
@Ignore("Test not implemented yet")
@Test()
fun parse_TLV() {
// TODO: I don't know how to test this (?)
}
private fun byteArrayOfInts(vararg ints: Int) =
ByteArray(ints.size) { pos -> ints[pos].toByte() }
}