package org.openstack.atlas.lb.helpers.ipstring;
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.IPCidrBlockOutOfRangeException;
import org.openstack.atlas.lb.helpers.ipstring.exceptions.IPOctetOutOfRangeException;
import java.util.List;
import java.util.ArrayList;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;
public class IPv4ToolSetTest {
public IPv4ToolSetTest() {
}
@Before
public void setUp() throws Exception {
}
@Test
public void shouldConvertIpString2Long() throws IPStringConversionException, IPOctetOutOfRangeException {
assertEquals(3232235520L, IPv4ToolSet.ip2long("192.168.0.0"));
}
@Test
public void shouldConvertLong2IpString() {
assertTrue("172.16.0.0".equals(IPv4ToolSet.long2ip(2886729728L)));
}
@Test(expected = IPCidrBlockOutOfRangeException.class)
public void shouldThrowCidrBlockOutOfRangeWhenLessThenSlashneg1() throws IPStringConversionException, IPOctetOutOfRangeException, IPCidrBlockOutOfRangeException {
IPv4ToolSet.ipv4BlockToRange("123.234.122.111/-1");
}
@Test(expected = IPCidrBlockOutOfRangeException.class)
public void shouldThrowCidrBlockOutofRangeWhenMoreThenSlash32() throws IPStringConversionException, IPOctetOutOfRangeException, IPCidrBlockOutOfRangeException {
IPv4ToolSet.ipv4BlockToRange("123.111.222.111/33");
}
@Test(expected = IPOctetOutOfRangeException.class)
public void shouldThrowAnOctetOutOfRangeWhenOctetOutOfRange() throws IPStringConversionException, IPOctetOutOfRangeException, IPCidrBlockOutOfRangeException {
IPv4ToolSet.ipv4BlockToRange("123.234.122.311/32");
}
@Test
public void shouldGet768IpsWhenConverting3ValidClassCNets() throws IPBlocksOverLapException, IPStringConversionException, IPOctetOutOfRangeException, IPCidrBlockOutOfRangeException {
List<String> blocks = new ArrayList<String>();
List<String> ipAddresses = new ArrayList<String>();
blocks.add("127.0.0.0/24");
blocks.add("127.0.1.0/24");
blocks.add("127.0.2.0/24");
ipAddresses = IPv4ToolSet.ipv4BlocksToIpStrings(blocks);
assertEquals(768, ipAddresses.size());
}
@Test
public void shouldValidate() {
assertTrue(IPv4ToolSet.isValid("192.168.3.51"));
assertTrue(IPv4ToolSet.isValid("127.0.0.1"));
assertTrue(IPv4ToolSet.isValid("10.0.0.1"));
assertTrue(IPv4ToolSet.isValid("172.17.10.255"));
}
@Test
public void shouldReject() {
assertFalse(IPv4ToolSet.isValid("www.google.com"));
assertFalse(IPv4ToolSet.isValid(null));
assertFalse(IPv4ToolSet.isValid("888.888.888.888"));
assertFalse(IPv4ToolSet.isValid(""));
assertFalse(IPv4ToolSet.isValid("...222"));
assertFalse(IPv4ToolSet.isValid("-1.-1.-1.-1"));
}
}