package org.openstack.atlas.util.ip;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.openstack.atlas.util.ip.exception.IPException;
import org.openstack.atlas.util.ip.exception.IPStringConversionException;
import org.junit.Before;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;
public class IPv6CidrsTest {
public IPv6CidrsTest() {
}
@Before
public void setUp() {
}
@Test
public void ShouldMapAddresses() throws IPException {
IPv6Cidrs ipv6Cidrs = new IPv6Cidrs();
ipv6Cidrs.getCidrs().add(new IPv6Cidr("2001:07FA:0001::/48"));
assertTrue(ipv6Cidrs.contains("2001:07fa:0001:0000:0000:0000:0000:0000"));
assertTrue(ipv6Cidrs.contains("2001:07fa:0001:ffff:ffff:ffff:ffff:ffff"));
assertFalse(ipv6Cidrs.contains("2001:07fa:0002:0000:0000:0000:0000:0000")); // Except for this one
}
@Test
public void shouldBeContainedIn() throws IPStringConversionException {
IPv6Cidrs ipv6Cidrs = new IPv6Cidrs();
ipv6Cidrs.getCidrs().add(new IPv6Cidr("2001:aaaa::/32"));
ipv6Cidrs.getCidrs().add(new IPv6Cidr("2001:aaaa:aaaa::/48"));
ipv6Cidrs.getCidrs().add(new IPv6Cidr("2001:aaaa:bbbb::/48"));
List<String> cidrList;
Set<String> cidrSet;
cidrList = ipv6Cidrs.getCidrsContainingIp("2001:aaaa:aaaa:aaaa::");
cidrSet = new HashSet();
cidrSet.addAll(cidrList);
assertTrue(cidrSet.contains("2001:aaaa::/32"));
assertTrue(cidrSet.contains("2001:aaaa:aaaa::/48"));
assertFalse(cidrSet.contains("2001:aaaa:bbbb::/48"));
cidrList = ipv6Cidrs.getCidrsContainingIp("2001:aaaa:dddd:dddd::");
cidrSet = new HashSet();
cidrSet.addAll(cidrList);
assertTrue(cidrSet.contains("2001:aaaa::/32"));
assertFalse(cidrSet.contains("2001:aaaa:aaaa::/48"));
assertFalse(cidrSet.contains("2001:aaaa:bbbb::/48"));
cidrList = ipv6Cidrs.getCidrsContainingIp("2001:aaaa:bbbb:eeee::");
cidrSet = new HashSet();
cidrSet.addAll(cidrList);
assertTrue(cidrSet.contains("2001:aaaa::/32"));
assertFalse(cidrSet.contains("2001:aaaa:aaaa::/48"));
assertTrue(cidrSet.contains("2001:aaaa:bbbb::/48"));
}
}