[utilities COMMIT] in /java-support/trunk/src: main/java/net/shibboleth/utilities/java/support/net/IPRange.java test/...
noreply at shibboleth.net
noreply at shibboleth.net
Wed Mar 7 13:24:54 GMT 2012
Author: lajoie
Date: Wed Mar 7 13:24:54 2012
New Revision: 240
URL: http://svn.shibboleth.net/view/utilities?rev=240&view=rev
Log:
Add some unit tests
Change error message to make it a bit more clear
Modified:
java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/net/IPRange.java
java-support/trunk/src/test/java/net/shibboleth/utilities/java/support/net/IPRangeTest.java
Modified: java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/net/IPRange.java
URL: http://svn.shibboleth.net/view/utilities/java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/net/IPRange.java?rev=240&r1=239&r2=240&view=diff
==============================================================================
--- java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/net/IPRange.java (original)
+++ java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/net/IPRange.java Wed Mar 7 13:24:54 2012
@@ -169,7 +169,7 @@
public static IPRange parseCIDRBlock(final String cidrBlock) {
String block = StringSupport.trimOrNull(cidrBlock);
if (block == null) {
- throw new IllegalArgumentException("CIDR block definition may not be null");
+ throw new IllegalArgumentException("CIDR block definition can not be null or empty");
}
String[] blockParts = block.split("/");
Modified: java-support/trunk/src/test/java/net/shibboleth/utilities/java/support/net/IPRangeTest.java
URL: http://svn.shibboleth.net/view/utilities/java-support/trunk/src/test/java/net/shibboleth/utilities/java/support/net/IPRangeTest.java?rev=240&r1=239&r2=240&view=diff
==============================================================================
--- java-support/trunk/src/test/java/net/shibboleth/utilities/java/support/net/IPRangeTest.java (original)
+++ java-support/trunk/src/test/java/net/shibboleth/utilities/java/support/net/IPRangeTest.java Wed Mar 7 13:24:54 2012
@@ -1,5 +1,7 @@
package net.shibboleth.utilities.java.support.net;
+
+import java.net.InetAddress;
import net.shibboleth.utilities.java.support.net.IPRange;
@@ -7,7 +9,132 @@
import org.testng.annotations.Test;
public class IPRangeTest {
+
+ @Test public void testValidV4Addresses() {
+ IPRange.parseCIDRBlock("1.2.3.4/32");
+ IPRange.parseCIDRBlock("0.0.0.0/8");
+ IPRange.parseCIDRBlock("0.0.0.0/0");
+ }
+ @Test public void testValidV6Addresses() {
+ IPRange.parseCIDRBlock("0:0:0:0:0:0:0:0/128");
+ IPRange.parseCIDRBlock("0:0:0:0:0:0:0:0/0");
+ IPRange.parseCIDRBlock("1234:5678:90ab:cdef:FfFf:AaAa:BBBB:CCCC/128");
+ IPRange.parseCIDRBlock("1234:5678::BBBB:CCCC/128");
+ IPRange.parseCIDRBlock("2001:630:200::/48");
+ IPRange.parseCIDRBlock("::0BAD:7/128");
+ }
+
+ @Test public void testInvalidJunkAddresses() {
+ testInvalid(null);
+ testInvalid("1.2.3.500/32");
+ testInvalid("1.2.3.G/32");
+ testInvalid("1234:5678:90ab:cdef:FfFf:AaAa:BBBB:FFFFF/128");
+ testInvalid("1234:5678:90ab:cdef:FfFf:AaAa:BBBB:GHIJ/128");
+ testInvalid("/32");
+ testInvalid("f/32");
+
+ try{
+ new IPRange(new byte[]{1, 2 ,3}, 32);
+ Assert.fail();
+ }catch(IllegalArgumentException e){
+ //expected this
+ }
+ }
+
+ @Test public void testInvalidV4Addresses() {
+ testInvalid("1/32");
+ testInvalid("1.2/32");
+ testInvalid("1.2.3/32");
+ testInvalid("1.2.3.4/33");
+ testInvalid("1.2.3.4/-3");
+ testInvalid("1.2.3.4/wrong");
+ }
+
+ @Test public void testInvalidV6Addresses() {
+ testInvalid("0:0/128");
+ testInvalid("1:2:3:4:5:6:7/128");
+ testInvalid("::0BAD::7/128");
+ testInvalid("1:2:3:4:5:6:7:8/-5");
+ testInvalid("1:2:3:4:5:6:7:8/129");
+ testInvalid("1:2:3:4:5:6:7:8/wrong");
+ }
+
+ @Test public void testContains() throws Exception {
+ // IPRange given a network address
+ IPRange networkRange = IPRange.parseCIDRBlock("192.168.117.192/28");
+
+ // IPRange given a host address
+ IPRange hostRange = IPRange.parseCIDRBlock("192.168.117.199/28");
+
+ // test for contain
+ byte[] bytes = new byte[] {(byte) 192, (byte) 168, 117, (byte) 191};
+ Assert.assertFalse(networkRange.contains(bytes));
+ Assert.assertFalse(hostRange.contains(bytes));
+
+ for (int host = 0; host < 16; host++) {
+ bytes[3] = (byte) (192 + host);
+ Assert.assertTrue(networkRange.contains(bytes));
+ Assert.assertTrue(hostRange.contains(bytes));
+ }
+
+ bytes[3] = (byte) (192 + 16);
+ Assert.assertFalse(networkRange.contains(bytes));
+ Assert.assertFalse(hostRange.contains(bytes));
+
+ Assert.assertFalse(networkRange.contains(new byte[] {1, 2, 3}));
+ Assert.assertFalse(hostRange.contains(new byte[] {1, 2, 3}));
+
+ Assert.assertFalse(networkRange.contains(InetAddress.getLocalHost()));
[... 207 lines stripped ...]
More information about the commits
mailing list