package org.openstack.atlas.lb.helpers.ipstring; import org.openstack.atlas.lb.helpers.ipstring.exceptions.IPCidrBlockOutOfRangeException; import org.openstack.atlas.lb.helpers.ipstring.exceptions.IPOctetOutOfRangeException; import org.openstack.atlas.lb.helpers.ipstring.exceptions.IPStringConversionException; import org.openstack.atlas.lb.helpers.ipstring.exceptions.IPBlocksOverLapException; import org.openstack.atlas.lb.helpers.ipstring.exceptions.IPStringException; import org.junit.Before; import org.junit.Test; import static org.junit.Assert.*; public class IPv4RangesTest { private IPv4Ranges ranges = new IPv4Ranges(); private IPv4Ranges privateranges = new IPv4Ranges(); public IPv4RangesTest() { } @Before public void setUp() throws Exception { } @Test(expected = IPBlocksOverLapException.class) public void shouldThrowOverLapExceptionIfOverlapping() throws IPBlocksOverLapException, IPStringConversionException, IPOctetOutOfRangeException, IPCidrBlockOutOfRangeException { ranges = new IPv4Ranges(); ranges.add("127.0.0.0/24"); ranges.add("127.0.0.64/23"); // Kaboom } @Test public void shouldAddIpBlocksIfnotOverlapping() throws IPBlocksOverLapException, IPStringConversionException, IPOctetOutOfRangeException, IPCidrBlockOutOfRangeException { ranges = new IPv4Ranges(); ranges.add("127.0.0.1/24"); ranges.add("127.0.1.0/24"); ranges.add("127.0.2.0/24"); assertEquals(3, ranges.getRanges().size()); } @Test public void shouldExcept192Ranges() throws IPStringException { ranges = getPrivateRanges(); assertTrue(ranges.contains("192.168.0.12")); assertTrue(ranges.contains("192.168.1.1")); assertTrue(ranges.contains("192.168.2.32")); assertTrue(ranges.contains("192.168.3.44")); assertTrue(ranges.contains("192.168.4.41")); } @Test public void shouldExcept172Ranges() throws IPStringException { ranges = getPrivateRanges(); assertTrue(ranges.contains("172.16.0.1")); assertTrue(ranges.contains("172.17.0.1")); assertTrue(ranges.contains("172.31.255.255")); } @Test public void shouldExcept10Ranges() throws IPStringException { ranges = getPrivateRanges(); assertTrue(ranges.contains("10.0.0.1")); assertTrue(ranges.contains("10.250.0.2")); assertTrue(ranges.contains("10.33.0.3")); } private IPv4Ranges getPrivateRanges() throws IPStringException { IPv4Ranges out = new IPv4Ranges(); out.add("10.0.0.0/8"); out.add("172.16.0.0/12"); out.add("192.168.0.0/16"); return out; } }