package org.openstack.atlas.util.ip;
import java.util.HashSet;
import java.util.Set;
import org.openstack.atlas.util.ip.exception.IPException;
import org.openstack.atlas.util.ip.exception.IPStringConversionException;
import java.util.List;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;
public class IPv4CidrsTest {
private String[] expectedAddresses;
private String[] unexpectedAddresses;
private IPv4Cidrs ipv4Cidrs;
public IPv4CidrsTest() {
}
@Before
public void setUp() throws IPStringConversionException {
ipv4Cidrs = new IPv4Cidrs();
ipv4Cidrs.getCidrs().add(new IPv4Cidr("192.168.0.0/16"));
ipv4Cidrs.getCidrs().add(new IPv4Cidr("10.0.0.0/8"));
ipv4Cidrs.getCidrs().add(new IPv4Cidr("172.16.0.0/12"));
expectedAddresses = new String[]{"10.0.0.0", "192.168.3.51",
"172.16.0.1", "172.17.1.1", "192.168.1.254", "10.1.2.3"};
unexpectedAddresses = new String[]{"1.2.3.4", "12.13.14.15", "172.15.23.42"};
}
@Test
public void shouldBeContainedIn() {
Set<String> cidrSet;
List<String> cidrList = ipv4Cidrs.getCidrsContainingIp("192.168.3.52");
cidrSet = new HashSet();
cidrSet.addAll(cidrList);
assertTrue(cidrSet.contains("192.168.0.0/16"));
assertFalse(cidrSet.contains("10.0.0.0/8"));
assertFalse(cidrSet.contains("172.16.0.0/12"));
}
@Test
public void shouldContainAddress() throws IPException {
for (String ip : expectedAddresses) {
assertTrue(ipv4Cidrs.contains(ip));
}
}
@Test
public void shouldNotContainAddress() throws IPException{
for(String ip : unexpectedAddresses) {
assertFalse(ipv4Cidrs.contains(ip));
}
}
}