summaryrefslogtreecommitdiff
path: root/modules/ri-base/src/test/java/io/trygvis/rules/network/Ipv4CidrTest.txt
diff options
context:
space:
mode:
Diffstat (limited to 'modules/ri-base/src/test/java/io/trygvis/rules/network/Ipv4CidrTest.txt')
-rw-r--r--modules/ri-base/src/test/java/io/trygvis/rules/network/Ipv4CidrTest.txt37
1 files changed, 37 insertions, 0 deletions
diff --git a/modules/ri-base/src/test/java/io/trygvis/rules/network/Ipv4CidrTest.txt b/modules/ri-base/src/test/java/io/trygvis/rules/network/Ipv4CidrTest.txt
new file mode 100644
index 0000000..826f586
--- /dev/null
+++ b/modules/ri-base/src/test/java/io/trygvis/rules/network/Ipv4CidrTest.txt
@@ -0,0 +1,37 @@
+package io.trygvis.rules.network;
+
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.ValueSource;
+
+import static io.trygvis.rules.network.Ipv4Cidr.parseCidr;
+import static org.junit.jupiter.api.Assertions.*;
+
+class Ipv4CidrTest {
+
+ @Test
+ public void basic() {
+ Assertions.assertThrows(IllegalArgumentException.class, () -> parseCidr("192.168.1.1/24").addresses());
+ assertEquals(256, parseCidr("192.168.1.0/24").addresses().size());
+ assertEquals(128, parseCidr("192.168.1.128/25").addresses().size());
+ }
+
+ @ParameterizedTest
+ @ValueSource(strings = {
+ "192.168.1.0/24",
+ "192.168.1.128/25",
+ })
+ public void testParsing(String s) {
+ assertEquals(s, parseCidr(s).toString());
+ }
+
+ @Test
+ public void partition() {
+ var children = parseCidr("192.168.1.0/24").partition(26);
+ assertEquals(1 << 2, children.size());
+ for (var cidr : children) {
+ assertEquals(26, cidr.bits);
+ }
+ }
+}