[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