1+ import at.asitplus.cidre.IpInterface
12import at.asitplus.cidre.IpNetwork
23import kotlin.reflect.KClass
34import kotlin.test.Test
@@ -24,13 +25,6 @@ class IpAddressNameParsingTest {
2425 0xff .toByte(), 0xff .toByte(), 0x00 , 0x00 ,
2526 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
2627 )
27- private val ipv6aMasked = byteArrayOf(
28- 0x20 , 0x01 , 0x0d , 0xb8 .toByte(), 0x85 .toByte(), 0xa3 .toByte(), 0x00 , 0x00 ,
29- 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
30- 0xff .toByte(), 0xff .toByte(), 0xff .toByte(), 0xff .toByte(),
31- 0xff .toByte(), 0xff .toByte(), 0x00 , 0x00 ,
32- 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
33- )
3428
3529 private val ipv6b = byteArrayOf(
3630 0x20 , 0x01 , 0x0d , 0xb8 .toByte(), 0x85 .toByte(), 0xa3 .toByte(), 0x00 , 0x00 ,
@@ -54,48 +48,35 @@ class IpAddressNameParsingTest {
5448 0xff .toByte(), 0xff .toByte(), 0xff .toByte(), 0xfe .toByte(),
5549 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
5650 )
57- private val ipv6dMasked = byteArrayOf(
58- 0x20 , 0x01 , 0x0d , 0xb8 .toByte(), 0x85 .toByte(), 0xa2 .toByte(), 0x00 , 0x00 ,
59- 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
60- 0xff .toByte(), 0xff .toByte(), 0xff .toByte(), 0xff .toByte(), 0xff .toByte(), 0xfe .toByte(),
61- 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
62- )
6351
6452 private val ipv6e = byteArrayOf(
65- 0x20 , 0x01 , 0x0d , 0xb8 .toByte(), 0x85 .toByte(), 0xa3 .toByte(), 0x00 , 0x00 ,
66- 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
67- 0xff .toByte(), 0xff .toByte(), 0xff .toByte(), 0xff .toByte(), 0xff .toByte(), 0xff .toByte(),
68- 0xff .toByte(), 0xff .toByte(), 0x80 .toByte(), 0x00 , 0x00 , 0x00 ,
69- 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
70- )
71- private val ipv6eMasked = byteArrayOf(
7253 0x20 , 0x01 , 0x0d , 0xb8 .toByte(), 0x85 .toByte(), 0xa3 .toByte(), 0x00 , 0x00 ,
7354 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
7455 0xff .toByte(), 0xff .toByte(), 0xff .toByte(), 0xff .toByte(),
7556 0xff .toByte(), 0xff .toByte(), 0x80 .toByte(), 0x00 , 0x00 , 0x00 ,
7657 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00
7758 )
7859
79- private val ipv6aStr = " 2001:db8:85a3::/48"
60+ private val ipv6aStr = " 2001:db8:85a3::8a2e:a09:800 /48"
8061 private val ipv6bStr = " 2001:db8:85a3::8a2e:a09:800/128"
8162 private val ipv6cStr = " 2001:db8:85a3::/48"
82- private val ipv6dStr = " 2001:db8:85a2 ::/47"
63+ private val ipv6dStr = " 2001:db8:85a3 ::/47"
8364 private val ipv6eStr = " 2001:db8:85a3::/49"
8465
85- @Test fun parseIPv6a () = parseCheck(ipv6a, IpNetwork .V6 ::class , ipv6aStr, ipv6aMasked )
86- @Test fun parseIPv6b () = parseCheck(ipv6b, IpNetwork .V6 ::class , ipv6bStr)
87- @Test fun parseIPv6c () = parseCheck(ipv6c, IpNetwork .V6 ::class , ipv6cStr)
88- @Test fun parseIPv6d () = parseCheck(ipv6d, IpNetwork .V6 ::class , ipv6dStr, ipv6dMasked )
89- @Test fun parseIPv6e () = parseCheck(ipv6e, IpNetwork .V6 ::class , ipv6eStr, ipv6eMasked )
66+ @Test fun parseIPv6a () = parseCheck(ipv6a, IpInterface .V6 ::class , ipv6aStr)
67+ @Test fun parseIPv6b () = parseCheck(ipv6b, IpInterface .V6 ::class , ipv6bStr)
68+ @Test fun parseIPv6c () = parseCheck(ipv6c, IpInterface .V6 ::class , ipv6cStr)
69+ @Test fun parseIPv6d () = parseCheck(ipv6d, IpInterface .V6 ::class , ipv6dStr)
70+ @Test fun parseIPv6e () = parseCheck(ipv6e, IpInterface .V6 ::class , ipv6eStr)
9071
91- @Test fun parseIPv4mask24 () = parseCheck(ipv4WithMask1, IpNetwork .V4 ::class , ipv4WithMask1Str)
92- @Test fun parseIPv4mask17 () = parseCheck(ipv4WithMask2, IpNetwork .V4 ::class , ipv4WithMask2Str)
93- @Test fun parseIPv4mask18 () = parseCheck(ipv4WithMask3, IpNetwork .V4 ::class , ipv4WithMask3Str)
72+ @Test fun parseIPv4mask24 () = parseCheck(ipv4WithMask1, IpInterface .V4 ::class , ipv4WithMask1Str)
73+ @Test fun parseIPv4mask17 () = parseCheck(ipv4WithMask2, IpInterface .V4 ::class , ipv4WithMask2Str)
74+ @Test fun parseIPv4mask18 () = parseCheck(ipv4WithMask3, IpInterface .V4 ::class , ipv4WithMask3Str)
9475
95- private fun parseCheck (bytes : ByteArray , expectedType : KClass <out IpNetwork <* , * >>, expectedString : String , expectedBytes : ByteArray? = null ) {
96- val network = IpNetwork .fromX509Octets(bytes, false )
97- assertTrue(expectedType.isInstance(network), " Expected type: $expectedType , but got ${network:: class } " )
98- assertContentEquals(expectedBytes ? : bytes, network .toX509Octets())
99- assertEquals(expectedString, network .toString())
76+ private fun parseCheck (bytes : ByteArray , expectedType : KClass <out IpInterface <* , * >>, expectedString : String ) {
77+ val addressAndPrefix = IpInterface .fromX509Octets(bytes)
78+ assertTrue(expectedType.isInstance(addressAndPrefix) )
79+ assertContentEquals(bytes, addressAndPrefix .toX509Octets())
80+ assertEquals(expectedString, addressAndPrefix .toString())
10081 }
10182}
0 commit comments