2 * Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.lispflowmapping.lisp.util;
11 import static org.junit.Assert.assertArrayEquals;
12 import static org.junit.Assert.assertEquals;
13 import static org.junit.Assert.assertFalse;
14 import static org.junit.Assert.assertNotNull;
15 import static org.junit.Assert.assertNull;
16 import static org.junit.Assert.assertTrue;
18 import com.google.common.net.InetAddresses;
19 import java.net.Inet4Address;
20 import java.net.Inet6Address;
21 import java.net.InetAddress;
22 import java.net.UnknownHostException;
23 import java.util.Arrays;
24 import java.util.List;
25 import org.junit.Test;
26 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.AsNumber;
27 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
28 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix;
29 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
30 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix;
31 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Address;
32 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Prefix;
33 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.AsNumberAfi;
34 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.DistinguishedNameAfi;
35 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.DistinguishedNameType;
36 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.ExplicitLocatorPathLcaf;
37 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.InstanceIdType;
38 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.Ipv4Afi;
39 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.Ipv4PrefixAfi;
40 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.Ipv6Afi;
41 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.Ipv6PrefixAfi;
42 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.KeyValueAddressLcaf;
43 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.LispAddress;
44 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.LispAddressFamily;
45 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.MacAfi;
46 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.NoAddressAfi;
47 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.ServicePathIdType;
48 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.ServicePathLcaf;
49 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.SimpleAddress;
50 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.SourceDestKeyLcaf;
51 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.Address;
52 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.DistinguishedName;
53 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.ExplicitLocatorPath;
54 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.Ipv4;
55 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.Ipv4Builder;
56 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.Ipv4PrefixBuilder;
57 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.Ipv6;
58 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.Ipv6Builder;
59 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.Ipv6PrefixBuilder;
60 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.KeyValueAddress;
61 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.Mac;
62 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.MacBuilder;
63 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.NoAddress;
64 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.explicit.locator.path.explicit.locator.path.Hop;
65 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.service.path.ServicePath;
66 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.source.dest.key.SourceDestKey;
67 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.source.dest.key.SourceDestKeyBuilder;
68 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress;
69 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.inet.binary.types.rev160303.Ipv4AddressBinary;
70 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.inet.binary.types.rev160303.Ipv6AddressBinary;
71 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.binary.address.types.rev160504.Ipv4BinaryAfi;
72 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.binary.address.types.rev160504.Ipv4PrefixBinaryAfi;
73 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.binary.address.types.rev160504.Ipv6BinaryAfi;
74 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.binary.address.types.rev160504.Ipv6PrefixBinaryAfi;
75 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.binary.address.types.rev160504.augmented.lisp.address.address.Ipv4Binary;
76 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.binary.address.types.rev160504.augmented.lisp.address.address.Ipv4BinaryBuilder;
77 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.binary.address.types.rev160504.augmented.lisp.address.address.Ipv4PrefixBinary;
78 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.binary.address.types.rev160504.augmented.lisp.address.address.Ipv4PrefixBinaryBuilder;
79 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.binary.address.types.rev160504.augmented.lisp.address.address.Ipv6Binary;
80 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.binary.address.types.rev160504.augmented.lisp.address.address.Ipv6BinaryBuilder;
81 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.binary.address.types.rev160504.augmented.lisp.address.address.Ipv6PrefixBinary;
82 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.binary.address.types.rev160504.augmented.lisp.address.address.Ipv6PrefixBinaryBuilder;
83 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.container.Eid;
84 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.container.EidBuilder;
85 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.locatorrecords.LocatorRecord;
86 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.rloc.container.Rloc;
87 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.rloc.container.RlocBuilder;
89 public class LispAddressUtilTest {
91 private static final char[] DUMMY_CHARACTER_ARRAY_TEST = new char[]{'a', 'b', 'c', 'd'};
92 private static final Long NUMBER_TEST = 5L;
94 private static final byte[] IPV4_ADDRESS_BYTES_A_TEST = new byte[]{(byte) 192, (byte) 168, 1, 1};
95 private static final byte[] IPV4_ADDRESS_BYTES_B_TEST = new byte[]{(byte) 192, (byte) 168, 1, 2};
97 private static final short MASK_OK_TEST = 30;
98 private static final short MASK_OK_DEFAULT_IPV4_TEST = 32;
99 private static final short MASK_OK_DEFAULT_IPV6_TEST = 128;
101 private static final Long AS_NUMBER_TEST = 100L;
102 private static final Long INSTANCE_ID_TYPE_VALUE_TEST = 121L;
103 private static final Short INSTANCE_ID_TYPE_VALUE_SHORT_TEST = 122;
104 private static final InstanceIdType INSTANCE_ID_TYPE_TEST = new InstanceIdType(INSTANCE_ID_TYPE_VALUE_TEST);
105 private static final String INCORRECT_IP_ADDRESS_TEST = "incorrect ip address";
107 private static final String MAC_ADDRESS_VALUE_TEST = "aa:bb:cc:dd:ee:ff";
108 private static final MacAddress MAC_ADDRESS_TEST = new MacAddress(MAC_ADDRESS_VALUE_TEST);
109 private static final Mac MAC = new MacBuilder().setMac(MAC_ADDRESS_TEST).build();
110 private static final Eid MAC_ADDRESS_EID = new EidBuilder()
112 .setAddressType(MacAfi.class)
113 .setVirtualNetworkId(INSTANCE_ID_TYPE_TEST).build();
115 private static final String IPV4_ADDRESS_VALUE_TEST = "192.168.1.1";
116 private static final String IPV4_ADDRESS_PREFIX_VALUE_TEST = IPV4_ADDRESS_VALUE_TEST + "/" + MASK_OK_TEST;
117 private static final Ipv4Address IPV4_ADDRESS_TEST = new Ipv4Address(IPV4_ADDRESS_VALUE_TEST);
118 private static final Ipv4 IPV4 = new Ipv4Builder().setIpv4(IPV4_ADDRESS_TEST).build();
119 private static final Ipv4AddressBinary IPV4_ADDRESS_BINARY_TEST = new Ipv4AddressBinary(IPV4_ADDRESS_BYTES_A_TEST);
120 private static final Ipv4Binary IPV4_BINARY = new Ipv4BinaryBuilder()
121 .setIpv4Binary(IPV4_ADDRESS_BINARY_TEST).build();
122 private static final IpAddress IP_ADDRESS_IPV4_TEST = new IpAddress(IPV4_ADDRESS_TEST);
123 private static final Ipv4Prefix IPV4_ADDRESS_PREFIX_TEST = new Ipv4Prefix(IPV4_ADDRESS_PREFIX_VALUE_TEST);
124 private static final Ipv4PrefixBinary IPV4_ADDRESS_PREFIX_BINARY = new Ipv4PrefixBinaryBuilder()
125 .setIpv4AddressBinary(new Ipv4AddressBinary(IPV4_ADDRESS_BYTES_A_TEST))
126 .setIpv4MaskLength(MASK_OK_TEST).build();
127 private static final IpPrefix IP_ADDRESS_PREFIX_WITH_IPV4_TEST = new IpPrefix(IPV4_ADDRESS_PREFIX_TEST);
128 private static final org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp
129 .address.address.Ipv4Prefix IPV4_PREFIX = new Ipv4PrefixBuilder()
130 .setIpv4Prefix(IPV4_ADDRESS_PREFIX_TEST).build();
131 private static final Eid IPV4_ADDRESS_PREFIX_BINARY_EID = new EidBuilder()
132 .setAddress(IPV4_ADDRESS_PREFIX_BINARY)
133 .setAddressType(Ipv4PrefixBinaryAfi.class)
134 .setVirtualNetworkId(INSTANCE_ID_TYPE_TEST).build();
135 private static final Eid IPV4_ADDRESS_BINARY_EID = new EidBuilder()
136 .setAddress(IPV4_BINARY)
137 .setAddressType(Ipv4BinaryAfi.class)
138 .setVirtualNetworkId(INSTANCE_ID_TYPE_TEST).build();
139 private static final Rloc IPV4_RLOC = new RlocBuilder()
141 .setAddressType(Ipv4Afi.class).build();
142 private static final Rloc IPV4_BINARY_RLOC = new RlocBuilder()
143 .setAddress(IPV4_BINARY)
144 .setAddressType(Ipv4BinaryAfi.class).build();
146 private static final byte[] IPV6_ADDRESS_BYTES_A_TEST = new byte[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
148 private static final byte[] IPV6_ADDRESS_BYTES_B_TEST = new byte[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
150 private static final String IPV6_ADDRESS_VALUE_TEST = "102:304:506:708:90a:b0c:d0e:f10";
151 private static final String IPV6_ADDRESS_PREFIX_VALUE_TEST = IPV6_ADDRESS_VALUE_TEST + "/" + MASK_OK_TEST;
152 private static final Ipv6Prefix IPV6_ADDRESS_PREFIX_TEST = new Ipv6Prefix(IPV6_ADDRESS_PREFIX_VALUE_TEST);
153 private static final Ipv6Address IPV6_ADDRESS_TEST = new Ipv6Address(IPV6_ADDRESS_VALUE_TEST);
154 private static final Ipv6 IPV6 = new Ipv6Builder().setIpv6(IPV6_ADDRESS_TEST).build();
155 private static final Ipv6AddressBinary IPV6_ADDRESS_BINARY_TEST = new Ipv6AddressBinary(IPV6_ADDRESS_BYTES_A_TEST);
156 private static final Ipv6Binary IPV6_BINARY = new Ipv6BinaryBuilder()
157 .setIpv6Binary(IPV6_ADDRESS_BINARY_TEST).build();
158 private static final IpPrefix IP_ADDRESS_PREFIX_WITH_IPV6_TEST = new IpPrefix(IPV6_ADDRESS_PREFIX_TEST);
159 private static final org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp
160 .address.address.Ipv6Prefix IPV6_PREFIX = new Ipv6PrefixBuilder()
161 .setIpv6Prefix(IPV6_ADDRESS_PREFIX_TEST).build();
162 private static final IpAddress IP_ADDRESS_IPV6_TEST = new IpAddress(IPV6_ADDRESS_TEST);
163 private static final Ipv6PrefixBinary IPV6_ADDRESS_PREFIX_BINARY = new Ipv6PrefixBinaryBuilder()
164 .setIpv6AddressBinary(new Ipv6AddressBinary(IPV6_ADDRESS_BYTES_A_TEST))
165 .setIpv6MaskLength(MASK_OK_TEST).build();
166 private static final Eid IPV6_ADDRESS_PREFIX_BINARY_EID = new EidBuilder()
167 .setAddress(IPV6_ADDRESS_PREFIX_BINARY)
168 .setAddressType(Ipv6PrefixBinaryAfi.class)
169 .setVirtualNetworkId(INSTANCE_ID_TYPE_TEST).build();
170 private static final Eid IPV6_ADDRESS_BINARY_EID = new EidBuilder()
171 .setAddress(IPV6_BINARY)
172 .setAddressType(Ipv6BinaryAfi.class)
173 .setVirtualNetworkId(INSTANCE_ID_TYPE_TEST).build();
175 private static final Short SERVICE_INDEX_TEST = 45;
176 private static final Long DUMMY_SERVICE_PATH_ID_TYPE = 46L;
177 private static final String DISTINGUISHED_NAME_TYPE_VALUE_TEST = "dummy distinguished name type";
178 private static final String DISTINGUISHED_NAME_TYPE_VALUE_WITH_MAC_TEST = MAC_ADDRESS_VALUE_TEST;
179 private static final DistinguishedNameType DISTINGUISHED_NAME_TYPE_TEST = new DistinguishedNameType(
180 DISTINGUISHED_NAME_TYPE_VALUE_TEST);
182 private static final SimpleAddress SIMPLE_ADDRESS_IPV4_TEST = new SimpleAddress(IP_ADDRESS_IPV4_TEST);
183 private static final SimpleAddress SIMPLE_ADDRESS_IPV6_TEST = new SimpleAddress(IP_ADDRESS_IPV6_TEST);
184 private static final SimpleAddress SIMPLE_ADDRESS_MAC_TEST = new SimpleAddress(MAC_ADDRESS_TEST);
185 private static final SimpleAddress SIMPLE_ADDRESS_DISTINGUISHED_TEST =
186 new SimpleAddress(DISTINGUISHED_NAME_TYPE_TEST);
187 private static final SimpleAddress SIMPLE_ADDRESS_IPV4_PREFIX_TEST = new SimpleAddress(
188 IP_ADDRESS_PREFIX_WITH_IPV4_TEST);
189 private static final SimpleAddress SIMPLE_ADDRESS_IPV6_PREFIX_TEST = new SimpleAddress(
190 IP_ADDRESS_PREFIX_WITH_IPV6_TEST);
191 private static final Long SERVICE_PATH_ID_TEST = 2121L;
194 * Tests {@link LispAddressUtil#addressTypeFromSimpleAddress} and {@link
195 * LispAddressUtil#addressFromSimpleAddress} methods
199 public void addressFromSimpleAddressTest_asAnyIpAddress() {
200 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromSimpleAddress(
201 SIMPLE_ADDRESS_IPV4_TEST);
202 assertEquals(Ipv4BinaryAfi.class, addressClass);
204 final Address address = LispAddressUtil.addressFromSimpleAddress(SIMPLE_ADDRESS_IPV4_TEST);
205 assertTrue(address instanceof Ipv4Binary);
209 * Tests {@link LispAddressUtil#addressTypeFromSimpleAddress} and {@link
210 * LispAddressUtil#addressFromSimpleAddress} methods
214 public void addressFromSimpleAddressTest_asIpPrefix() {
215 final SimpleAddress simpleAddress = new SimpleAddress(new IpPrefix(new Ipv4Prefix(
216 IPV4_ADDRESS_PREFIX_VALUE_TEST)));
217 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromSimpleAddress(
219 assertEquals(Ipv4PrefixAfi.class, addressClass);
221 final Address address = LispAddressUtil.addressFromSimpleAddress(simpleAddress);
222 assertTrue(address instanceof org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address
223 .types.rev151105.lisp.address.address.Ipv4Prefix);
227 * Tests {@link LispAddressUtil#addressTypeFromSimpleAddress} and {@link
228 * LispAddressUtil#addressFromSimpleAddress} methods
232 public void addressFromSimpleAddressTest_asMacAddress() {
233 final SimpleAddress simpleAddress = new SimpleAddress(new MacAddress(MAC_ADDRESS_VALUE_TEST));
234 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromSimpleAddress(
236 assertEquals(MacAfi.class, addressClass);
238 final Address address = LispAddressUtil.addressFromSimpleAddress(simpleAddress);
239 assertTrue(address instanceof Mac);
243 * Tests {@link LispAddressUtil#addressTypeFromSimpleAddress} and {@link
244 * LispAddressUtil#addressFromSimpleAddress} methods
245 * with general address.
248 public void addressFromSimpleAddressTest_asAddress() {
249 final SimpleAddress simpleAddress = new SimpleAddress(DUMMY_CHARACTER_ARRAY_TEST);
250 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromSimpleAddress(
252 assertEquals(DistinguishedNameAfi.class, addressClass);
254 final Address address = LispAddressUtil.addressFromSimpleAddress(simpleAddress);
255 assertTrue(address instanceof DistinguishedName);
259 * Tests {@link LispAddressUtil#addressTypeFromSimpleAddress} and {@link
260 * LispAddressUtil#addressFromSimpleAddress} methods
261 * with address as number.
264 public void addressFromSimpleAddressTest_asNumber() {
265 final SimpleAddress simpleAddress = new SimpleAddress(new AsNumber(NUMBER_TEST));
266 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromSimpleAddress(
268 assertEquals(AsNumberAfi.class, addressClass);
270 final Address address = LispAddressUtil.addressFromSimpleAddress(simpleAddress);
271 assertTrue(address instanceof org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address
272 .types.rev151105.lisp.address.address.AsNumber);
276 * Tests {@link LispAddressUtil#addressFromInet(InetAddress)} and {@link LispAddressUtil#addressTypeFromInet
278 * methods with ipv4 address.
281 public void addressFromInet_ipv4() throws UnknownHostException {
282 final InetAddress ipv4InetAddress = Inet4Address.getByAddress(IPV4_ADDRESS_BYTES_A_TEST);
283 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromInet(ipv4InetAddress);
284 assertEquals(Ipv4Afi.class, addressClass);
286 final Address address = LispAddressUtil.addressFromInet(ipv4InetAddress);
287 assertTrue(address instanceof Ipv4);
288 assertEquals(IPV4_ADDRESS_VALUE_TEST, ((Ipv4) address).getIpv4().getValue());
292 * Tests {@link LispAddressUtil#addressFromInet(InetAddress)} and {@link LispAddressUtil#addressTypeFromInet
294 * methods with ipv6 address.
297 public void addressFromInet_ipv6() throws UnknownHostException {
298 final InetAddress ipv6InetAddress = Inet6Address.getByAddress(IPV6_ADDRESS_BYTES_A_TEST);
299 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromInet(ipv6InetAddress);
300 assertEquals(Ipv6Afi.class, addressClass);
302 final Address address = LispAddressUtil.addressFromInet(ipv6InetAddress);
303 assertTrue(address instanceof Ipv6);
304 assertEquals(IPV6_ADDRESS_VALUE_TEST, ((Ipv6) address).getIpv6().getValue());
308 * Tests {@link LispAddressUtil#binaryAddressFromInet(InetAddress)} and
309 * {@link LispAddressUtil#binaryAddressTypeFromInet(InetAddress)} methods with ipv4 address.
312 public void binaryAddressFromInet_ipv4() throws UnknownHostException {
313 final InetAddress ipv4InetAddress = Inet4Address.getByAddress(IPV4_ADDRESS_BYTES_A_TEST);
314 Class<? extends LispAddressFamily> addressClass = LispAddressUtil.binaryAddressTypeFromInet(ipv4InetAddress);
315 assertEquals(Ipv4BinaryAfi.class, addressClass);
317 final Address address = LispAddressUtil.binaryAddressFromInet(ipv4InetAddress);
318 assertTrue(address instanceof Ipv4Binary);
319 assertArrayEquals(IPV4_ADDRESS_BYTES_A_TEST, ((Ipv4Binary) address).getIpv4Binary().getValue());
323 * Tests {@link LispAddressUtil#binaryAddressFromInet(InetAddress)} and
324 * {@link LispAddressUtil#binaryAddressTypeFromInet(InetAddress)} methods with ipv6 address.
327 public void binaryAddressFromInet_ipv6() throws UnknownHostException {
328 final InetAddress ipv6InetAddress = Inet6Address.getByAddress(IPV6_ADDRESS_BYTES_A_TEST);
329 Class<? extends LispAddressFamily> addressClass = LispAddressUtil.binaryAddressTypeFromInet(ipv6InetAddress);
330 assertEquals(Ipv6BinaryAfi.class, addressClass);
332 final Address address = LispAddressUtil.binaryAddressFromInet(ipv6InetAddress);
333 assertTrue(address instanceof Ipv6Binary);
334 assertArrayEquals(IPV6_ADDRESS_BYTES_A_TEST, ((Ipv6Binary) address).getIpv6Binary().getValue());
338 * Tests {@link LispAddressUtil#addressFromIpAddress(IpAddress)} and {@link
339 * LispAddressUtil#addressTypeFromIpAddress(IpAddress)}
340 * methods with ipv4 address.
343 public void addressFromIpAddress_ipv4() {
344 final IpAddress ipv4Address = new IpAddress(IPV4_ADDRESS_TEST);
345 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromIpAddress(ipv4Address);
346 assertEquals(Ipv4Afi.class, addressClass);
348 final Address address = LispAddressUtil.addressFromIpAddress(ipv4Address);
349 assertTrue(address instanceof Ipv4);
350 assertEquals(IPV4_ADDRESS_VALUE_TEST, ((Ipv4) address).getIpv4().getValue());
354 * Tests {@link LispAddressUtil#addressFromIpAddress(IpAddress)} and {@link
355 * LispAddressUtil#addressTypeFromIpAddress(IpAddress)}
356 * methods with ipv6 address.
359 public void addressFromIpAddress_ipv6() {
360 final IpAddress ipv6Address = new IpAddress(new Ipv6Address(IPV6_ADDRESS_VALUE_TEST));
361 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromIpAddress(ipv6Address);
362 assertEquals(Ipv6Afi.class, addressClass);
364 final Address address = LispAddressUtil.addressFromIpAddress(ipv6Address);
365 assertTrue(address instanceof Ipv6);
366 assertEquals(IPV6_ADDRESS_VALUE_TEST, ((Ipv6) address).getIpv6().getValue());
370 * Tests {@link LispAddressUtil#addressFromIpAddress(IpAddress)} and {@link
371 * LispAddressUtil#addressTypeFromIpAddress(IpAddress)}
372 * methods with null value instead off address.
375 public void addressFromIpAddress_null() {
376 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromIpAddress(null);
377 assertNull(addressClass);
379 final Address address = LispAddressUtil.addressFromIpAddress(null);
384 * Tests {@link LispAddressUtil#binaryAddressFromIpAddress(IpAddress)} and {@link
385 * LispAddressUtil#binaryAddressTypeFromIpAddress(IpAddress)}
386 * methods with Ipv4Binary address.
389 public void binaryAddressFromIpAddress_Ipv4Binary() {
390 final IpAddress ipv4Address = new IpAddress(new Ipv4Address(IPV4_ADDRESS_VALUE_TEST));
391 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil
392 .binaryAddressTypeFromIpAddress(ipv4Address);
393 assertEquals(Ipv4BinaryAfi.class, addressClass);
395 final Address address = LispAddressUtil.binaryAddressFromIpAddress(ipv4Address);
396 assertEquals(IPV4_BINARY, address);
400 * Tests {@link LispAddressUtil#binaryAddressFromIpAddress(IpAddress)} and {@link
401 * LispAddressUtil#binaryAddressTypeFromIpAddress(IpAddress)}
402 * methods with Ipv6Binary address.
405 public void binaryAddressFromIpAddress_Ipv6Binary() {
406 final IpAddress ipv6Address = new IpAddress(new Ipv6Address(IPV6_ADDRESS_VALUE_TEST));
407 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil
408 .binaryAddressTypeFromIpAddress(ipv6Address);
409 assertEquals(Ipv6BinaryAfi.class, addressClass);
411 final Address address = LispAddressUtil.binaryAddressFromIpAddress(ipv6Address);
412 assertEquals(IPV6_BINARY, address);
416 * Tests {@link LispAddressUtil#binaryAddressFromIpAddress(IpAddress)} and {@link
417 * LispAddressUtil#binaryAddressTypeFromIpAddress(IpAddress)}
418 * methods with Ipv6Binary address.
421 public void binaryAddressFromIpAddress_null() {
422 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.binaryAddressTypeFromIpAddress(null);
423 assertNull(addressClass);
425 final Address address = LispAddressUtil.binaryAddressFromIpAddress(null);
430 * Tests {@link LispAddressUtil#addressFromIpPrefix(IpPrefix)} and {@link
431 * LispAddressUtil#addressTypeFromIpPrefix(IpPrefix)}
432 * methods with ipv4 address.
435 public void addressFromIpPrefix_ipv4() {
436 IpPrefix ipv4Prefix = new IpPrefix(new Ipv4Prefix(IPV4_ADDRESS_PREFIX_VALUE_TEST));
437 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromIpPrefix(ipv4Prefix);
438 assertEquals(Ipv4PrefixAfi.class, addressClass);
440 final Address address = LispAddressUtil.addressFromIpPrefix(ipv4Prefix);
441 assertTrue(address instanceof org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address
442 .types.rev151105.lisp.address.address.Ipv4Prefix);
443 assertEquals(IPV4_ADDRESS_PREFIX_VALUE_TEST, ((org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf
444 .lisp.address.types.rev151105.lisp.address.address.Ipv4Prefix) address).getIpv4Prefix().getValue());
448 * Tests {@link LispAddressUtil#addressFromIpPrefix(IpPrefix)} and {@link
449 * LispAddressUtil#addressTypeFromIpPrefix(IpPrefix)}
450 * methods with ipv6 address.
453 public void addressFromIpPrefix_ipv6() {
454 IpPrefix ipv6Address = new IpPrefix(new Ipv6Prefix(IPV6_ADDRESS_PREFIX_VALUE_TEST));
455 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromIpPrefix(ipv6Address);
456 assertEquals(Ipv6PrefixAfi.class, addressClass);
458 final Address address = LispAddressUtil.addressFromIpPrefix(ipv6Address);
459 assertTrue(address instanceof org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address
460 .types.rev151105.lisp.address.address.Ipv6Prefix);
461 assertEquals(IPV6_ADDRESS_PREFIX_VALUE_TEST,
462 ((org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp
463 .address.address.Ipv6Prefix) address).getIpv6Prefix().getValue());
467 * Tests {@link LispAddressUtil#addressFromIpPrefix(IpPrefix)} and {@link LispAddressUtil#addressTypeFromIpPrefix
469 * methods with null value instead off address.
472 public void addressFromIpPrefix_null() {
473 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromIpPrefix(null);
474 assertNull(addressClass);
476 final Address address = LispAddressUtil.addressFromIpPrefix(null);
481 * Tests {@link LispAddressUtil#addressFromMacAddress(MacAddress)} methods with mac address.
484 public void addressFromMacAddress_mac() {
485 final Address address = LispAddressUtil.addressFromMacAddress(new MacAddress(MAC_ADDRESS_VALUE_TEST));
486 assertTrue(address instanceof Mac);
487 assertEquals(MAC_ADDRESS_VALUE_TEST, ((Mac) address).getMac().getValue());
491 * Tests {@link LispAddressUtil#addressFromMacAddress(MacAddress)} methods with null instead of address.
494 public void addressFromMacAddress_null() {
495 final Address address = LispAddressUtil.addressFromMacAddress(null);
501 * Test {@link LispAddressUtil#addressFromServicePath(ServicePath)} method with concrete servicePath.
504 public void addressFromServicePathTest_withServicePath() {
505 org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address
506 .address.service.path.ServicePathBuilder servicePathBuilder = new org.opendaylight.yang.gen.v1.urn.ietf
507 .params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address
508 .address.service.path.ServicePathBuilder();
509 servicePathBuilder.setServiceIndex(SERVICE_INDEX_TEST);
510 servicePathBuilder.setServicePathId(new ServicePathIdType(DUMMY_SERVICE_PATH_ID_TYPE));
512 ServicePath expectedAddress = servicePathBuilder.build();
513 final Address testedAddress = LispAddressUtil.addressFromServicePath(expectedAddress);
514 assertTrue(testedAddress instanceof org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address
515 .types.rev151105.lisp.address.address.ServicePath);
516 assertEquals(expectedAddress, ((org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address
517 .types.rev151105.lisp.address.address.ServicePath) testedAddress).getServicePath());
521 * Test {@link LispAddressUtil#addressFromServicePath(ServicePath)} method with null value.
524 public void addressFromServicePathTest_withNull() {
525 final Address testedAddress = LispAddressUtil.addressFromServicePath(null);
526 assertNull(testedAddress);
530 * Test {@link LispAddressUtil#addressFromDistinguishedName(DistinguishedNameType)} method with distinguished name.
533 public void addressFromDistinguishedNameTest_withDistinguishedName() {
534 final DistinguishedNameType distinguishedNameType = new DistinguishedNameType(
535 DISTINGUISHED_NAME_TYPE_VALUE_TEST);
536 final Address testedAddress = LispAddressUtil.addressFromDistinguishedName(distinguishedNameType);
538 assertTrue(testedAddress instanceof DistinguishedName);
539 assertEquals(distinguishedNameType, ((DistinguishedName) testedAddress).getDistinguishedName());
543 * Test {@link LispAddressUtil#addressFromDistinguishedName(DistinguishedNameType)} method with null value.
546 public void addressFromDistinguishedNameTest_withNull() {
547 final Address testedAddress = LispAddressUtil.addressFromDistinguishedName(null);
548 assertNull(testedAddress);
552 * Test {@link LispAddressUtil#addressFromAsNumber(AsNumber)} method with as number value.
555 public void addressFromAsNumberTest_withAdNumber() {
556 final AsNumber expectedAddress = new AsNumber(AS_NUMBER_TEST);
557 final Address testedAddress = LispAddressUtil.addressFromAsNumber(expectedAddress);
558 assertTrue(testedAddress instanceof org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp
559 .address.types.rev151105.lisp.address.address.AsNumber);
560 assertEquals(expectedAddress, ((org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp
561 .address.types.rev151105.lisp.address.address.AsNumber) testedAddress).getAsNumber());
565 * Test {@link LispAddressUtil#addressFromAsNumber(AsNumber)} method with null instead of value.
568 public void addressFromAsNumberTest_withNull() {
569 final Address testedAddress = LispAddressUtil.addressFromAsNumber(null);
570 assertNull(testedAddress);
576 * - {@link LispAddressUtil#toRloc(InetAddress)}
577 * - {@link LispAddressUtil#toRloc(Ipv4Address)}
578 * - {@link LispAddressUtil#toRloc(Ipv6Address)}
579 * - {@link LispAddressUtil#toRloc(SimpleAddress)}
583 public void toRloc() throws UnknownHostException {
584 InetAddress ipv4AddressInet = Inet4Address.getByAddress(IPV4_ADDRESS_BYTES_A_TEST);
585 final Rloc rlocFromInetAddress = LispAddressUtil.toRloc(ipv4AddressInet);
586 assertEquals(Ipv4BinaryAfi.class, rlocFromInetAddress.getAddressType());
587 assertEquals(IPV4_ADDRESS_BINARY_TEST, ((Ipv4Binary) rlocFromInetAddress.getAddress()).getIpv4Binary());
589 final Rloc rlocFromIpv4Address = LispAddressUtil.toRloc(IPV4_ADDRESS_TEST);
590 assertEquals(Ipv4Afi.class, rlocFromIpv4Address.getAddressType());
591 assertEquals(IPV4_ADDRESS_VALUE_TEST, ((Ipv4) rlocFromIpv4Address.getAddress()).getIpv4().getValue());
594 final Rloc rlocFromIpv6Address = LispAddressUtil.toRloc(IPV6_ADDRESS_TEST);
595 assertEquals(Ipv6Afi.class, rlocFromIpv6Address.getAddressType());
596 assertEquals(IPV6_ADDRESS_VALUE_TEST, ((Ipv6) rlocFromIpv6Address.getAddress()).getIpv6().getValue());
598 final Rloc rlocFromSimpleAddress = LispAddressUtil.toRloc(SIMPLE_ADDRESS_IPV4_TEST);
599 assertEquals(Ipv4BinaryAfi.class, rlocFromSimpleAddress.getAddressType());
600 assertEquals(IPV4_ADDRESS_BINARY_TEST, ((Ipv4Binary) rlocFromSimpleAddress.getAddress()).getIpv4Binary());
604 * Test {@link LispAddressUtil#asIpv4Rloc(String)} method with ipv4 or ipv6.
605 * Test {@link LispAddressUtil#asIpv6Rloc(String)} method with ipv4 or ipv6.
608 public void asIpvRloc() {
609 final Rloc rlocFromIpV4 = LispAddressUtil.asIpv4Rloc(IPV4_ADDRESS_VALUE_TEST);
610 assertEquals(Ipv4BinaryAfi.class, rlocFromIpV4.getAddressType());
611 assertEquals(IPV4_ADDRESS_BINARY_TEST, ((Ipv4Binary) rlocFromIpV4.getAddress()).getIpv4Binary());
613 final Rloc rlocFromIpV6 = LispAddressUtil.asIpv6Rloc(IPV6_ADDRESS_VALUE_TEST);
614 assertEquals(Ipv6BinaryAfi.class, rlocFromIpV6.getAddressType());
615 assertEquals(IPV6_ADDRESS_BINARY_TEST, ((Ipv6Binary) rlocFromIpV6.getAddress()).getIpv6Binary());
620 * - {@link LispAddressUtil#toEid(Ipv6Address, InstanceIdType)}
621 * - {@link LispAddressUtil#asIpv6PrefixEid(String)}
622 * - {@link LispAddressUtil#asIpv6PrefixEid(Eid, Inet6Address, short)}
623 * - {@link LispAddressUtil#asIpv6PrefixEid(Ipv6Address, InstanceIdType)}
627 public void toEid_ipv6Prefix() throws UnknownHostException {
628 final Inet6Address inet6Address = (Inet6Address) Inet6Address.getByName(IPV6_ADDRESS_VALUE_TEST);
630 Eid eidFromIpv6Prefix = LispAddressUtil.toEid(IPV6_ADDRESS_PREFIX_TEST, INSTANCE_ID_TYPE_TEST);
631 verifyToEidWithIpv6Prefix(eidFromIpv6Prefix, true, MASK_OK_TEST, Ipv6PrefixAfi.class);
633 eidFromIpv6Prefix = LispAddressUtil.asIpv6PrefixEid(IPV6_ADDRESS_PREFIX_VALUE_TEST);
634 verifyToEidWithIpv6Prefix(eidFromIpv6Prefix, false, MASK_OK_TEST, Ipv6PrefixAfi.class);
636 eidFromIpv6Prefix = LispAddressUtil.asIpv6PrefixEid(IPV6_ADDRESS_PREFIX_BINARY_EID, inet6Address,
637 MASK_OK_DEFAULT_IPV6_TEST);
638 verifyToEidWithIpv6Prefix(eidFromIpv6Prefix, true, MASK_OK_DEFAULT_IPV6_TEST, Ipv6PrefixAfi.class);
640 eidFromIpv6Prefix = LispAddressUtil.asIpv6PrefixEid(IPV6_ADDRESS_TEST, INSTANCE_ID_TYPE_TEST);
641 verifyToEidWithIpv6Prefix(eidFromIpv6Prefix, true, MASK_OK_DEFAULT_IPV6_TEST, Ipv6PrefixAfi.class);
646 * - {@link LispAddressUtil#toEid(MacAddress, InstanceIdType)}
647 * - {@link LispAddressUtil#asMacEid(String)}
648 * - {@link LispAddressUtil#asMacEid(String, long)}
652 public void toEid_mac() {
653 Eid eidFromMac = LispAddressUtil.toEid(MAC_ADDRESS_TEST, INSTANCE_ID_TYPE_TEST);
654 verifyToEidWithMacAddress(eidFromMac, true);
656 eidFromMac = LispAddressUtil.asMacEid(MAC_ADDRESS_VALUE_TEST);
657 verifyToEidWithMacAddress(eidFromMac, false);
659 eidFromMac = LispAddressUtil.asMacEid(MAC_ADDRESS_VALUE_TEST, INSTANCE_ID_TYPE_VALUE_TEST);
660 verifyToEidWithMacAddress(eidFromMac, true);
665 * - {@link LispAddressUtil#toEid(Ipv6Address, InstanceIdType)}
666 * - {@link LispAddressUtil#toEid(Ipv6AddressBinary, InstanceIdType)}
667 * - {@link LispAddressUtil#asIpv6Eid(String)}
668 * - {@link LispAddressUtil#asIpv6Eid(String, long)}
672 public void toEid_ipv6() {
673 Eid eidFromIpv6 = LispAddressUtil.toEid(IPV6_ADDRESS_TEST, INSTANCE_ID_TYPE_TEST);
674 verifyToEidWithIpv6(eidFromIpv6, true);
676 eidFromIpv6 = LispAddressUtil.toEid(IPV6_ADDRESS_BINARY_TEST, INSTANCE_ID_TYPE_TEST);
677 verifyToEidWithIpv6Binary(eidFromIpv6, true);
679 eidFromIpv6 = LispAddressUtil.asIpv6Eid(IPV6_ADDRESS_VALUE_TEST);
680 verifyToEidWithIpv6Binary(eidFromIpv6, false);
682 eidFromIpv6 = LispAddressUtil.asIpv6Eid(IPV6_ADDRESS_VALUE_TEST, INSTANCE_ID_TYPE_VALUE_TEST);
683 verifyToEidWithIpv6Binary(eidFromIpv6, true);
688 * - {@link LispAddressUtil#toEid(Ipv4Prefix, InstanceIdType)}
689 * - {@link LispAddressUtil#asIpv4PrefixEid(String)}
690 * - {@link LispAddressUtil#asIpv4PrefixEid(Eid, Inet4Address, short)}
691 * - {@link LispAddressUtil#asIpv4PrefixEid(Ipv4Address, InstanceIdType)} }
695 public void toEid_ipv4Prefix() throws UnknownHostException {
696 final Inet4Address inet4Address = (Inet4Address) Inet4Address.getByName(IPV4_ADDRESS_VALUE_TEST);
698 Eid eidFromIpv4Prefix = LispAddressUtil.toEid(IPV4_ADDRESS_PREFIX_TEST, INSTANCE_ID_TYPE_TEST);
699 verifyToEidWithIpv4Prefix(eidFromIpv4Prefix, true, MASK_OK_TEST, Ipv4PrefixAfi.class);
701 eidFromIpv4Prefix = LispAddressUtil.asIpv4PrefixEid(IPV4_ADDRESS_PREFIX_VALUE_TEST);
702 verifyToEidWithIpv4Prefix(eidFromIpv4Prefix, false, MASK_OK_TEST, Ipv4PrefixAfi.class);
704 eidFromIpv4Prefix = LispAddressUtil.asIpv4PrefixEid(IPV4_ADDRESS_PREFIX_BINARY_EID, inet4Address,
705 MASK_OK_DEFAULT_IPV4_TEST);
706 verifyToEidWithIpv4Prefix(eidFromIpv4Prefix, true, MASK_OK_DEFAULT_IPV4_TEST, Ipv4PrefixAfi.class);
708 eidFromIpv4Prefix = LispAddressUtil.asIpv4PrefixEid(IPV4_ADDRESS_TEST, INSTANCE_ID_TYPE_TEST);
709 verifyToEidWithIpv4Prefix(eidFromIpv4Prefix, true, MASK_OK_DEFAULT_IPV4_TEST, Ipv4PrefixAfi.class);
714 * - {@link LispAddressUtil#toEid(Ipv4PrefixBinary, InstanceIdType)}
715 * - {@link LispAddressUtil#asIpv4PrefixBinaryEid(String)}
716 * - {@link LispAddressUtil#asIpv4PrefixBinaryEid(String, InstanceIdType)}
717 * - {@link LispAddressUtil#asIpv4PrefixBinaryEid(Eid, byte[], short)}
721 public void toEid_ipv4PrefixBinary() {
722 Eid eidFromIpv4PrefixBinary = LispAddressUtil.toEid(IPV4_ADDRESS_PREFIX_BINARY, INSTANCE_ID_TYPE_TEST);
723 verifyToEidWithIpv4PrefixBinary(eidFromIpv4PrefixBinary, true, MASK_OK_TEST, Ipv4PrefixBinaryAfi.class);
725 eidFromIpv4PrefixBinary = LispAddressUtil.asIpv4PrefixBinaryEid(IPV4_ADDRESS_PREFIX_VALUE_TEST);
726 verifyToEidWithIpv4PrefixBinary(eidFromIpv4PrefixBinary, false, MASK_OK_TEST, Ipv4PrefixBinaryAfi.class);
728 eidFromIpv4PrefixBinary = LispAddressUtil.asIpv4PrefixBinaryEid(IPV4_ADDRESS_PREFIX_VALUE_TEST,
729 INSTANCE_ID_TYPE_TEST);
730 verifyToEidWithIpv4PrefixBinary(eidFromIpv4PrefixBinary, true, MASK_OK_TEST, Ipv4PrefixBinaryAfi.class);
732 eidFromIpv4PrefixBinary = LispAddressUtil.asIpv4PrefixBinaryEid(IPV4_ADDRESS_PREFIX_BINARY_EID,
733 IPV4_ADDRESS_BYTES_A_TEST, MASK_OK_TEST);
734 verifyToEidWithIpv4PrefixBinary(eidFromIpv4PrefixBinary, true, MASK_OK_TEST, Ipv4PrefixBinaryAfi.class);
739 * - {@link LispAddressUtil#toEid(Ipv6PrefixBinary, InstanceIdType)}
740 * - {@link LispAddressUtil#asIpv6PrefixBinaryEid(String)}
741 * - {@link LispAddressUtil#asIpv6PrefixBinaryEid(String, InstanceIdType)}
742 * - {@link LispAddressUtil#asIpv6PrefixBinaryEid(Eid, byte[], short)}
746 public void toEid_ipv6PrefixBinary() {
747 Eid eidFromIpv6PrefixBinary = LispAddressUtil.toEid(IPV6_ADDRESS_PREFIX_BINARY, INSTANCE_ID_TYPE_TEST);
748 verifyToEidWithIpv6PrefixBinary(eidFromIpv6PrefixBinary, true, MASK_OK_TEST, Ipv6PrefixBinaryAfi.class);
750 eidFromIpv6PrefixBinary = LispAddressUtil.asIpv6PrefixBinaryEid(IPV6_ADDRESS_PREFIX_VALUE_TEST);
751 verifyToEidWithIpv6PrefixBinary(eidFromIpv6PrefixBinary, false, MASK_OK_TEST, Ipv6PrefixBinaryAfi.class);
753 eidFromIpv6PrefixBinary = LispAddressUtil.asIpv6PrefixBinaryEid(IPV6_ADDRESS_PREFIX_VALUE_TEST,
754 INSTANCE_ID_TYPE_TEST);
755 verifyToEidWithIpv6PrefixBinary(eidFromIpv6PrefixBinary, true, MASK_OK_TEST, Ipv6PrefixBinaryAfi.class);
757 eidFromIpv6PrefixBinary = LispAddressUtil.asIpv6PrefixBinaryEid(IPV6_ADDRESS_PREFIX_BINARY_EID,
758 IPV6_ADDRESS_BYTES_A_TEST, MASK_OK_TEST);
759 verifyToEidWithIpv6PrefixBinary(eidFromIpv6PrefixBinary, true, MASK_OK_TEST, Ipv6PrefixBinaryAfi.class);
764 * - {@link LispAddressUtil#toEid(Ipv4Address, InstanceIdType)}
765 * - {@link LispAddressUtil#toEid(Ipv4AddressBinary, InstanceIdType)}
766 * - {@link LispAddressUtil#asIpv4Eid(String)}
767 * - {@link LispAddressUtil#asIpv4Eid(String, long)}
771 public void toEid_ipv4() {
772 Eid eidFromIpv4 = LispAddressUtil.toEid(IPV4_ADDRESS_TEST, INSTANCE_ID_TYPE_TEST);
773 verifyToEidWithIpv4(eidFromIpv4, true);
775 eidFromIpv4 = LispAddressUtil.toEid(IPV4_ADDRESS_BINARY_TEST, INSTANCE_ID_TYPE_TEST);
776 verifyToEidWithIpv4Binary(eidFromIpv4, true);
778 eidFromIpv4 = LispAddressUtil.asIpv4Eid(IPV4_ADDRESS_VALUE_TEST);
779 verifyToEidWithIpv4Binary(eidFromIpv4, false);
781 eidFromIpv4 = LispAddressUtil.asIpv4Eid(IPV4_ADDRESS_VALUE_TEST, INSTANCE_ID_TYPE_VALUE_TEST);
782 verifyToEidWithIpv4Binary(eidFromIpv4, true);
787 * - {@link LispAddressUtil#toEid(IpPrefix, InstanceIdType)}
791 public void toEid_ipPrefix() {
792 final Eid eidFromIpPrefix = LispAddressUtil.toEid(IP_ADDRESS_PREFIX_WITH_IPV4_TEST, INSTANCE_ID_TYPE_TEST);
793 verifyToEidWithIpv4Prefix(eidFromIpPrefix, true, MASK_OK_TEST, Ipv4PrefixAfi.class);
798 * - {@link LispAddressUtil#toEid(DistinguishedNameType, InstanceIdType)}
799 * - {@link LispAddressUtil#asDistinguishedNameEid(String)}
800 * - {@link LispAddressUtil#asDistinguishedNameEid(String, long)}
801 * methods with various input.
804 public void toEid_distinguishedName() {
805 Eid eidFromDistinguishedName = LispAddressUtil.toEid(DISTINGUISHED_NAME_TYPE_TEST, INSTANCE_ID_TYPE_TEST);
806 verifyToEidWithDistinguishedName(eidFromDistinguishedName, true);
808 eidFromDistinguishedName = LispAddressUtil.asDistinguishedNameEid(DISTINGUISHED_NAME_TYPE_VALUE_TEST);
809 verifyToEidWithDistinguishedName(eidFromDistinguishedName, false);
811 eidFromDistinguishedName = LispAddressUtil.asDistinguishedNameEid(
812 DISTINGUISHED_NAME_TYPE_VALUE_WITH_MAC_TEST, INSTANCE_ID_TYPE_VALUE_TEST);
813 verifyToEidWithMacAddress(eidFromDistinguishedName, true);
816 private void verifyToEidWithIpv6Prefix(final Eid eidFromIpv6Prefix, final boolean isVniChecked, short
817 expectedMask, final Class<? extends org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp
818 .address.types.rev151105.LispAddressFamily> addressType) {
819 assertEquals(addressType, eidFromIpv6Prefix.getAddressType());
821 assertEquals(INSTANCE_ID_TYPE_TEST, eidFromIpv6Prefix.getVirtualNetworkId());
823 assertEquals(IPV6_ADDRESS_VALUE_TEST + "/" + expectedMask, ((org.opendaylight.yang.gen.v1.urn.ietf.params.xml
824 .ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.Ipv6Prefix) eidFromIpv6Prefix
825 .getAddress()).getIpv6Prefix().getValue());
828 private void verifyToEidWithIpv6PrefixBinary(final Eid eidFromIpv6PrefixBinary, final boolean isVniChecked, short
829 expectedMask, final Class<? extends org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp
830 .address.types.rev151105.LispAddressFamily> addressType) {
831 assertEquals(addressType, eidFromIpv6PrefixBinary.getAddressType());
833 assertEquals(INSTANCE_ID_TYPE_TEST, eidFromIpv6PrefixBinary.getVirtualNetworkId());
835 assertArrayEquals(IPV6_ADDRESS_BYTES_A_TEST, ((Ipv6PrefixBinary) eidFromIpv6PrefixBinary
836 .getAddress()).getIpv6AddressBinary().getValue());
837 assertEquals(expectedMask,
838 (short) ((Ipv6PrefixBinary) eidFromIpv6PrefixBinary.getAddress()).getIpv6MaskLength());
841 private void verifyToEidWithIpv4(final Eid eidFromIpv4, final boolean isVniChecked) {
842 assertEquals(Ipv4Afi.class, eidFromIpv4.getAddressType());
844 assertEquals(INSTANCE_ID_TYPE_TEST, eidFromIpv4.getVirtualNetworkId());
846 assertEquals(IPV4_ADDRESS_VALUE_TEST, ((Ipv4) eidFromIpv4.getAddress()).getIpv4().getValue());
849 private void verifyToRlocWithIpv4(final Rloc rlocFromIpv4, final boolean isVniChecked) {
850 assertEquals(Ipv4Afi.class, rlocFromIpv4.getAddressType());
852 assertEquals(INSTANCE_ID_TYPE_TEST, rlocFromIpv4.getVirtualNetworkId());
854 assertEquals(IPV4_ADDRESS_VALUE_TEST, ((Ipv4) rlocFromIpv4.getAddress()).getIpv4().getValue());
857 private void verifyToEidWithIpv4Binary(final Eid eidFromIpv4, final boolean isVniChecked) {
858 assertEquals(Ipv4BinaryAfi.class, eidFromIpv4.getAddressType());
860 assertEquals(INSTANCE_ID_TYPE_TEST, eidFromIpv4.getVirtualNetworkId());
862 assertArrayEquals(IPV4_ADDRESS_BYTES_A_TEST,
863 ((Ipv4Binary) eidFromIpv4.getAddress()).getIpv4Binary().getValue());
866 private void verifyToRlocWithIpv4Binary(final Rloc rlocFromIpv4, final boolean isVniChecked) {
867 assertEquals(Ipv4BinaryAfi.class, rlocFromIpv4.getAddressType());
869 assertEquals(INSTANCE_ID_TYPE_TEST, rlocFromIpv4.getVirtualNetworkId());
871 assertArrayEquals(IPV4_ADDRESS_BYTES_A_TEST,
872 ((Ipv4Binary) rlocFromIpv4.getAddress()).getIpv4Binary().getValue());
875 private void verifyToEidWithIpv6(final Eid eidFromIpv6, final boolean isVniChecked) {
876 assertEquals(Ipv6Afi.class, eidFromIpv6.getAddressType());
878 assertEquals(INSTANCE_ID_TYPE_TEST, eidFromIpv6.getVirtualNetworkId());
880 assertEquals(IPV6_ADDRESS_VALUE_TEST, ((Ipv6) eidFromIpv6.getAddress()).getIpv6().getValue());
883 private void verifyToEidWithIpv4Prefix(final Eid eidFromIpv4Prefix, final boolean isVniChecked, short
884 expectedMask, Class<? extends org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address
885 .types.rev151105.LispAddressFamily> addressType) {
886 assertEquals(addressType, eidFromIpv4Prefix.getAddressType());
888 assertEquals(INSTANCE_ID_TYPE_TEST, eidFromIpv4Prefix.getVirtualNetworkId());
890 assertEquals(IPV4_ADDRESS_VALUE_TEST + "/" + expectedMask, ((org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns
892 .lisp.address.types.rev151105.lisp.address.address.Ipv4Prefix) eidFromIpv4Prefix.getAddress())
893 .getIpv4Prefix().getValue());
896 private void verifyToEidWithIpv4PrefixBinary(final Eid eidFromIpv4PrefixBinary, final boolean isVniChecked, short
897 expectedMask, Class<? extends org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address
898 .types.rev151105.LispAddressFamily> addressType) {
899 assertEquals(addressType, eidFromIpv4PrefixBinary.getAddressType());
901 assertEquals(INSTANCE_ID_TYPE_TEST, eidFromIpv4PrefixBinary.getVirtualNetworkId());
903 assertArrayEquals(IPV4_ADDRESS_BYTES_A_TEST,
904 ((Ipv4PrefixBinary) eidFromIpv4PrefixBinary.getAddress()).getIpv4AddressBinary().getValue());
905 assertEquals(expectedMask,
906 (short) ((Ipv4PrefixBinary) eidFromIpv4PrefixBinary.getAddress()).getIpv4MaskLength());
909 private void verifyToEidWithIpv6Binary(final Eid eidFromIpv6, final boolean isVniChecked) {
910 assertEquals(Ipv6BinaryAfi.class, eidFromIpv6.getAddressType());
912 assertEquals(INSTANCE_ID_TYPE_TEST, eidFromIpv6.getVirtualNetworkId());
914 assertArrayEquals(IPV6_ADDRESS_BYTES_A_TEST,
915 ((Ipv6Binary) eidFromIpv6.getAddress()).getIpv6Binary().getValue());
918 private void verifyToEidWithDistinguishedName(final Eid eidFromDistinguishedName, final boolean isVniChecked) {
919 assertEquals(DistinguishedNameAfi.class, eidFromDistinguishedName.getAddressType());
921 assertEquals(INSTANCE_ID_TYPE_TEST, eidFromDistinguishedName.getVirtualNetworkId());
923 assertEquals(DISTINGUISHED_NAME_TYPE_TEST, ((DistinguishedName) eidFromDistinguishedName.getAddress())
924 .getDistinguishedName());
927 private void verifyToEidWithMacAddress(final Eid eidFromMac, final boolean isVniChecked) {
928 assertEquals(MacAfi.class, eidFromMac.getAddressType());
930 assertEquals(INSTANCE_ID_TYPE_TEST, eidFromMac.getVirtualNetworkId());
932 assertEquals(MAC_ADDRESS_VALUE_TEST, ((Mac) eidFromMac.getAddress()).getMac().getValue());
936 * Tests {@link LispAddressUtil#asIpPrefix(String, int)} with ipv4 address and correct mask.
939 public void asIpPrefix_ipv4() {
940 final IpPrefix ipPrefix = LispAddressUtil.asIpPrefix(IPV4_ADDRESS_VALUE_TEST, MASK_OK_TEST);
941 assertNotNull(ipPrefix);
942 final Ipv4Prefix ipv4Prefix = ipPrefix.getIpv4Prefix();
943 assertNotNull(ipv4Prefix);
944 assertEquals(IPV4_ADDRESS_PREFIX_TEST, ipv4Prefix);
948 * Tests {@link LispAddressUtil#asIpPrefix(String, int)} with ipv6 address and correct mask.
951 public void asIpPrefix_ipv6() {
952 final IpPrefix ipPrefix = LispAddressUtil.asIpPrefix(IPV6_ADDRESS_VALUE_TEST, MASK_OK_TEST);
953 assertNotNull(ipPrefix);
954 final Ipv6Prefix ipv6Prefix = ipPrefix.getIpv6Prefix();
955 assertNotNull(ipv6Prefix);
956 assertEquals(IPV6_ADDRESS_PREFIX_TEST, ipv6Prefix);
960 * Tests {@link LispAddressUtil#asIpPrefix(String, int)} with incorrect ip address and correct mask.
963 public void asIpPrefix_other() {
964 final IpPrefix ipPrefix = LispAddressUtil.asIpPrefix(INCORRECT_IP_ADDRESS_TEST, MASK_OK_TEST);
965 assertNull(ipPrefix);
969 * Tests {@link LispAddressUtil#asBinaryEid(SimpleAddress, InstanceIdType)} method with ipv4Prefix.
972 public void asBinaryEidTest_ipv4Prefix() {
973 final Eid result = LispAddressUtil.asBinaryEid(SIMPLE_ADDRESS_IPV4_PREFIX_TEST, INSTANCE_ID_TYPE_TEST);
974 assertEquals(IPV4_ADDRESS_PREFIX_BINARY_EID, result);
978 * Tests {@link LispAddressUtil#asBinaryEid(SimpleAddress, InstanceIdType)} method with ipv6Prefix.
981 public void asBinaryEidTest_ipv6Prefix() {
982 final Eid result = LispAddressUtil.asBinaryEid(SIMPLE_ADDRESS_IPV6_PREFIX_TEST, INSTANCE_ID_TYPE_TEST);
983 assertEquals(IPV6_ADDRESS_PREFIX_BINARY_EID, result);
987 * Tests {@link LispAddressUtil#asBinaryEid(SimpleAddress, InstanceIdType)} method with ipv4.
990 public void asBinaryEidTest_ipv4() {
991 final Eid result = LispAddressUtil.asBinaryEid(SIMPLE_ADDRESS_IPV4_TEST, INSTANCE_ID_TYPE_TEST);
992 assertEquals(IPV4_ADDRESS_BINARY_EID, result);
996 * Tests {@link LispAddressUtil#asBinaryEid(SimpleAddress, InstanceIdType)} method with ipv6.
999 public void asBinaryEidTest_ipv6() {
1000 final Eid result = LispAddressUtil.asBinaryEid(SIMPLE_ADDRESS_IPV6_TEST, INSTANCE_ID_TYPE_TEST);
1001 assertEquals(IPV6_ADDRESS_BINARY_EID, result);
1005 * Tests {@link LispAddressUtil#asBinaryEid(SimpleAddress, InstanceIdType)} method with mac.
1008 public void asBinaryEidTest_mac() {
1009 final Eid result = LispAddressUtil.asBinaryEid(SIMPLE_ADDRESS_MAC_TEST, INSTANCE_ID_TYPE_TEST);
1010 assertEquals(MAC_ADDRESS_EID, result);
1014 * Tests {@link LispAddressUtil#ipVersionFromString(String)} with ipv4.
1017 public void ipVersionFromString_ipv4() {
1018 final int addressType = LispAddressUtil.ipVersionFromString(IPV4_ADDRESS_VALUE_TEST);
1019 assertEquals(4, addressType);
1023 * Tests {@link LispAddressUtil#ipVersionFromString(String)} with ipv6.
1026 public void ipVersionFromString_ipv6() {
1027 final int addressType = LispAddressUtil.ipVersionFromString(IPV6_ADDRESS_VALUE_TEST);
1028 assertEquals(6, addressType);
1032 * Tests {@link LispAddressUtil#ipVersionFromString(String)} with incorrect ip address format.
1035 public void ipVersionFromString_other() {
1036 final int addressType = LispAddressUtil.ipVersionFromString(INCORRECT_IP_ADDRESS_TEST);
1037 assertEquals(0, addressType);
1042 * Tests {@link LispAddressUtil#asKeyValueAddressEid(SimpleAddress, SimpleAddress)} method.
1045 public void asKeyValueAddressEid() {
1046 final Eid eid = LispAddressUtil.asKeyValueAddressEid(SIMPLE_ADDRESS_IPV4_TEST, SIMPLE_ADDRESS_MAC_TEST);
1047 verifyKeyValueAddress(eid, SIMPLE_ADDRESS_IPV4_TEST);
1051 * Tests {@link LispAddressUtil#asKeyValueAddressRloc(SimpleAddress, SimpleAddress)} method.
1054 public void asKeyValueAddressRloc() {
1055 final Rloc rloc = LispAddressUtil.asKeyValueAddressRloc(SIMPLE_ADDRESS_IPV4_TEST, SIMPLE_ADDRESS_MAC_TEST);
1056 verifyKeyValueAddress(rloc, SIMPLE_ADDRESS_IPV4_TEST);
1060 * Tests {@link LispAddressUtil#asKeyValueAddress(String, SimpleAddress)} method.
1063 public void asKeyValueAddress() {
1064 final Rloc rloc = LispAddressUtil.asKeyValueAddress(DISTINGUISHED_NAME_TYPE_VALUE_TEST,
1065 SIMPLE_ADDRESS_MAC_TEST);
1066 verifyKeyValueAddress(rloc, SIMPLE_ADDRESS_DISTINGUISHED_TEST);
1069 private void verifyKeyValueAddress(final LispAddress lispAddress, final SimpleAddress keyValue) {
1070 assertEquals(KeyValueAddressLcaf.class, lispAddress.getAddressType());
1071 assertNull(lispAddress.getVirtualNetworkId());
1072 final org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105
1073 .lisp.address.address.key.value.address.KeyValueAddress keyValueAddress =
1074 ((KeyValueAddress) lispAddress.getAddress()).getKeyValueAddress();
1075 assertNotNull(keyValueAddress);
1076 assertEquals(keyValue, keyValueAddress.getKey());
1077 assertEquals(SIMPLE_ADDRESS_MAC_TEST, keyValueAddress.getValue());
1081 * Tests {@link LispAddressUtil#asSrcDst(String, String, int, int)} method.
1084 public void asSrcDst() {
1085 final SourceDestKey sourceDestKey = LispAddressUtil.asSrcDst(IPV4_ADDRESS_VALUE_TEST,
1086 IPV6_ADDRESS_VALUE_TEST, MASK_OK_TEST, MASK_OK_TEST);
1087 assertNotNull(sourceDestKey);
1088 assertEquals(SIMPLE_ADDRESS_IPV4_PREFIX_TEST, sourceDestKey.getSource());
1089 assertEquals(SIMPLE_ADDRESS_IPV6_PREFIX_TEST, sourceDestKey.getDest());
1093 * Tests {@link LispAddressUtil#asSrcDstEid(String, String, int, int, int)} method.
1096 public void asSrcDstEid_addressesAsString() {
1097 final Eid srcDstEid = LispAddressUtil.asSrcDstEid(IPV4_ADDRESS_VALUE_TEST,
1098 IPV6_ADDRESS_VALUE_TEST, MASK_OK_TEST, MASK_OK_TEST, INSTANCE_ID_TYPE_VALUE_SHORT_TEST);
1099 assertNotNull(srcDstEid);
1100 assertEquals(SourceDestKeyLcaf.class, srcDstEid.getAddressType());
1101 final SourceDestKey sourceDestKey = ((org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns
1102 .yang.ietf.lisp.address.types.rev151105.lisp.address.address.SourceDestKey) srcDstEid.getAddress())
1103 .getSourceDestKey();
1104 assertNotNull(sourceDestKey);
1105 assertEquals(SIMPLE_ADDRESS_IPV4_PREFIX_TEST, sourceDestKey.getSource());
1106 assertEquals(SIMPLE_ADDRESS_IPV6_PREFIX_TEST, sourceDestKey.getDest());
1110 * Tests {@link LispAddressUtil#asSrcDstEid(SourceDestKey, InstanceIdType)} method.
1113 public void asSrcDstEid_addressesAsSrcDstKey() {
1114 final SourceDestKey expectedSourceDestKey = new SourceDestKeyBuilder().setSource(
1115 SIMPLE_ADDRESS_IPV4_PREFIX_TEST).setDest(SIMPLE_ADDRESS_IPV6_PREFIX_TEST).build();
1116 final Eid srcDstEid = LispAddressUtil.asSrcDstEid(expectedSourceDestKey, INSTANCE_ID_TYPE_TEST);
1117 assertNotNull(srcDstEid);
1118 assertEquals(SourceDestKeyLcaf.class, srcDstEid.getAddressType());
1119 final SourceDestKey testedSourceDestKey = ((org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns
1120 .yang.ietf.lisp.address.types.rev151105.lisp.address.address.SourceDestKey) srcDstEid.getAddress())
1121 .getSourceDestKey();
1122 assertNotNull(testedSourceDestKey);
1123 assertEquals(SIMPLE_ADDRESS_IPV4_PREFIX_TEST, testedSourceDestKey.getSource());
1124 assertEquals(SIMPLE_ADDRESS_IPV6_PREFIX_TEST, testedSourceDestKey.getDest());
1128 * Tests {@link LispAddressUtil#asSrcDstEid(SourceDestKey, InstanceIdType)} method.
1131 public void asTeLcafRloc() {
1132 final List<IpAddress> ipAddresses = Arrays.asList(IP_ADDRESS_IPV4_TEST,
1133 IP_ADDRESS_IPV6_TEST);
1134 final Rloc rloc = LispAddressUtil.asTeLcafRloc(ipAddresses);
1135 assertNotNull(rloc);
1136 assertEquals(ExplicitLocatorPathLcaf.class, rloc.getAddressType());
1137 final List<Hop> hops = ((ExplicitLocatorPath) rloc.getAddress()).getExplicitLocatorPath().getHop();
1138 assertEquals(hops.size(), ipAddresses.size());
1140 for (IpAddress ipAddress : ipAddresses) {
1141 assertTrue("Ip address " + ipAddress + "should be part of hops list.", isIpAddressInHops(ipAddress, hops));
1144 for (Hop hop : hops) {
1145 final Hop.LrsBits lrsBits = hop.getLrsBits();
1146 assertFalse(lrsBits.isLookup());
1147 assertFalse(lrsBits.isRlocProbe());
1148 assertFalse(lrsBits.isStrict());
1150 final IpAddress ipAddressFromHop = hop.getAddress().getIpAddress();
1151 assertNotNull(ipAddressFromHop);
1155 private boolean isIpAddressInHops(final IpAddress ipAddress, final List<Hop> hops) {
1156 for (Hop hop : hops) {
1157 if (hop.getAddress().getIpAddress().equals(ipAddress)) {
1165 * Tests {@link LispAddressUtil#asLocatorRecords(List)} method.
1168 public void asLocatorRecords() {
1169 final List<Rloc> expectedRlocs = Arrays.asList(LispAddressUtil.toRloc(IPV4_ADDRESS_TEST),
1170 LispAddressUtil.toRloc(IPV6_ADDRESS_TEST));
1171 final List<LocatorRecord> locatorRecords = LispAddressUtil.asLocatorRecords(expectedRlocs);
1173 assertEquals(expectedRlocs.size(), locatorRecords.size());
1175 for (Rloc rloc : expectedRlocs) {
1176 assertTrue("Rloc " + rloc + " should be part of "
1177 + "locator records list list", isRlocInLocatorRecords(locatorRecords, rloc));
1180 for (LocatorRecord locatorRecord : locatorRecords) {
1181 assertFalse(locatorRecord.isLocalLocator());
1182 assertFalse(locatorRecord.isRlocProbed());
1183 assertTrue(locatorRecord.isRouted());
1184 assertTrue(1 == locatorRecord.getWeight());
1185 assertTrue(1 == locatorRecord.getPriority());
1186 assertTrue(1 == locatorRecord.getMulticastWeight());
1187 assertTrue(1 == locatorRecord.getMulticastPriority());
1188 assertEquals("SFC_LISP", locatorRecord.getLocatorId());
1192 private boolean isRlocInLocatorRecords(final List<LocatorRecord> locatorRecords, final Rloc rloc) {
1193 for (LocatorRecord locatorRecord : locatorRecords) {
1194 if (locatorRecord.getRloc().equals(rloc)) {
1202 * Tests {@link LispAddressUtil#getNoAddressEid()} method.
1205 public void getNoAddressEid() {
1206 final Eid noAddressEid = LispAddressUtil.getNoAddressEid();
1207 assertEquals(NoAddressAfi.class, noAddressEid.getAddressType());
1208 assertNull(noAddressEid.getVirtualNetworkId());
1209 assertTrue(((NoAddress) noAddressEid.getAddress()).isNoAddress());
1213 * Tests {@link LispAddressUtil#ipAddressToByteArray(Address)} method with ipv4 value.
1216 public void ipAddressToByteArray_ipv4() {
1217 final Ipv4 expectedIpv4 = new Ipv4Builder().setIpv4(IPV4_ADDRESS_TEST).build();
1218 final byte[] testedAddress = LispAddressUtil.ipAddressToByteArray(expectedIpv4);
1219 assertArrayEquals(IPV4_ADDRESS_BYTES_A_TEST, testedAddress);
1223 * Tests {@link LispAddressUtil#ipAddressToByteArray(Address)} method with ipv6 value.
1226 public void ipAddressToByteArray_ipv6() {
1227 final Ipv6 expectedIpv6 = new Ipv6Builder().setIpv6(IPV6_ADDRESS_TEST).build();
1228 final byte[] testedAddress = LispAddressUtil.ipAddressToByteArray(expectedIpv6);
1229 assertArrayEquals(IPV6_ADDRESS_BYTES_A_TEST, testedAddress);
1233 * Tests {@link LispAddressUtil#ipAddressToByteArray(Address)} method with ipv4Binary value.
1236 public void ipAddressToByteArray_ipv4Binary() {
1237 final Ipv4Binary expectedIpv4 = new Ipv4BinaryBuilder().setIpv4Binary(IPV4_ADDRESS_BINARY_TEST).build();
1238 final byte[] testedAddress = LispAddressUtil.ipAddressToByteArray(expectedIpv4);
1239 assertArrayEquals(IPV4_ADDRESS_BYTES_A_TEST, testedAddress);
1243 * Tests {@link LispAddressUtil#ipAddressToByteArray(Address)} method with ipv6Binary value.
1246 public void ipAddressToByteArray_ipv6Binary() {
1247 final Ipv6Binary expectedIpv6 = new Ipv6BinaryBuilder().setIpv6Binary(IPV6_ADDRESS_BINARY_TEST).build();
1248 final byte[] testedAddress = LispAddressUtil.ipAddressToByteArray(expectedIpv6);
1249 assertArrayEquals(IPV6_ADDRESS_BYTES_A_TEST, testedAddress);
1253 * Tests {@link LispAddressUtil#ipAddressToByteArray(Address)} method with mac value.
1256 public void ipAddressToByteArray_other() {
1257 final byte[] testedAddress = LispAddressUtil.ipAddressToByteArray(new MacBuilder().build());
1258 assertNull(testedAddress);
1262 * Tests {@link LispAddressUtil#convertToBinary(Eid)} method with ipv4Prefix, ipv6Prefix, ipv4, ipv6.
1265 public void convertToBinaryTest_eid() {
1267 final Eid ipv4PrefixEid = new EidBuilder().setAddress(IPV4_PREFIX).build();
1268 final Eid ipv6PrefixEid = new EidBuilder().setAddress(IPV6_PREFIX).build();
1269 final Eid ipv4 = new EidBuilder().setAddress(IPV4).build();
1270 final Eid ipv6 = new EidBuilder().setAddress(IPV6).build();
1272 Eid resultIpv4PrefixBinary = LispAddressUtil.convertToBinary(ipv4PrefixEid);
1273 verifyToEidWithIpv4PrefixBinary(resultIpv4PrefixBinary, false, MASK_OK_TEST, Ipv4PrefixBinaryAfi.class);
1275 Eid resultIpv6PrefixBinary = LispAddressUtil.convertToBinary(ipv6PrefixEid);
1276 verifyToEidWithIpv6PrefixBinary(resultIpv6PrefixBinary , false, MASK_OK_TEST, Ipv6PrefixBinaryAfi.class);
1278 Eid resultIpv4Binary = LispAddressUtil.convertToBinary(ipv4);
1279 verifyToEidWithIpv4Binary(resultIpv4Binary , false);
1281 Eid resultIpv6Binary = LispAddressUtil.convertToBinary(ipv6);
1282 verifyToEidWithIpv6Binary(resultIpv6Binary , false);
1286 * Tests {@link LispAddressUtil#convertToBinary(Eid)} method with ipv4Prefix, ipv6Prefix, ipv4, ipv6.
1289 public void convertFromBinaryTest_eid() {
1290 final Eid resultIpv4Prefix = LispAddressUtil.convertFromBinary(IPV4_ADDRESS_PREFIX_BINARY_EID);
1291 verifyToEidWithIpv4Prefix(resultIpv4Prefix, false, MASK_OK_TEST, Ipv4PrefixAfi.class);
1293 final Eid resultIpv6Prefix = LispAddressUtil.convertFromBinary(IPV6_ADDRESS_PREFIX_BINARY_EID);
1294 verifyToEidWithIpv6Prefix(resultIpv6Prefix, false, MASK_OK_TEST, Ipv6PrefixAfi.class);
1296 final Eid resultIpv4 = LispAddressUtil.convertFromBinary(IPV4_ADDRESS_BINARY_EID);
1297 verifyToEidWithIpv4(resultIpv4, false);
1299 final Eid resultIpv6 = LispAddressUtil.convertFromBinary(IPV6_ADDRESS_BINARY_EID);
1300 verifyToEidWithIpv6(resultIpv6, false);
1304 * Tests {@link LispAddressUtil#convertFromBinary(Rloc)} method with ipv4.
1307 public void convertFromBinaryTest_rloc() {
1308 final Rloc resultIpv4 = LispAddressUtil.convertFromBinary(IPV4_BINARY_RLOC);
1309 verifyToRlocWithIpv4(resultIpv4, false);
1313 * Tests {@link LispAddressUtil#convertToBinary(Rloc)} method with ipv4.
1316 public void convertToBinaryTest_rloc() {
1317 final Rloc resultIpv4Binary = LispAddressUtil.convertToBinary(IPV4_RLOC);
1318 verifyToRlocWithIpv4Binary(resultIpv4Binary, false);
1322 * Tests {@link LispAddressUtil#addressNeedsConversionToBinary} method with ipv4, ipv6, ipv4Prefix, ipv6Prefix and
1326 public void addressNeedsConversionToBinaryTest() {
1327 assertTrue(LispAddressUtil.addressNeedsConversionToBinary(IPV4));
1328 assertTrue(LispAddressUtil.addressNeedsConversionToBinary(IPV6));
1329 assertTrue(LispAddressUtil.addressNeedsConversionToBinary(IPV4_PREFIX));
1330 assertTrue(LispAddressUtil.addressNeedsConversionToBinary(IPV6_PREFIX));
1331 assertFalse(LispAddressUtil.addressNeedsConversionToBinary(IPV4_BINARY));
1335 * Tests {@link LispAddressUtil#addressNeedsConversionToBinary} method with ipv4, ipv6, ipv4Prefix, ipv6Prefix and
1339 public void addressNeedsConversionFromBinaryTest() {
1340 assertTrue(LispAddressUtil.addressNeedsConversionFromBinary(IPV4_BINARY));
1341 assertTrue(LispAddressUtil.addressNeedsConversionFromBinary(IPV6_BINARY));
1342 assertTrue(LispAddressUtil.addressNeedsConversionFromBinary(IPV4_ADDRESS_PREFIX_BINARY));
1343 assertTrue(LispAddressUtil.addressNeedsConversionFromBinary(IPV6_ADDRESS_PREFIX_BINARY));
1344 assertFalse(LispAddressUtil.addressNeedsConversionFromBinary(IPV4));
1348 * Tests {@link LispAddressUtil#compareIpAddressByteArrays(byte[], byte[])} with all possible combination
1349 * of input parameters to reach 100 % coverage.
1352 public void compareIpAddressByteArrays() throws UnknownHostException {
1353 int comparisonResult = LispAddressUtil.compareIpAddressByteArrays(IPV4_ADDRESS_BYTES_A_TEST,
1354 IPV6_ADDRESS_BYTES_A_TEST);
1355 assertEquals(-1, comparisonResult);
1357 comparisonResult = LispAddressUtil.compareIpAddressByteArrays(IPV6_ADDRESS_BYTES_A_TEST,
1358 IPV4_ADDRESS_BYTES_A_TEST);
1359 assertEquals(1, comparisonResult);
1361 comparisonResult = LispAddressUtil.compareIpAddressByteArrays(IPV4_ADDRESS_BYTES_A_TEST,
1362 IPV4_ADDRESS_BYTES_B_TEST);
1363 assertEquals(-1, comparisonResult);
1365 comparisonResult = LispAddressUtil.compareIpAddressByteArrays(IPV4_ADDRESS_BYTES_B_TEST,
1366 IPV4_ADDRESS_BYTES_A_TEST);
1367 assertEquals(1, comparisonResult);
1369 comparisonResult = LispAddressUtil.compareIpAddressByteArrays(IPV4_ADDRESS_BYTES_B_TEST,
1370 IPV4_ADDRESS_BYTES_B_TEST);
1371 assertEquals(0, comparisonResult);
1373 comparisonResult = LispAddressUtil.compareIpAddressByteArrays(IPV6_ADDRESS_BYTES_A_TEST,
1374 IPV6_ADDRESS_BYTES_B_TEST);
1375 assertEquals(-1, comparisonResult);
1377 comparisonResult = LispAddressUtil.compareIpAddressByteArrays(IPV6_ADDRESS_BYTES_B_TEST,
1378 IPV6_ADDRESS_BYTES_A_TEST);
1379 assertEquals(1, comparisonResult);
1381 comparisonResult = LispAddressUtil.compareIpAddressByteArrays(IPV6_ADDRESS_BYTES_B_TEST,
1382 IPV6_ADDRESS_BYTES_B_TEST);
1383 assertEquals(0, comparisonResult);
1385 comparisonResult = LispAddressUtil.compareIpAddressByteArrays(new byte[]{1, 2, 3, 4, 5},
1386 new byte[]{1, 2, 3, 4, 5});
1387 assertEquals(0, comparisonResult);
1392 * Tests {@link LispAddressUtil#asServicePathEid(long, long, short)} method.
1395 public void asServicePathEid() {
1396 final Eid eid = LispAddressUtil.asServicePathEid(INSTANCE_ID_TYPE_VALUE_TEST, SERVICE_PATH_ID_TEST,
1397 SERVICE_INDEX_TEST);
1400 assertEquals(ServicePathLcaf.class, eid.getAddressType());
1401 assertEquals(INSTANCE_ID_TYPE_TEST, eid.getVirtualNetworkId());
1402 ServicePath servicePath = ((org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp
1403 .address.types.rev151105.lisp.address.address.ServicePath) eid.getAddress()).getServicePath();
1404 assertNotNull(servicePath);
1405 assertEquals(SERVICE_INDEX_TEST, servicePath.getServiceIndex());
1406 assertEquals(SERVICE_PATH_ID_TEST, servicePath.getServicePathId().getValue());
1410 * Tests {@link LispAddressUtil#toIpPrefixEid(IpAddress, int)} method.
1413 public void toIpPrefixEid() throws UnknownHostException {
1414 final Eid eid = LispAddressUtil.toIpPrefixEid(IP_ADDRESS_IPV4_TEST,
1415 INSTANCE_ID_TYPE_VALUE_SHORT_TEST);
1416 verifyEidContainsIpPrefix(eid, MASK_OK_DEFAULT_IPV4_TEST);
1420 * Tests {@link LispAddressUtil#toEidNoVni(IpPrefix)} method.
1423 public void toEidNoVni() {
1424 final Eid eid = LispAddressUtil.toEidNoVni(IP_ADDRESS_PREFIX_WITH_IPV4_TEST);
1425 verifyEidContainsIpPrefix(eid, MASK_OK_TEST);
1428 public void verifyEidContainsIpPrefix(final Eid eid, final short mask) {
1429 final Ipv4Prefix expectedPrefix = new Ipv4Prefix(IPV4_ADDRESS_VALUE_TEST + "/" + mask);
1431 assertTrue(eid.getAddress() instanceof org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp
1432 .address.types.rev151105.lisp.address.address.Ipv4Prefix);
1433 final org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address
1434 .address.Ipv4Prefix address = (org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp
1435 .address.types.rev151105.lisp.address.address.Ipv4Prefix) eid.getAddress();
1436 assertEquals(expectedPrefix, address.getIpv4Prefix());
1440 * Tests {@link LispAddressUtil#asEid(SimpleAddress, InstanceIdType)} method.
1443 public void asEid() {
1444 final Eid eid = LispAddressUtil.asEid(SIMPLE_ADDRESS_IPV4_TEST, INSTANCE_ID_TYPE_TEST);
1446 assertEquals(Ipv4BinaryAfi.class, eid.getAddressType());
1447 final Ipv4Binary address = (Ipv4Binary) eid.getAddress();
1448 assertArrayEquals(InetAddresses.forString(SIMPLE_ADDRESS_IPV4_TEST.getIpAddress().getIpv4Address().getValue())
1449 .getAddress(), address.getIpv4Binary().getValue());
1450 assertEquals(INSTANCE_ID_TYPE_TEST, eid.getVirtualNetworkId());