@Test public void shouldReturnFalseForInvalidPrefix() { assertFalse(PrefixUtils.isLegalPrefix(Ipv6Range.parse("::0-::2"))); assertFalse(PrefixUtils.isLegalPrefix(Ipv6Range.parse("::1-::3"))); assertFalse( PrefixUtils.isLegalPrefix(Ipv6Range.parse("::1-ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff"))); assertFalse( PrefixUtils.isLegalPrefix(Ipv6Range.parse("::-ffff:ffff:ffff:ffff:ffff:ffff:ffff:fffe"))); assertFalse( PrefixUtils.isLegalPrefix(Ipv6Range.parse("::2-ffff:ffff:ffff:ffff:ffff:ffff:ffff:fffe"))); }
@Test public void shouldNotFindBiggestAndSmallestPrefixWhenDoesNotExist() { Ipv6Range range = Ipv6Range.from("::").to(BigInteger.valueOf(2).pow(128).subtract(BigInteger.valueOf(2))); assertFalse(findMinimumPrefixForPrefixLength(range, 0).isPresent()); assertFalse(findMaximumPrefixForPrefixLength(range, 0).isPresent()); }
@Test(expected = IllegalArgumentException.class) public void findSmallestPrefixShouldThrowAnExceptionWhenRequestedPrefixLengthIsTooSmall() { findMinimumPrefixForPrefixLength(Ipv6Range.parse("::1-::10"), -1); }
@Test public void shouldFindBiggestAndSmallestPrefixWhenRangeIsNotValidPrefix() { Ipv6Range range = Ipv6Range.from("::1").to("::4"); assertEquals(Ipv6Range.parse("::2/127"), findMaximumPrefixForPrefixLength(range, 127).get()); assertEquals(Ipv6Range.parse("::2/127"), findMinimumPrefixForPrefixLength(range, 127).get()); assertEquals(Ipv6Range.parse("::2/127"), findMaximumPrefixForPrefixLength(range, 128).get()); assertEquals(Ipv6Range.parse("::1/128"), findMinimumPrefixForPrefixLength(range, 128).get()); Ipv6Range otherRange = Ipv6Range.from("::").to(BigInteger.valueOf(2).pow(128).subtract(BigInteger.valueOf(2))); assertEquals(Ipv6Range.parse("::/1"), findMaximumPrefixForPrefixLength(otherRange, 1).get()); assertEquals(Ipv6Range.parse("::/1"), findMinimumPrefixForPrefixLength(otherRange, 1).get()); assertEquals(Ipv6Range.parse("::/1"), findMaximumPrefixForPrefixLength(otherRange, 2).get()); assertEquals( Ipv6Range.parse("8000::/2"), findMinimumPrefixForPrefixLength(otherRange, 2).get()); assertEquals(Ipv6Range.parse("::/1"), findMaximumPrefixForPrefixLength(otherRange, 128).get()); assertEquals( Ipv6Range.parse("ffff:ffff:ffff:ffff:ffff:ffff:ffff:fffe/128"), findMinimumPrefixForPrefixLength(otherRange, 128).get()); }
@Test public void shouldFindBiggestAndSmallestPrefixWhenRangeIsSingleValidPrefix() { Ipv6Range range = Ipv6Range.parse("::/0"); assertEquals(Ipv6Range.parse("::/0"), findMinimumPrefixForPrefixLength(range, 0).get()); assertEquals(Ipv6Range.parse("::/0"), findMaximumPrefixForPrefixLength(range, 128).get()); }
@Test(expected = IllegalArgumentException.class) public void shouldFailToGetPrefixLengthWhenInvalidPrefix() { PrefixUtils.getPrefixLength(Ipv6Range.parse("::0-::2")); }
@Test public void shouldGetPrefixLengthWhenCorrectPrefix() { assertEquals(128, PrefixUtils.getPrefixLength(Ipv6Range.parse("::0-::0"))); assertEquals(128, PrefixUtils.getPrefixLength(Ipv6Range.parse("::1-::1"))); assertEquals(126, PrefixUtils.getPrefixLength(Ipv6Range.parse("::0-::3"))); }
@Test public void shouldReturnTrueForValidPrefix() { assertTrue(PrefixUtils.isLegalPrefix(Ipv6Range.parse("::/0"))); }
@Test(expected = IllegalArgumentException.class) public void findBiggestPrefixShouldThrowAnExceptionWhenRequestedPrefixLengthIsTooBig() { findMaximumPrefixForPrefixLength(Ipv6Range.parse("::1-::10"), 129); }