diff options
Diffstat (limited to 'framework/src/onos/utils/misc/src/test/java/org/onlab/packet/IpPrefixTest.java')
-rw-r--r-- | framework/src/onos/utils/misc/src/test/java/org/onlab/packet/IpPrefixTest.java | 1080 |
1 files changed, 0 insertions, 1080 deletions
diff --git a/framework/src/onos/utils/misc/src/test/java/org/onlab/packet/IpPrefixTest.java b/framework/src/onos/utils/misc/src/test/java/org/onlab/packet/IpPrefixTest.java deleted file mode 100644 index 052a4cbb..00000000 --- a/framework/src/onos/utils/misc/src/test/java/org/onlab/packet/IpPrefixTest.java +++ /dev/null @@ -1,1080 +0,0 @@ -/* - * Copyright 2014-2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onlab.packet; - -import org.junit.Test; - -import com.google.common.testing.EqualsTester; - -import static org.hamcrest.Matchers.equalTo; -import static org.hamcrest.Matchers.is; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertThat; -import static org.junit.Assert.assertTrue; -import static org.onlab.junit.ImmutableClassChecker.assertThatClassIsImmutableBaseClass; - -/** - * Tests for class {@link IpPrefix}. - */ -public class IpPrefixTest { - /** - * Tests the immutability of {@link IpPrefix}. - */ - @Test - public void testImmutable() { - assertThatClassIsImmutableBaseClass(IpPrefix.class); - } - - /** - * Tests the maximum mask length. - */ - @Test - public void testMaxMaskLength() { - assertThat(IpPrefix.MAX_INET_MASK_LENGTH, is(32)); - assertThat(IpPrefix.MAX_INET6_MASK_LENGTH, is(128)); - } - - /** - * Tests returning the IP version of the prefix. - */ - @Test - public void testVersion() { - IpPrefix ipPrefix; - - // IPv4 - ipPrefix = IpPrefix.valueOf("0.0.0.0/0"); - assertThat(ipPrefix.version(), is(IpAddress.Version.INET)); - - // IPv6 - ipPrefix = IpPrefix.valueOf("::/0"); - assertThat(ipPrefix.version(), is(IpAddress.Version.INET6)); - } - - /** - * Tests whether the IP version of a prefix is IPv4. - */ - @Test - public void testIsIp4() { - IpPrefix ipPrefix; - - // IPv4 - ipPrefix = IpPrefix.valueOf("0.0.0.0/0"); - assertTrue(ipPrefix.isIp4()); - - // IPv6 - ipPrefix = IpPrefix.valueOf("::/0"); - assertFalse(ipPrefix.isIp4()); - } - - /** - * Tests whether the IP version of a prefix is IPv6. - */ - @Test - public void testIsIp6() { - IpPrefix ipPrefix; - - // IPv4 - ipPrefix = IpPrefix.valueOf("0.0.0.0/0"); - assertFalse(ipPrefix.isIp6()); - - // IPv6 - ipPrefix = IpPrefix.valueOf("::/0"); - assertTrue(ipPrefix.isIp6()); - } - - /** - * Tests returning the IP address value and IP address prefix length of - * an IPv4 prefix. - */ - @Test - public void testAddressAndPrefixLengthIPv4() { - IpPrefix ipPrefix; - - ipPrefix = IpPrefix.valueOf("1.2.3.0/24"); - assertThat(ipPrefix.address(), equalTo(IpAddress.valueOf("1.2.3.0"))); - assertThat(ipPrefix.prefixLength(), is(24)); - - ipPrefix = IpPrefix.valueOf("1.2.3.4/24"); - assertThat(ipPrefix.address(), equalTo(IpAddress.valueOf("1.2.3.0"))); - assertThat(ipPrefix.prefixLength(), is(24)); - - ipPrefix = IpPrefix.valueOf("1.2.3.4/32"); - assertThat(ipPrefix.address(), equalTo(IpAddress.valueOf("1.2.3.4"))); - assertThat(ipPrefix.prefixLength(), is(32)); - - ipPrefix = IpPrefix.valueOf("1.2.3.5/32"); - assertThat(ipPrefix.address(), equalTo(IpAddress.valueOf("1.2.3.5"))); - assertThat(ipPrefix.prefixLength(), is(32)); - - ipPrefix = IpPrefix.valueOf("0.0.0.0/0"); - assertThat(ipPrefix.address(), equalTo(IpAddress.valueOf("0.0.0.0"))); - assertThat(ipPrefix.prefixLength(), is(0)); - - ipPrefix = IpPrefix.valueOf("255.255.255.255/32"); - assertThat(ipPrefix.address(), - equalTo(IpAddress.valueOf("255.255.255.255"))); - assertThat(ipPrefix.prefixLength(), is(32)); - } - - /** - * Tests returning the IP address value and IP address prefix length of - * an IPv6 prefix. - */ - @Test - public void testAddressAndPrefixLengthIPv6() { - IpPrefix ipPrefix; - - ipPrefix = IpPrefix.valueOf("1100::/8"); - assertThat(ipPrefix.address(), equalTo(IpAddress.valueOf("1100::"))); - assertThat(ipPrefix.prefixLength(), is(8)); - - ipPrefix = - IpPrefix.valueOf("1111:2222:3333:4444:5555:6666:7777:8885/8"); - assertThat(ipPrefix.address(), equalTo(IpAddress.valueOf("1100::"))); - assertThat(ipPrefix.prefixLength(), is(8)); - - ipPrefix = - IpPrefix.valueOf("1111:2222:3333:4444:5555:6666:7777:8800/120"); - assertThat(ipPrefix.address(), - equalTo(IpAddress.valueOf("1111:2222:3333:4444:5555:6666:7777:8800"))); - assertThat(ipPrefix.prefixLength(), is(120)); - - ipPrefix = - IpPrefix.valueOf("1111:2222:3333:4444:5555:6666:7777:8885/128"); - assertThat(ipPrefix.address(), - equalTo(IpAddress.valueOf("1111:2222:3333:4444:5555:6666:7777:8885"))); - assertThat(ipPrefix.prefixLength(), is(128)); - - ipPrefix = IpPrefix.valueOf("::/0"); - assertThat(ipPrefix.address(), equalTo(IpAddress.valueOf("::"))); - assertThat(ipPrefix.prefixLength(), is(0)); - - ipPrefix = - IpPrefix.valueOf("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/128"); - assertThat(ipPrefix.address(), - equalTo(IpAddress.valueOf("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff"))); - assertThat(ipPrefix.prefixLength(), is(128)); - - ipPrefix = - IpPrefix.valueOf("1111:2222:3333:4444:5555:6666:7777:8885/64"); - assertThat(ipPrefix.address(), - equalTo(IpAddress.valueOf("1111:2222:3333:4444::"))); - assertThat(ipPrefix.prefixLength(), is(64)); - } - - /** - * Tests getting the Ip4Prefix and Ip6Prefix view of the IP prefix. - */ - @Test - public void testGetIp4AndIp6PrefixView() { - IpPrefix ipPrefix; - Ip4Prefix ip4Prefix; - Ip6Prefix ip6Prefix; - - // Pure IPv4 IpPrefix - ipPrefix = IpPrefix.valueOf("1.2.3.0/24"); - ip4Prefix = ipPrefix.getIp4Prefix(); - ip6Prefix = ipPrefix.getIp6Prefix(); - assertThat(ip4Prefix.toString(), is("1.2.3.0/24")); - assertNull(ip6Prefix); - - // IPv4 IpPrefix that is Ip4Prefix - ipPrefix = Ip4Prefix.valueOf("1.2.3.0/24"); - ip4Prefix = ipPrefix.getIp4Prefix(); - ip6Prefix = ipPrefix.getIp6Prefix(); - assertThat(ip4Prefix.toString(), is("1.2.3.0/24")); - assertNull(ip6Prefix); - - // Pure IPv6 IpPrefix - ipPrefix = IpPrefix.valueOf("1111:2222::/64"); - ip4Prefix = ipPrefix.getIp4Prefix(); - ip6Prefix = ipPrefix.getIp6Prefix(); - assertNull(ip4Prefix); - assertThat(ip6Prefix.toString(), is("1111:2222::/64")); - - // IPv6 IpPrefix that is Ip6Prefix - ipPrefix = Ip6Prefix.valueOf("1111:2222::/64"); - ip4Prefix = ipPrefix.getIp4Prefix(); - ip6Prefix = ipPrefix.getIp6Prefix(); - assertNull(ip4Prefix); - assertThat(ip6Prefix.toString(), is("1111:2222::/64")); - } - - /** - * Tests valueOf() converter for IPv4 integer value. - */ - @Test - public void testValueOfForIntegerIPv4() { - IpPrefix ipPrefix; - - ipPrefix = IpPrefix.valueOf(0x01020304, 24); - assertThat(ipPrefix.toString(), is("1.2.3.0/24")); - - ipPrefix = IpPrefix.valueOf(0x01020304, 32); - assertThat(ipPrefix.toString(), is("1.2.3.4/32")); - - ipPrefix = IpPrefix.valueOf(0x01020305, 32); - assertThat(ipPrefix.toString(), is("1.2.3.5/32")); - - ipPrefix = IpPrefix.valueOf(0, 0); - assertThat(ipPrefix.toString(), is("0.0.0.0/0")); - - ipPrefix = IpPrefix.valueOf(0, 32); - assertThat(ipPrefix.toString(), is("0.0.0.0/32")); - - ipPrefix = IpPrefix.valueOf(0xffffffff, 0); - assertThat(ipPrefix.toString(), is("0.0.0.0/0")); - - ipPrefix = IpPrefix.valueOf(0xffffffff, 16); - assertThat(ipPrefix.toString(), is("255.255.0.0/16")); - - ipPrefix = IpPrefix.valueOf(0xffffffff, 32); - assertThat(ipPrefix.toString(), is("255.255.255.255/32")); - } - - /** - * Tests invalid valueOf() converter for IPv4 integer value and - * negative prefix length. - */ - @Test(expected = IllegalArgumentException.class) - public void testInvalidValueOfIntegerNegativePrefixLengthIPv4() { - IpPrefix ipPrefix; - - ipPrefix = IpPrefix.valueOf(0x01020304, -1); - } - - /** - * Tests invalid valueOf() converter for IPv4 integer value and - * too long prefix length. - */ - @Test(expected = IllegalArgumentException.class) - public void testInvalidValueOfIntegerTooLongPrefixLengthIPv4() { - IpPrefix ipPrefix; - - ipPrefix = IpPrefix.valueOf(0x01020304, 33); - } - - /** - * Tests valueOf() converter for IPv4 byte array. - */ - @Test - public void testValueOfByteArrayIPv4() { - IpPrefix ipPrefix; - byte[] value; - - value = new byte[] {1, 2, 3, 4}; - ipPrefix = IpPrefix.valueOf(IpAddress.Version.INET, value, 24); - assertThat(ipPrefix.toString(), is("1.2.3.0/24")); - - ipPrefix = IpPrefix.valueOf(IpAddress.Version.INET, value, 32); - assertThat(ipPrefix.toString(), is("1.2.3.4/32")); - - value = new byte[] {1, 2, 3, 5}; - ipPrefix = IpPrefix.valueOf(IpAddress.Version.INET, value, 32); - assertThat(ipPrefix.toString(), is("1.2.3.5/32")); - - value = new byte[] {0, 0, 0, 0}; - ipPrefix = IpPrefix.valueOf(IpAddress.Version.INET, value, 0); - assertThat(ipPrefix.toString(), is("0.0.0.0/0")); - - ipPrefix = IpPrefix.valueOf(IpAddress.Version.INET, value, 32); - assertThat(ipPrefix.toString(), is("0.0.0.0/32")); - - value = new byte[] {(byte) 0xff, (byte) 0xff, - (byte) 0xff, (byte) 0xff}; - ipPrefix = IpPrefix.valueOf(IpAddress.Version.INET, value, 0); - assertThat(ipPrefix.toString(), is("0.0.0.0/0")); - - ipPrefix = IpPrefix.valueOf(IpAddress.Version.INET, value, 16); - assertThat(ipPrefix.toString(), is("255.255.0.0/16")); - - ipPrefix = IpPrefix.valueOf(IpAddress.Version.INET, value, 32); - assertThat(ipPrefix.toString(), is("255.255.255.255/32")); - } - - /** - * Tests valueOf() converter for IPv6 byte array. - */ - @Test - public void testValueOfByteArrayIPv6() { - IpPrefix ipPrefix; - byte[] value; - - value = new byte[] {0x11, 0x11, 0x22, 0x22, - 0x33, 0x33, 0x44, 0x44, - 0x55, 0x55, 0x66, 0x66, - 0x77, 0x77, (byte) 0x88, (byte) 0x88}; - ipPrefix = IpPrefix.valueOf(IpAddress.Version.INET6, value, 120); - assertThat(ipPrefix.toString(), - is("1111:2222:3333:4444:5555:6666:7777:8800/120")); - - ipPrefix = IpPrefix.valueOf(IpAddress.Version.INET6, value, 128); - assertThat(ipPrefix.toString(), - is("1111:2222:3333:4444:5555:6666:7777:8888/128")); - - value = new byte[] {0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00}; - ipPrefix = IpPrefix.valueOf(IpAddress.Version.INET6, value, 0); - assertThat(ipPrefix.toString(), is("::/0")); - - ipPrefix = IpPrefix.valueOf(IpAddress.Version.INET6, value, 128); - assertThat(ipPrefix.toString(), is("::/128")); - - value = new byte[] {(byte) 0xff, (byte) 0xff, - (byte) 0xff, (byte) 0xff, - (byte) 0xff, (byte) 0xff, - (byte) 0xff, (byte) 0xff, - (byte) 0xff, (byte) 0xff, - (byte) 0xff, (byte) 0xff, - (byte) 0xff, (byte) 0xff, - (byte) 0xff, (byte) 0xff}; - ipPrefix = IpPrefix.valueOf(IpAddress.Version.INET6, value, 0); - assertThat(ipPrefix.toString(), is("::/0")); - - ipPrefix = IpPrefix.valueOf(IpAddress.Version.INET6, value, 64); - assertThat(ipPrefix.toString(), is("ffff:ffff:ffff:ffff::/64")); - - ipPrefix = IpPrefix.valueOf(IpAddress.Version.INET6, value, 128); - assertThat(ipPrefix.toString(), - is("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/128")); - } - - /** - * Tests invalid valueOf() converter for a null array for IPv4. - */ - @Test(expected = NullPointerException.class) - public void testInvalidValueOfNullArrayIPv4() { - IpPrefix ipPrefix; - byte[] value; - - value = null; - ipPrefix = IpPrefix.valueOf(IpAddress.Version.INET, value, 24); - } - - /** - * Tests invalid valueOf() converter for a null array for IPv6. - */ - @Test(expected = NullPointerException.class) - public void testInvalidValueOfNullArrayIPv6() { - IpPrefix ipPrefix; - byte[] value; - - value = null; - ipPrefix = IpPrefix.valueOf(IpAddress.Version.INET6, value, 120); - } - - /** - * Tests invalid valueOf() converter for a short array for IPv4. - */ - @Test(expected = IllegalArgumentException.class) - public void testInvalidValueOfShortArrayIPv4() { - IpPrefix ipPrefix; - byte[] value; - - value = new byte[] {1, 2, 3}; - ipPrefix = IpPrefix.valueOf(IpAddress.Version.INET, value, 24); - } - - /** - * Tests invalid valueOf() converter for a short array for IPv6. - */ - @Test(expected = IllegalArgumentException.class) - public void testInvalidValueOfShortArrayIPv6() { - IpPrefix ipPrefix; - byte[] value; - - value = new byte[] {1, 2, 3, 4, 5, 6, 7, 8, 9}; - ipPrefix = IpPrefix.valueOf(IpAddress.Version.INET6, value, 120); - } - - /** - * Tests invalid valueOf() converter for IPv4 byte array and - * negative prefix length. - */ - @Test(expected = IllegalArgumentException.class) - public void testInvalidValueOfByteArrayNegativePrefixLengthIPv4() { - IpPrefix ipPrefix; - byte[] value; - - value = new byte[] {1, 2, 3, 4}; - ipPrefix = IpPrefix.valueOf(IpAddress.Version.INET, value, -1); - } - - /** - * Tests invalid valueOf() converter for IPv6 byte array and - * negative prefix length. - */ - @Test(expected = IllegalArgumentException.class) - public void testInvalidValueOfByteArrayNegativePrefixLengthIPv6() { - IpPrefix ipPrefix; - byte[] value; - - value = new byte[] {0x11, 0x11, 0x22, 0x22, - 0x33, 0x33, 0x44, 0x44, - 0x55, 0x55, 0x66, 0x66, - 0x77, 0x77, (byte) 0x88, (byte) 0x88}; - ipPrefix = IpPrefix.valueOf(IpAddress.Version.INET6, value, -1); - } - - /** - * Tests invalid valueOf() converter for IPv4 byte array and - * too long prefix length. - */ - @Test(expected = IllegalArgumentException.class) - public void testInvalidValueOfByteArrayTooLongPrefixLengthIPv4() { - IpPrefix ipPrefix; - byte[] value; - - value = new byte[] {1, 2, 3, 4}; - ipPrefix = IpPrefix.valueOf(IpAddress.Version.INET, value, 33); - } - - /** - * Tests invalid valueOf() converter for IPv6 byte array and - * too long prefix length. - */ - @Test(expected = IllegalArgumentException.class) - public void testInvalidValueOfByteArrayTooLongPrefixLengthIPv6() { - IpPrefix ipPrefix; - byte[] value; - - value = new byte[] {0x11, 0x11, 0x22, 0x22, - 0x33, 0x33, 0x44, 0x44, - 0x55, 0x55, 0x66, 0x66, - 0x77, 0x77, (byte) 0x88, (byte) 0x88}; - ipPrefix = IpPrefix.valueOf(IpAddress.Version.INET6, value, 129); - } - - /** - * Tests valueOf() converter for IPv4 address. - */ - @Test - public void testValueOfAddressIPv4() { - IpAddress ipAddress; - IpPrefix ipPrefix; - - ipAddress = IpAddress.valueOf("1.2.3.4"); - ipPrefix = IpPrefix.valueOf(ipAddress, 24); - assertThat(ipPrefix.toString(), is("1.2.3.0/24")); - - ipPrefix = IpPrefix.valueOf(ipAddress, 32); - assertThat(ipPrefix.toString(), is("1.2.3.4/32")); - - ipAddress = IpAddress.valueOf("1.2.3.5"); - ipPrefix = IpPrefix.valueOf(ipAddress, 32); - assertThat(ipPrefix.toString(), is("1.2.3.5/32")); - - ipAddress = IpAddress.valueOf("0.0.0.0"); - ipPrefix = IpPrefix.valueOf(ipAddress, 0); - assertThat(ipPrefix.toString(), is("0.0.0.0/0")); - - ipPrefix = IpPrefix.valueOf(ipAddress, 32); - assertThat(ipPrefix.toString(), is("0.0.0.0/32")); - - ipAddress = IpAddress.valueOf("255.255.255.255"); - ipPrefix = IpPrefix.valueOf(ipAddress, 0); - assertThat(ipPrefix.toString(), is("0.0.0.0/0")); - - ipPrefix = IpPrefix.valueOf(ipAddress, 16); - assertThat(ipPrefix.toString(), is("255.255.0.0/16")); - - ipPrefix = IpPrefix.valueOf(ipAddress, 32); - assertThat(ipPrefix.toString(), is("255.255.255.255/32")); - } - - /** - * Tests valueOf() converter for IPv6 address. - */ - @Test - public void testValueOfAddressIPv6() { - IpAddress ipAddress; - IpPrefix ipPrefix; - - ipAddress = - IpAddress.valueOf("1111:2222:3333:4444:5555:6666:7777:8888"); - ipPrefix = IpPrefix.valueOf(ipAddress, 120); - assertThat(ipPrefix.toString(), - is("1111:2222:3333:4444:5555:6666:7777:8800/120")); - - ipPrefix = IpPrefix.valueOf(ipAddress, 128); - assertThat(ipPrefix.toString(), - is("1111:2222:3333:4444:5555:6666:7777:8888/128")); - - ipAddress = IpAddress.valueOf("::"); - ipPrefix = IpPrefix.valueOf(ipAddress, 0); - assertThat(ipPrefix.toString(), is("::/0")); - - ipPrefix = IpPrefix.valueOf(ipAddress, 128); - assertThat(ipPrefix.toString(), is("::/128")); - - ipAddress = - IpAddress.valueOf("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff"); - ipPrefix = IpPrefix.valueOf(ipAddress, 0); - assertThat(ipPrefix.toString(), is("::/0")); - - ipPrefix = IpPrefix.valueOf(ipAddress, 64); - assertThat(ipPrefix.toString(), is("ffff:ffff:ffff:ffff::/64")); - - ipPrefix = IpPrefix.valueOf(ipAddress, 128); - assertThat(ipPrefix.toString(), - is("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/128")); - } - - /** - * Tests invalid valueOf() converter for a null IP address. - */ - @Test(expected = NullPointerException.class) - public void testInvalidValueOfNullAddress() { - IpAddress ipAddress; - IpPrefix ipPrefix; - - ipAddress = null; - ipPrefix = IpPrefix.valueOf(ipAddress, 24); - } - - /** - * Tests invalid valueOf() converter for IPv4 address and - * negative prefix length. - */ - @Test(expected = IllegalArgumentException.class) - public void testInvalidValueOfAddressNegativePrefixLengthIPv4() { - IpAddress ipAddress; - IpPrefix ipPrefix; - - ipAddress = IpAddress.valueOf("1.2.3.4"); - ipPrefix = IpPrefix.valueOf(ipAddress, -1); - } - - /** - * Tests invalid valueOf() converter for IPv6 address and - * negative prefix length. - */ - @Test(expected = IllegalArgumentException.class) - public void testInvalidValueOfAddressNegativePrefixLengthIPv6() { - IpAddress ipAddress; - IpPrefix ipPrefix; - - ipAddress = - IpAddress.valueOf("1111:2222:3333:4444:5555:6666:7777:8888"); - ipPrefix = IpPrefix.valueOf(ipAddress, -1); - } - - /** - * Tests invalid valueOf() converter for IPv4 address and - * too long prefix length. - */ - @Test(expected = IllegalArgumentException.class) - public void testInvalidValueOfAddressTooLongPrefixLengthIPv4() { - IpAddress ipAddress; - IpPrefix ipPrefix; - - ipAddress = IpAddress.valueOf("1.2.3.4"); - ipPrefix = IpPrefix.valueOf(ipAddress, 33); - } - - /** - * Tests invalid valueOf() converter for IPv6 address and - * too long prefix length. - */ - @Test(expected = IllegalArgumentException.class) - public void testInvalidValueOfAddressTooLongPrefixLengthIPv6() { - IpAddress ipAddress; - IpPrefix ipPrefix; - - ipAddress = - IpAddress.valueOf("1111:2222:3333:4444:5555:6666:7777:8888"); - ipPrefix = IpPrefix.valueOf(ipAddress, 129); - } - - /** - * Tests valueOf() converter for IPv4 string. - */ - @Test - public void testValueOfStringIPv4() { - IpPrefix ipPrefix; - - ipPrefix = IpPrefix.valueOf("1.2.3.4/24"); - assertThat(ipPrefix.toString(), is("1.2.3.0/24")); - - ipPrefix = IpPrefix.valueOf("1.2.3.4/32"); - assertThat(ipPrefix.toString(), is("1.2.3.4/32")); - - ipPrefix = IpPrefix.valueOf("1.2.3.5/32"); - assertThat(ipPrefix.toString(), is("1.2.3.5/32")); - - ipPrefix = IpPrefix.valueOf("0.0.0.0/0"); - assertThat(ipPrefix.toString(), is("0.0.0.0/0")); - - ipPrefix = IpPrefix.valueOf("0.0.0.0/32"); - assertThat(ipPrefix.toString(), is("0.0.0.0/32")); - - ipPrefix = IpPrefix.valueOf("255.255.255.255/0"); - assertThat(ipPrefix.toString(), is("0.0.0.0/0")); - - ipPrefix = IpPrefix.valueOf("255.255.255.255/16"); - assertThat(ipPrefix.toString(), is("255.255.0.0/16")); - - ipPrefix = IpPrefix.valueOf("255.255.255.255/32"); - assertThat(ipPrefix.toString(), is("255.255.255.255/32")); - } - - /** - * Tests valueOf() converter for IPv6 string. - */ - @Test - public void testValueOfStringIPv6() { - IpPrefix ipPrefix; - - ipPrefix = - IpPrefix.valueOf("1111:2222:3333:4444:5555:6666:7777:8888/120"); - assertThat(ipPrefix.toString(), - is("1111:2222:3333:4444:5555:6666:7777:8800/120")); - - ipPrefix = - IpPrefix.valueOf("1111:2222:3333:4444:5555:6666:7777:8888/128"); - assertThat(ipPrefix.toString(), - is("1111:2222:3333:4444:5555:6666:7777:8888/128")); - - ipPrefix = IpPrefix.valueOf("::/0"); - assertThat(ipPrefix.toString(), is("::/0")); - - ipPrefix = IpPrefix.valueOf("::/128"); - assertThat(ipPrefix.toString(), is("::/128")); - - ipPrefix = - IpPrefix.valueOf("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/0"); - assertThat(ipPrefix.toString(), is("::/0")); - - ipPrefix = - IpPrefix.valueOf("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/64"); - assertThat(ipPrefix.toString(), is("ffff:ffff:ffff:ffff::/64")); - - ipPrefix = - IpPrefix.valueOf("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/128"); - assertThat(ipPrefix.toString(), - is("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/128")); - } - - /** - * Tests invalid valueOf() converter for a null string. - */ - @Test(expected = NullPointerException.class) - public void testInvalidValueOfNullString() { - IpPrefix ipPrefix; - String fromString; - - fromString = null; - ipPrefix = IpPrefix.valueOf(fromString); - } - - /** - * Tests invalid valueOf() converter for an empty string. - */ - @Test(expected = IllegalArgumentException.class) - public void testInvalidValueOfEmptyString() { - IpPrefix ipPrefix; - String fromString; - - fromString = ""; - ipPrefix = IpPrefix.valueOf(fromString); - } - - /** - * Tests invalid valueOf() converter for an incorrect string. - */ - @Test(expected = IllegalArgumentException.class) - public void testInvalidValueOfIncorrectString() { - IpPrefix ipPrefix; - String fromString; - - fromString = "NoSuchIpPrefix"; - ipPrefix = IpPrefix.valueOf(fromString); - } - - /** - * Tests invalid valueOf() converter for IPv4 string and - * negative prefix length. - */ - @Test(expected = IllegalArgumentException.class) - public void testInvalidValueOfStringNegativePrefixLengthIPv4() { - IpPrefix ipPrefix; - - ipPrefix = IpPrefix.valueOf("1.2.3.4/-1"); - } - - /** - * Tests invalid valueOf() converter for IPv6 string and - * negative prefix length. - */ - @Test(expected = IllegalArgumentException.class) - public void testInvalidValueOfStringNegativePrefixLengthIPv6() { - IpPrefix ipPrefix; - - ipPrefix = - IpPrefix.valueOf("1111:2222:3333:4444:5555:6666:7777:8888/-1"); - } - - /** - * Tests invalid valueOf() converter for IPv4 string and - * too long prefix length. - */ - @Test(expected = IllegalArgumentException.class) - public void testInvalidValueOfStringTooLongPrefixLengthIPv4() { - IpPrefix ipPrefix; - - ipPrefix = IpPrefix.valueOf("1.2.3.4/33"); - } - - /** - * Tests invalid valueOf() converter for IPv6 string and - * too long prefix length. - */ - @Test(expected = IllegalArgumentException.class) - public void testInvalidValueOfStringTooLongPrefixLengthIPv6() { - IpPrefix ipPrefix; - - ipPrefix = - IpPrefix.valueOf("1111:2222:3333:4444:5555:6666:7777:8888/129"); - } - - /** - * Tests IP prefix contains another IP prefix for IPv4. - */ - @Test - public void testContainsIpPrefixIPv4() { - IpPrefix ipPrefix; - - ipPrefix = IpPrefix.valueOf("1.2.0.0/24"); - assertTrue(ipPrefix.contains(IpPrefix.valueOf("1.2.0.0/24"))); - assertTrue(ipPrefix.contains(IpPrefix.valueOf("1.2.0.0/32"))); - assertTrue(ipPrefix.contains(IpPrefix.valueOf("1.2.0.4/32"))); - assertFalse(ipPrefix.contains(IpPrefix.valueOf("1.2.0.0/16"))); - assertFalse(ipPrefix.contains(IpPrefix.valueOf("1.3.0.0/24"))); - assertFalse(ipPrefix.contains(IpPrefix.valueOf("0.0.0.0/16"))); - assertFalse(ipPrefix.contains(IpPrefix.valueOf("0.0.0.0/0"))); - assertFalse(ipPrefix.contains(IpPrefix.valueOf("255.255.255.255/32"))); - - ipPrefix = IpPrefix.valueOf("1.2.0.0/32"); - assertFalse(ipPrefix.contains(IpPrefix.valueOf("1.2.0.0/24"))); - assertTrue(ipPrefix.contains(IpPrefix.valueOf("1.2.0.0/32"))); - assertFalse(ipPrefix.contains(IpPrefix.valueOf("1.2.0.4/32"))); - assertFalse(ipPrefix.contains(IpPrefix.valueOf("1.2.0.0/16"))); - assertFalse(ipPrefix.contains(IpPrefix.valueOf("1.3.0.0/24"))); - assertFalse(ipPrefix.contains(IpPrefix.valueOf("0.0.0.0/16"))); - assertFalse(ipPrefix.contains(IpPrefix.valueOf("0.0.0.0/0"))); - assertFalse(ipPrefix.contains(IpPrefix.valueOf("255.255.255.255/32"))); - - ipPrefix = IpPrefix.valueOf("0.0.0.0/0"); - assertTrue(ipPrefix.contains(IpPrefix.valueOf("1.2.0.0/24"))); - assertTrue(ipPrefix.contains(IpPrefix.valueOf("1.2.0.0/32"))); - assertTrue(ipPrefix.contains(IpPrefix.valueOf("1.2.0.4/32"))); - assertTrue(ipPrefix.contains(IpPrefix.valueOf("1.2.0.0/16"))); - assertTrue(ipPrefix.contains(IpPrefix.valueOf("1.3.0.0/24"))); - assertTrue(ipPrefix.contains(IpPrefix.valueOf("0.0.0.0/16"))); - assertTrue(ipPrefix.contains(IpPrefix.valueOf("0.0.0.0/0"))); - assertTrue(ipPrefix.contains(IpPrefix.valueOf("255.255.255.255/32"))); - - ipPrefix = IpPrefix.valueOf("255.255.255.255/32"); - assertFalse(ipPrefix.contains(IpPrefix.valueOf("1.2.0.0/24"))); - assertFalse(ipPrefix.contains(IpPrefix.valueOf("1.2.0.0/32"))); - assertFalse(ipPrefix.contains(IpPrefix.valueOf("1.2.0.4/32"))); - assertFalse(ipPrefix.contains(IpPrefix.valueOf("1.2.0.0/16"))); - assertFalse(ipPrefix.contains(IpPrefix.valueOf("1.3.0.0/24"))); - assertFalse(ipPrefix.contains(IpPrefix.valueOf("0.0.0.0/16"))); - assertFalse(ipPrefix.contains(IpPrefix.valueOf("0.0.0.0/0"))); - assertTrue(ipPrefix.contains(IpPrefix.valueOf("255.255.255.255/32"))); - - // Test when there is a mistmatch in the compared IP address families - ipPrefix = IpPrefix.valueOf("0.0.0.0/0"); - assertFalse(ipPrefix.contains(IpPrefix.valueOf("1111:2222:3333:4444::/120"))); - ipPrefix = IpPrefix.valueOf("255.255.255.255/32"); - assertFalse(ipPrefix.contains(IpPrefix.valueOf("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/128"))); - } - - /** - * Tests IP prefix contains another IP prefix for IPv6. - */ - @Test - public void testContainsIpPrefixIPv6() { - IpPrefix ipPrefix; - - ipPrefix = IpPrefix.valueOf("1111:2222:3333:4444::/120"); - assertTrue(ipPrefix.contains( - IpPrefix.valueOf("1111:2222:3333:4444::/120"))); - assertTrue(ipPrefix.contains( - IpPrefix.valueOf("1111:2222:3333:4444::/128"))); - assertTrue(ipPrefix.contains( - IpPrefix.valueOf("1111:2222:3333:4444::1/128"))); - assertFalse(ipPrefix.contains( - IpPrefix.valueOf("1111:2222:3333:4444::/64"))); - assertFalse(ipPrefix.contains( - IpPrefix.valueOf("1111:2222:3333:4445::/120"))); - assertFalse(ipPrefix.contains(IpPrefix.valueOf("::/64"))); - assertFalse(ipPrefix.contains(IpPrefix.valueOf("::/0"))); - assertFalse(ipPrefix.contains( - IpPrefix.valueOf("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/128"))); - - ipPrefix = IpPrefix.valueOf("1111:2222:3333:4444::/128"); - assertFalse(ipPrefix.contains( - IpPrefix.valueOf("1111:2222:3333:4444::/120"))); - assertTrue(ipPrefix.contains( - IpPrefix.valueOf("1111:2222:3333:4444::/128"))); - assertFalse(ipPrefix.contains( - IpPrefix.valueOf("1111:2222:3333:4444::1/128"))); - assertFalse(ipPrefix.contains( - IpPrefix.valueOf("1111:2222:3333:4444::/64"))); - assertFalse(ipPrefix.contains( - IpPrefix.valueOf("1111:2222:3333:4445::/120"))); - assertFalse(ipPrefix.contains(IpPrefix.valueOf("::/64"))); - assertFalse(ipPrefix.contains(IpPrefix.valueOf("::/0"))); - assertFalse(ipPrefix.contains( - IpPrefix.valueOf("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/128"))); - - ipPrefix = IpPrefix.valueOf("::/0"); - assertTrue(ipPrefix.contains( - IpPrefix.valueOf("1111:2222:3333:4444::/120"))); - assertTrue(ipPrefix.contains( - IpPrefix.valueOf("1111:2222:3333:4444::/128"))); - assertTrue(ipPrefix.contains( - IpPrefix.valueOf("1111:2222:3333:4444::1/128"))); - assertTrue(ipPrefix.contains( - IpPrefix.valueOf("1111:2222:3333:4444::/64"))); - assertTrue(ipPrefix.contains( - IpPrefix.valueOf("1111:2222:3333:4445::/120"))); - assertTrue(ipPrefix.contains(IpPrefix.valueOf("::/64"))); - assertTrue(ipPrefix.contains(IpPrefix.valueOf("::/0"))); - assertTrue(ipPrefix.contains( - IpPrefix.valueOf("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/128"))); - - ipPrefix = - IpPrefix.valueOf("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/128"); - assertFalse(ipPrefix.contains( - IpPrefix.valueOf("1111:2222:3333:4444::/120"))); - assertFalse(ipPrefix.contains( - IpPrefix.valueOf("1111:2222:3333:4444::/128"))); - assertFalse(ipPrefix.contains( - IpPrefix.valueOf("1111:2222:3333:4444::1/128"))); - assertFalse(ipPrefix.contains( - IpPrefix.valueOf("1111:2222:3333:4444::/64"))); - assertFalse(ipPrefix.contains( - IpPrefix.valueOf("1111:2222:3333:4445::/120"))); - assertFalse(ipPrefix.contains(IpPrefix.valueOf("::/64"))); - assertFalse(ipPrefix.contains(IpPrefix.valueOf("::/0"))); - assertTrue(ipPrefix.contains( - IpPrefix.valueOf("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/128"))); - - // Test when there is a mistmatch in the compared IP address families - ipPrefix = IpPrefix.valueOf("::/0"); - assertFalse(ipPrefix.contains(IpPrefix.valueOf("1.2.0.0/24"))); - ipPrefix = IpPrefix.valueOf("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/128"); - assertFalse(ipPrefix.contains(IpPrefix.valueOf("255.255.255.255/32"))); - } - - /** - * Tests IP prefix contains IP address for IPv4. - */ - @Test - public void testContainsIpAddressIPv4() { - IpPrefix ipPrefix; - - ipPrefix = IpPrefix.valueOf("1.2.0.0/24"); - assertTrue(ipPrefix.contains(IpAddress.valueOf("1.2.0.0"))); - assertTrue(ipPrefix.contains(IpAddress.valueOf("1.2.0.4"))); - assertFalse(ipPrefix.contains(IpAddress.valueOf("1.3.0.0"))); - assertFalse(ipPrefix.contains(IpAddress.valueOf("0.0.0.0"))); - assertFalse(ipPrefix.contains(IpAddress.valueOf("255.255.255.255"))); - - ipPrefix = IpPrefix.valueOf("1.2.0.0/32"); - assertTrue(ipPrefix.contains(IpAddress.valueOf("1.2.0.0"))); - assertFalse(ipPrefix.contains(IpAddress.valueOf("1.2.0.4"))); - assertFalse(ipPrefix.contains(IpAddress.valueOf("1.3.0.0"))); - assertFalse(ipPrefix.contains(IpAddress.valueOf("0.0.0.0"))); - assertFalse(ipPrefix.contains(IpAddress.valueOf("255.255.255.255"))); - - ipPrefix = IpPrefix.valueOf("0.0.0.0/0"); - assertTrue(ipPrefix.contains(IpAddress.valueOf("1.2.0.0"))); - assertTrue(ipPrefix.contains(IpAddress.valueOf("1.2.0.4"))); - assertTrue(ipPrefix.contains(IpAddress.valueOf("1.3.0.0"))); - assertTrue(ipPrefix.contains(IpAddress.valueOf("0.0.0.0"))); - assertTrue(ipPrefix.contains(IpAddress.valueOf("255.255.255.255"))); - - ipPrefix = IpPrefix.valueOf("255.255.255.255/32"); - assertFalse(ipPrefix.contains(IpAddress.valueOf("1.2.0.0"))); - assertFalse(ipPrefix.contains(IpAddress.valueOf("1.2.0.4"))); - assertFalse(ipPrefix.contains(IpAddress.valueOf("1.3.0.0"))); - assertFalse(ipPrefix.contains(IpAddress.valueOf("0.0.0.0"))); - assertTrue(ipPrefix.contains(IpAddress.valueOf("255.255.255.255"))); - - // Test when there is a mistmatch in the compared IP address families - ipPrefix = IpPrefix.valueOf("0.0.0.0/0"); - assertFalse(ipPrefix.contains(IpAddress.valueOf("1111:2222:3333:4444::"))); - ipPrefix = IpPrefix.valueOf("255.255.255.255/32"); - assertFalse(ipPrefix.contains(IpAddress.valueOf("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff"))); - } - - /** - * Tests IP prefix contains IP address for IPv6. - */ - @Test - public void testContainsIpAddressIPv6() { - IpPrefix ipPrefix; - - ipPrefix = IpPrefix.valueOf("1111:2222:3333:4444::/120"); - assertTrue(ipPrefix.contains( - IpAddress.valueOf("1111:2222:3333:4444::"))); - assertTrue(ipPrefix.contains( - IpAddress.valueOf("1111:2222:3333:4444::1"))); - assertFalse(ipPrefix.contains( - IpAddress.valueOf("1111:2222:3333:4445::"))); - assertFalse(ipPrefix.contains(IpAddress.valueOf("::"))); - assertFalse(ipPrefix.contains( - IpAddress.valueOf("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff"))); - - ipPrefix = IpPrefix.valueOf("1111:2222:3333:4444::/128"); - assertTrue(ipPrefix.contains( - IpAddress.valueOf("1111:2222:3333:4444::"))); - assertFalse(ipPrefix.contains( - IpAddress.valueOf("1111:2222:3333:4444::1"))); - assertFalse(ipPrefix.contains( - IpAddress.valueOf("1111:2222:3333:4445::"))); - assertFalse(ipPrefix.contains(IpAddress.valueOf("::"))); - assertFalse(ipPrefix.contains( - IpAddress.valueOf("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff"))); - - ipPrefix = IpPrefix.valueOf("::/0"); - assertTrue(ipPrefix.contains( - IpAddress.valueOf("1111:2222:3333:4444::"))); - assertTrue(ipPrefix.contains( - IpAddress.valueOf("1111:2222:3333:4444::1"))); - assertTrue(ipPrefix.contains( - IpAddress.valueOf("1111:2222:3333:4445::"))); - assertTrue(ipPrefix.contains(IpAddress.valueOf("::"))); - assertTrue(ipPrefix.contains( - IpAddress.valueOf("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff"))); - - ipPrefix = - IpPrefix.valueOf("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/128"); - assertFalse(ipPrefix.contains( - IpAddress.valueOf("1111:2222:3333:4444::"))); - assertFalse(ipPrefix.contains( - IpAddress.valueOf("1111:2222:3333:4444::1"))); - assertFalse(ipPrefix.contains( - IpAddress.valueOf("1111:2222:3333:4445::"))); - assertFalse(ipPrefix.contains(IpAddress.valueOf("::"))); - assertTrue(ipPrefix.contains( - IpAddress.valueOf("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff"))); - - // Test when there is a mistmatch in the compared IP address families - ipPrefix = IpPrefix.valueOf("::/0"); - assertFalse(ipPrefix.contains(IpAddress.valueOf("1.2.0.0"))); - ipPrefix = IpPrefix.valueOf("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/128"); - assertFalse(ipPrefix.contains(IpAddress.valueOf("255.255.255.255"))); - } - - /** - * Tests equality of {@link IpPrefix} for IPv4. - */ - @Test - public void testEqualityIPv4() { - new EqualsTester() - .addEqualityGroup(IpPrefix.valueOf("1.2.0.0/24"), - IpPrefix.valueOf("1.2.0.0/24"), - IpPrefix.valueOf("1.2.0.4/24")) - .addEqualityGroup(IpPrefix.valueOf("1.2.0.0/16"), - IpPrefix.valueOf("1.2.0.0/16")) - .addEqualityGroup(IpPrefix.valueOf("1.2.0.0/32"), - IpPrefix.valueOf("1.2.0.0/32")) - .addEqualityGroup(IpPrefix.valueOf("1.3.0.0/24"), - IpPrefix.valueOf("1.3.0.0/24")) - .addEqualityGroup(IpPrefix.valueOf("0.0.0.0/0"), - IpPrefix.valueOf("0.0.0.0/0")) - .addEqualityGroup(IpPrefix.valueOf("255.255.255.255/32"), - IpPrefix.valueOf("255.255.255.255/32")) - .testEquals(); - } - - /** - * Tests equality of {@link IpPrefix} for IPv6. - */ - @Test - public void testEqualityIPv6() { - new EqualsTester() - .addEqualityGroup( - IpPrefix.valueOf("1111:2222:3333:4444::/120"), - IpPrefix.valueOf("1111:2222:3333:4444::1/120"), - IpPrefix.valueOf("1111:2222:3333:4444::/120")) - .addEqualityGroup( - IpPrefix.valueOf("1111:2222:3333:4444::/64"), - IpPrefix.valueOf("1111:2222:3333:4444::/64")) - .addEqualityGroup( - IpPrefix.valueOf("1111:2222:3333:4444::/128"), - IpPrefix.valueOf("1111:2222:3333:4444::/128")) - .addEqualityGroup( - IpPrefix.valueOf("1111:2222:3333:4445::/64"), - IpPrefix.valueOf("1111:2222:3333:4445::/64")) - .addEqualityGroup( - IpPrefix.valueOf("::/0"), - IpPrefix.valueOf("::/0")) - .addEqualityGroup( - IpPrefix.valueOf("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/128"), - IpPrefix.valueOf("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/128")) - .testEquals(); - } - - /** - * Tests object string representation for IPv4. - */ - @Test - public void testToStringIPv4() { - IpPrefix ipPrefix; - - ipPrefix = IpPrefix.valueOf("1.2.3.0/24"); - assertThat(ipPrefix.toString(), is("1.2.3.0/24")); - - ipPrefix = IpPrefix.valueOf("1.2.3.4/24"); - assertThat(ipPrefix.toString(), is("1.2.3.0/24")); - - ipPrefix = IpPrefix.valueOf("0.0.0.0/0"); - assertThat(ipPrefix.toString(), is("0.0.0.0/0")); - - ipPrefix = IpPrefix.valueOf("255.255.255.255/32"); - assertThat(ipPrefix.toString(), is("255.255.255.255/32")); - } - - /** - * Tests object string representation for IPv6. - */ - @Test - public void testToStringIPv6() { - IpPrefix ipPrefix; - - ipPrefix = IpPrefix.valueOf("1100::/8"); - assertThat(ipPrefix.toString(), is("1100::/8")); - - ipPrefix = IpPrefix.valueOf("1111:2222:3333:4444:5555:6666:7777:8885/8"); - assertThat(ipPrefix.toString(), is("1100::/8")); - - ipPrefix = IpPrefix.valueOf("::/0"); - assertThat(ipPrefix.toString(), is("::/0")); - - ipPrefix = IpPrefix.valueOf("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/128"); - assertThat(ipPrefix.toString(), - is("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/128")); - } -} |