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;
10 import static org.junit.Assert.assertArrayEquals;
11 import static org.junit.Assert.assertEquals;
12 import static org.junit.Assert.assertFalse;
13 import static org.junit.Assert.assertNotNull;
14 import static org.junit.Assert.assertNull;
15 import static org.junit.Assert.assertTrue;
17 import com.google.common.net.InetAddresses;
18 import java.net.Inet4Address;
19 import java.net.Inet6Address;
20 import java.net.InetAddress;
21 import java.net.UnknownHostException;
22 import java.util.Arrays;
23 import java.util.List;
24 import org.junit.Test;
25 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.AsNumber;
26 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
27 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix;
28 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
29 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix;
30 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Address;
31 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Prefix;
32 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.AsNumberAfi;
33 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.DistinguishedNameAfi;
34 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.DistinguishedNameType;
35 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.ExplicitLocatorPathLcaf;
36 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.InstanceIdType;
37 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.Ipv4Afi;
38 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.Ipv4PrefixAfi;
39 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.Ipv6Afi;
40 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.Ipv6PrefixAfi;
41 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.KeyValueAddressLcaf;
42 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.LispAddress;
43 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.LispAddressFamily;
44 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.MacAfi;
45 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.NoAddressAfi;
46 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.ServicePathIdType;
47 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.ServicePathLcaf;
48 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.SimpleAddress;
49 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.SourceDestKeyLcaf;
50 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.Address;
51 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.DistinguishedName;
52 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.ExplicitLocatorPath;
53 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.Ipv4;
54 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.Ipv4Builder;
55 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.Ipv4PrefixBuilder;
56 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.Ipv6;
57 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.Ipv6Builder;
58 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.Ipv6PrefixBuilder;
59 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.KeyValueAddress;
60 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.Mac;
61 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.MacBuilder;
62 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.NoAddress;
63 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;
64 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.service.path.ServicePath;
65 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.source.dest.key.SourceDestKey;
66 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.source.dest.key.SourceDestKeyBuilder;
67 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress;
68 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.inet.binary.types.rev160303.IpAddressBinary;
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_1 = new Ipv4PrefixBinaryBuilder()
125 .setIpv4AddressBinary(new Ipv4AddressBinary(IPV4_ADDRESS_BYTES_A_TEST))
126 .setIpv4MaskLength(MASK_OK_TEST).build();
127 private static final Ipv4PrefixBinary IPV4_ADDRESS_PREFIX_BINARY_2 = new Ipv4PrefixBinaryBuilder()
128 .setIpv4AddressBinary(new Ipv4AddressBinary(IPV4_ADDRESS_BYTES_A_TEST))
129 .setIpv4MaskLength(MASK_OK_DEFAULT_IPV4_TEST).build();
130 private static final IpPrefix IP_ADDRESS_PREFIX_WITH_IPV4_TEST = new IpPrefix(IPV4_ADDRESS_PREFIX_TEST);
131 private static final org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp
132 .address.address.Ipv4Prefix IPV4_PREFIX = new Ipv4PrefixBuilder()
133 .setIpv4Prefix(IPV4_ADDRESS_PREFIX_TEST).build();
134 private static final Eid IPV4_ADDRESS_PREFIX_BINARY_EID_1 = new EidBuilder()
135 .setAddress(IPV4_ADDRESS_PREFIX_BINARY_1)
136 .setAddressType(Ipv4PrefixBinaryAfi.class)
137 .setVirtualNetworkId(INSTANCE_ID_TYPE_TEST).build();
138 private static final Eid IPV4_ADDRESS_PREFIX_BINARY_EID_2 = new EidBuilder()
139 .setAddress(IPV4_ADDRESS_PREFIX_BINARY_2)
140 .setAddressType(Ipv4PrefixBinaryAfi.class)
141 .setVirtualNetworkId(INSTANCE_ID_TYPE_TEST).build();
142 private static final Eid IPV4_ADDRESS_BINARY_EID = new EidBuilder()
143 .setAddress(IPV4_BINARY)
144 .setAddressType(Ipv4BinaryAfi.class)
145 .setVirtualNetworkId(INSTANCE_ID_TYPE_TEST).build();
146 private static final Eid IPV4_EID = new EidBuilder()
148 .setAddressType(Ipv4Afi.class)
149 .setVirtualNetworkId(INSTANCE_ID_TYPE_TEST).build();
150 private static final Eid IPV4_PREFIX_EID = new EidBuilder()
151 .setAddress(IPV4_PREFIX)
152 .setAddressType(Ipv4PrefixAfi.class)
153 .setVirtualNetworkId(INSTANCE_ID_TYPE_TEST).build();
154 private static final Rloc IPV4_RLOC = new RlocBuilder()
156 .setAddressType(Ipv4Afi.class).build();
157 private static final Rloc IPV4_BINARY_RLOC = new RlocBuilder()
158 .setAddress(IPV4_BINARY)
159 .setAddressType(Ipv4BinaryAfi.class).build();
161 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,
163 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,
165 private static final String IPV6_ADDRESS_VALUE_TEST = "102:304:506:708:90a:b0c:d0e:f10";
166 private static final String IPV6_ADDRESS_PREFIX_VALUE_TEST = IPV6_ADDRESS_VALUE_TEST + "/" + MASK_OK_TEST;
167 private static final Ipv6Prefix IPV6_ADDRESS_PREFIX_TEST = new Ipv6Prefix(IPV6_ADDRESS_PREFIX_VALUE_TEST);
168 private static final Ipv6Address IPV6_ADDRESS_TEST = new Ipv6Address(IPV6_ADDRESS_VALUE_TEST);
169 private static final Ipv6 IPV6 = new Ipv6Builder().setIpv6(IPV6_ADDRESS_TEST).build();
170 private static final Ipv6AddressBinary IPV6_ADDRESS_BINARY_TEST = new Ipv6AddressBinary(IPV6_ADDRESS_BYTES_A_TEST);
171 private static final Ipv6Binary IPV6_BINARY = new Ipv6BinaryBuilder()
172 .setIpv6Binary(IPV6_ADDRESS_BINARY_TEST).build();
173 private static final IpPrefix IP_ADDRESS_PREFIX_WITH_IPV6_TEST = new IpPrefix(IPV6_ADDRESS_PREFIX_TEST);
174 private static final org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp
175 .address.address.Ipv6Prefix IPV6_PREFIX = new Ipv6PrefixBuilder()
176 .setIpv6Prefix(IPV6_ADDRESS_PREFIX_TEST).build();
177 private static final IpAddress IP_ADDRESS_IPV6_TEST = new IpAddress(IPV6_ADDRESS_TEST);
178 private static final Ipv6PrefixBinary IPV6_ADDRESS_PREFIX_BINARY_1 = new Ipv6PrefixBinaryBuilder()
179 .setIpv6AddressBinary(new Ipv6AddressBinary(IPV6_ADDRESS_BYTES_A_TEST))
180 .setIpv6MaskLength(MASK_OK_TEST).build();
181 private static final Ipv6PrefixBinary IPV6_ADDRESS_PREFIX_BINARY_2 = new Ipv6PrefixBinaryBuilder()
182 .setIpv6AddressBinary(new Ipv6AddressBinary(IPV6_ADDRESS_BYTES_A_TEST))
183 .setIpv6MaskLength(MASK_OK_DEFAULT_IPV6_TEST).build();
184 private static final Eid IPV6_ADDRESS_PREFIX_BINARY_EID_1 = new EidBuilder()
185 .setAddress(IPV6_ADDRESS_PREFIX_BINARY_1)
186 .setAddressType(Ipv6PrefixBinaryAfi.class)
187 .setVirtualNetworkId(INSTANCE_ID_TYPE_TEST).build();
188 private static final Eid IPV6_ADDRESS_PREFIX_BINARY_EID_2 = new EidBuilder()
189 .setAddress(IPV6_ADDRESS_PREFIX_BINARY_2)
190 .setAddressType(Ipv6PrefixBinaryAfi.class)
191 .setVirtualNetworkId(INSTANCE_ID_TYPE_TEST).build();
192 private static final Eid IPV6_ADDRESS_BINARY_EID = new EidBuilder()
193 .setAddress(IPV6_BINARY)
194 .setAddressType(Ipv6BinaryAfi.class)
195 .setVirtualNetworkId(INSTANCE_ID_TYPE_TEST).build();
196 private static final Eid IPV6_EID = new EidBuilder()
198 .setAddressType(Ipv6BinaryAfi.class)
199 .setVirtualNetworkId(INSTANCE_ID_TYPE_TEST).build();
201 private static final Short SERVICE_INDEX_TEST = 45;
202 private static final Long DUMMY_SERVICE_PATH_ID_TYPE = 46L;
203 private static final String DISTINGUISHED_NAME_TYPE_VALUE_TEST = "dummy distinguished name type";
204 private static final String DISTINGUISHED_NAME_TYPE_VALUE_WITH_MAC_TEST = MAC_ADDRESS_VALUE_TEST;
205 private static final DistinguishedNameType DISTINGUISHED_NAME_TYPE_TEST = new DistinguishedNameType(
206 DISTINGUISHED_NAME_TYPE_VALUE_TEST);
208 private static final SimpleAddress SIMPLE_ADDRESS_IPV4_TEST = new SimpleAddress(IP_ADDRESS_IPV4_TEST);
209 private static final SimpleAddress SIMPLE_ADDRESS_IPV6_TEST = new SimpleAddress(IP_ADDRESS_IPV6_TEST);
210 private static final SimpleAddress SIMPLE_ADDRESS_MAC_TEST = new SimpleAddress(MAC_ADDRESS_TEST);
211 private static final SimpleAddress SIMPLE_ADDRESS_DISTINGUISHED_TEST =
212 new SimpleAddress(DISTINGUISHED_NAME_TYPE_TEST);
213 private static final SimpleAddress SIMPLE_ADDRESS_IPV4_PREFIX_TEST = new SimpleAddress(
214 IP_ADDRESS_PREFIX_WITH_IPV4_TEST);
215 private static final SimpleAddress SIMPLE_ADDRESS_IPV6_PREFIX_TEST = new SimpleAddress(
216 IP_ADDRESS_PREFIX_WITH_IPV6_TEST);
217 private static final Long SERVICE_PATH_ID_TEST = 2121L;
220 * Tests {@link LispAddressUtil#addressTypeFromSimpleAddress} and {@link
221 * LispAddressUtil#addressFromSimpleAddress} methods
225 public void addressFromSimpleAddressTest_asAnyIpAddress() {
226 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromSimpleAddress(
227 SIMPLE_ADDRESS_IPV4_TEST);
228 assertEquals(Ipv4BinaryAfi.class, addressClass);
230 final Address address = LispAddressUtil.addressFromSimpleAddress(SIMPLE_ADDRESS_IPV4_TEST);
231 assertTrue(address instanceof Ipv4Binary);
235 * Tests {@link LispAddressUtil#addressTypeFromSimpleAddress} and {@link
236 * LispAddressUtil#addressFromSimpleAddress} methods
240 public void addressFromSimpleAddressTest_asIpPrefix() {
241 final SimpleAddress simpleAddress = new SimpleAddress(new IpPrefix(new Ipv4Prefix(
242 IPV4_ADDRESS_PREFIX_VALUE_TEST)));
243 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromSimpleAddress(
245 assertEquals(Ipv4PrefixAfi.class, addressClass);
247 final Address address = LispAddressUtil.addressFromSimpleAddress(simpleAddress);
248 assertTrue(address instanceof org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address
249 .types.rev151105.lisp.address.address.Ipv4Prefix);
253 * Tests {@link LispAddressUtil#addressTypeFromSimpleAddress} and {@link
254 * LispAddressUtil#addressFromSimpleAddress} methods
258 public void addressFromSimpleAddressTest_asMacAddress() {
259 final SimpleAddress simpleAddress = new SimpleAddress(new MacAddress(MAC_ADDRESS_VALUE_TEST));
260 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromSimpleAddress(
262 assertEquals(MacAfi.class, addressClass);
264 final Address address = LispAddressUtil.addressFromSimpleAddress(simpleAddress);
265 assertTrue(address instanceof Mac);
269 * Tests {@link LispAddressUtil#addressTypeFromSimpleAddress} and {@link
270 * LispAddressUtil#addressFromSimpleAddress} methods
271 * with general address.
274 public void addressFromSimpleAddressTest_asAddress() {
275 final SimpleAddress simpleAddress = new SimpleAddress(DUMMY_CHARACTER_ARRAY_TEST);
276 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromSimpleAddress(
278 assertEquals(DistinguishedNameAfi.class, addressClass);
280 final Address address = LispAddressUtil.addressFromSimpleAddress(simpleAddress);
281 assertTrue(address instanceof DistinguishedName);
285 * Tests {@link LispAddressUtil#addressTypeFromSimpleAddress} and {@link
286 * LispAddressUtil#addressFromSimpleAddress} methods
287 * with address as number.
290 public void addressFromSimpleAddressTest_asNumber() {
291 final SimpleAddress simpleAddress = new SimpleAddress(new AsNumber(NUMBER_TEST));
292 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromSimpleAddress(
294 assertEquals(AsNumberAfi.class, addressClass);
296 final Address address = LispAddressUtil.addressFromSimpleAddress(simpleAddress);
297 assertTrue(address instanceof org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address
298 .types.rev151105.lisp.address.address.AsNumber);
302 * Tests {@link LispAddressUtil#addressFromInet(InetAddress)} and {@link LispAddressUtil#addressTypeFromInet
304 * methods with ipv4 address.
307 public void addressFromInet_ipv4() throws UnknownHostException {
308 final InetAddress ipv4InetAddress = Inet4Address.getByAddress(IPV4_ADDRESS_BYTES_A_TEST);
309 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromInet(ipv4InetAddress);
310 assertEquals(Ipv4Afi.class, addressClass);
312 final Address address = LispAddressUtil.addressFromInet(ipv4InetAddress);
313 assertTrue(address instanceof Ipv4);
314 assertEquals(IPV4_ADDRESS_VALUE_TEST, ((Ipv4) address).getIpv4().getValue());
318 * Tests {@link LispAddressUtil#addressFromInet(InetAddress)} and {@link LispAddressUtil#addressTypeFromInet
320 * methods with ipv6 address.
323 public void addressFromInet_ipv6() throws UnknownHostException {
324 final InetAddress ipv6InetAddress = Inet6Address.getByAddress(IPV6_ADDRESS_BYTES_A_TEST);
325 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromInet(ipv6InetAddress);
326 assertEquals(Ipv6Afi.class, addressClass);
328 final Address address = LispAddressUtil.addressFromInet(ipv6InetAddress);
329 assertTrue(address instanceof Ipv6);
330 assertEquals(IPV6_ADDRESS_VALUE_TEST, ((Ipv6) address).getIpv6().getValue());
334 * Tests {@link LispAddressUtil#binaryAddressFromInet(InetAddress)} and
335 * {@link LispAddressUtil#binaryAddressTypeFromInet(InetAddress)} methods with ipv4 address.
338 public void binaryAddressFromInet_ipv4() throws UnknownHostException {
339 final InetAddress ipv4InetAddress = Inet4Address.getByAddress(IPV4_ADDRESS_BYTES_A_TEST);
340 Class<? extends LispAddressFamily> addressClass = LispAddressUtil.binaryAddressTypeFromInet(ipv4InetAddress);
341 assertEquals(Ipv4BinaryAfi.class, addressClass);
343 final Address address = LispAddressUtil.binaryAddressFromInet(ipv4InetAddress);
344 assertTrue(address instanceof Ipv4Binary);
345 assertArrayEquals(IPV4_ADDRESS_BYTES_A_TEST, ((Ipv4Binary) address).getIpv4Binary().getValue());
349 * Tests {@link LispAddressUtil#binaryAddressFromInet(InetAddress)} and
350 * {@link LispAddressUtil#binaryAddressTypeFromInet(InetAddress)} methods with ipv6 address.
353 public void binaryAddressFromInet_ipv6() throws UnknownHostException {
354 final InetAddress ipv6InetAddress = Inet6Address.getByAddress(IPV6_ADDRESS_BYTES_A_TEST);
355 Class<? extends LispAddressFamily> addressClass = LispAddressUtil.binaryAddressTypeFromInet(ipv6InetAddress);
356 assertEquals(Ipv6BinaryAfi.class, addressClass);
358 final Address address = LispAddressUtil.binaryAddressFromInet(ipv6InetAddress);
359 assertTrue(address instanceof Ipv6Binary);
360 assertArrayEquals(IPV6_ADDRESS_BYTES_A_TEST, ((Ipv6Binary) address).getIpv6Binary().getValue());
364 * Tests {@link LispAddressUtil#addressFromIpAddress(IpAddress)} and {@link
365 * LispAddressUtil#addressTypeFromIpAddress(IpAddress)}
366 * methods with ipv4 address.
369 public void addressFromIpAddress_ipv4() {
370 final IpAddress ipv4Address = new IpAddress(IPV4_ADDRESS_TEST);
371 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromIpAddress(ipv4Address);
372 assertEquals(Ipv4Afi.class, addressClass);
374 final Address address = LispAddressUtil.addressFromIpAddress(ipv4Address);
375 assertTrue(address instanceof Ipv4);
376 assertEquals(IPV4_ADDRESS_VALUE_TEST, ((Ipv4) address).getIpv4().getValue());
380 * Tests {@link LispAddressUtil#addressFromIpAddress(IpAddress)} and {@link
381 * LispAddressUtil#addressTypeFromIpAddress(IpAddress)}
382 * methods with ipv6 address.
385 public void addressFromIpAddress_ipv6() {
386 final IpAddress ipv6Address = new IpAddress(new Ipv6Address(IPV6_ADDRESS_VALUE_TEST));
387 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromIpAddress(ipv6Address);
388 assertEquals(Ipv6Afi.class, addressClass);
390 final Address address = LispAddressUtil.addressFromIpAddress(ipv6Address);
391 assertTrue(address instanceof Ipv6);
392 assertEquals(IPV6_ADDRESS_VALUE_TEST, ((Ipv6) address).getIpv6().getValue());
396 * Tests {@link LispAddressUtil#addressFromIpAddress(IpAddress)} and {@link
397 * LispAddressUtil#addressTypeFromIpAddress(IpAddress)}
398 * methods with null value instead off address.
401 public void addressFromIpAddress_null() {
402 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromIpAddress(null);
403 assertNull(addressClass);
405 final Address address = LispAddressUtil.addressFromIpAddress(null);
410 * Tests {@link LispAddressUtil#binaryAddressFromIpAddress(IpAddress)} and {@link
411 * LispAddressUtil#binaryAddressTypeFromIpAddress(IpAddress)}
412 * methods with Ipv4Binary address.
415 public void binaryAddressFromIpAddress_Ipv4Binary() {
416 final IpAddress ipv4Address = new IpAddress(new Ipv4Address(IPV4_ADDRESS_VALUE_TEST));
417 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil
418 .binaryAddressTypeFromIpAddress(ipv4Address);
419 assertEquals(Ipv4BinaryAfi.class, addressClass);
421 final Address address = LispAddressUtil.binaryAddressFromIpAddress(ipv4Address);
422 assertEquals(IPV4_BINARY, address);
426 * Tests {@link LispAddressUtil#binaryAddressFromIpAddress(IpAddress)} and {@link
427 * LispAddressUtil#binaryAddressTypeFromIpAddress(IpAddress)}
428 * methods with Ipv6Binary address.
431 public void binaryAddressFromIpAddress_Ipv6Binary() {
432 final IpAddress ipv6Address = new IpAddress(new Ipv6Address(IPV6_ADDRESS_VALUE_TEST));
433 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil
434 .binaryAddressTypeFromIpAddress(ipv6Address);
435 assertEquals(Ipv6BinaryAfi.class, addressClass);
437 final Address address = LispAddressUtil.binaryAddressFromIpAddress(ipv6Address);
438 assertEquals(IPV6_BINARY, address);
442 * Tests {@link LispAddressUtil#binaryAddressFromIpAddress(IpAddress)} and {@link
443 * LispAddressUtil#binaryAddressTypeFromIpAddress(IpAddress)}
444 * methods with Ipv6Binary address.
447 public void binaryAddressFromIpAddress_null() {
448 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.binaryAddressTypeFromIpAddress(null);
449 assertNull(addressClass);
451 final Address address = LispAddressUtil.binaryAddressFromIpAddress(null);
456 * Tests {@link LispAddressUtil#addressFromIpPrefix(IpPrefix)} and {@link
457 * LispAddressUtil#addressTypeFromIpPrefix(IpPrefix)}
458 * methods with ipv4 address.
461 public void addressFromIpPrefix_ipv4() {
462 IpPrefix ipv4Prefix = new IpPrefix(new Ipv4Prefix(IPV4_ADDRESS_PREFIX_VALUE_TEST));
463 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromIpPrefix(ipv4Prefix);
464 assertEquals(Ipv4PrefixAfi.class, addressClass);
466 final Address address = LispAddressUtil.addressFromIpPrefix(ipv4Prefix);
467 assertTrue(address instanceof org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address
468 .types.rev151105.lisp.address.address.Ipv4Prefix);
469 assertEquals(IPV4_ADDRESS_PREFIX_VALUE_TEST, ((org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf
470 .lisp.address.types.rev151105.lisp.address.address.Ipv4Prefix) address).getIpv4Prefix().getValue());
474 * Tests {@link LispAddressUtil#addressFromIpPrefix(IpPrefix)} and {@link
475 * LispAddressUtil#addressTypeFromIpPrefix(IpPrefix)}
476 * methods with ipv6 address.
479 public void addressFromIpPrefix_ipv6() {
480 IpPrefix ipv6Address = new IpPrefix(new Ipv6Prefix(IPV6_ADDRESS_PREFIX_VALUE_TEST));
481 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromIpPrefix(ipv6Address);
482 assertEquals(Ipv6PrefixAfi.class, addressClass);
484 final Address address = LispAddressUtil.addressFromIpPrefix(ipv6Address);
485 assertTrue(address instanceof org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address
486 .types.rev151105.lisp.address.address.Ipv6Prefix);
487 assertEquals(IPV6_ADDRESS_PREFIX_VALUE_TEST,
488 ((org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp
489 .address.address.Ipv6Prefix) address).getIpv6Prefix().getValue());
493 * Tests {@link LispAddressUtil#addressFromIpPrefix(IpPrefix)} and {@link LispAddressUtil#addressTypeFromIpPrefix
495 * methods with null value instead off address.
498 public void addressFromIpPrefix_null() {
499 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromIpPrefix(null);
500 assertNull(addressClass);
502 final Address address = LispAddressUtil.addressFromIpPrefix(null);
507 * Tests {@link LispAddressUtil#addressFromMacAddress(MacAddress)} methods with mac address.
510 public void addressFromMacAddress_mac() {
511 final Address address = LispAddressUtil.addressFromMacAddress(new MacAddress(MAC_ADDRESS_VALUE_TEST));
512 assertTrue(address instanceof Mac);
513 assertEquals(MAC_ADDRESS_VALUE_TEST, ((Mac) address).getMac().getValue());
517 * Tests {@link LispAddressUtil#addressFromMacAddress(MacAddress)} methods with null instead of address.
520 public void addressFromMacAddress_null() {
521 final Address address = LispAddressUtil.addressFromMacAddress(null);
527 * Test {@link LispAddressUtil#addressFromServicePath(ServicePath)} method with concrete servicePath.
530 public void addressFromServicePathTest_withServicePath() {
531 org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address
532 .address.service.path.ServicePathBuilder servicePathBuilder = new org.opendaylight.yang.gen.v1.urn.ietf
533 .params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address
534 .address.service.path.ServicePathBuilder();
535 servicePathBuilder.setServiceIndex(SERVICE_INDEX_TEST);
536 servicePathBuilder.setServicePathId(new ServicePathIdType(DUMMY_SERVICE_PATH_ID_TYPE));
538 ServicePath expectedAddress = servicePathBuilder.build();
539 final Address testedAddress = LispAddressUtil.addressFromServicePath(expectedAddress);
540 assertTrue(testedAddress instanceof org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address
541 .types.rev151105.lisp.address.address.ServicePath);
542 assertEquals(expectedAddress, ((org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address
543 .types.rev151105.lisp.address.address.ServicePath) testedAddress).getServicePath());
547 * Test {@link LispAddressUtil#addressFromServicePath(ServicePath)} method with null value.
550 public void addressFromServicePathTest_withNull() {
551 final Address testedAddress = LispAddressUtil.addressFromServicePath(null);
552 assertNull(testedAddress);
556 * Test {@link LispAddressUtil#addressFromDistinguishedName(DistinguishedNameType)} method with distinguished name.
559 public void addressFromDistinguishedNameTest_withDistinguishedName() {
560 final DistinguishedNameType distinguishedNameType = new DistinguishedNameType(
561 DISTINGUISHED_NAME_TYPE_VALUE_TEST);
562 final Address testedAddress = LispAddressUtil.addressFromDistinguishedName(distinguishedNameType);
564 assertTrue(testedAddress instanceof DistinguishedName);
565 assertEquals(distinguishedNameType, ((DistinguishedName) testedAddress).getDistinguishedName());
569 * Test {@link LispAddressUtil#addressFromDistinguishedName(DistinguishedNameType)} method with null value.
572 public void addressFromDistinguishedNameTest_withNull() {
573 final Address testedAddress = LispAddressUtil.addressFromDistinguishedName(null);
574 assertNull(testedAddress);
578 * Test {@link LispAddressUtil#addressFromAsNumber(AsNumber)} method with as number value.
581 public void addressFromAsNumberTest_withAdNumber() {
582 final AsNumber expectedAddress = new AsNumber(AS_NUMBER_TEST);
583 final Address testedAddress = LispAddressUtil.addressFromAsNumber(expectedAddress);
584 assertTrue(testedAddress instanceof org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp
585 .address.types.rev151105.lisp.address.address.AsNumber);
586 assertEquals(expectedAddress, ((org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp
587 .address.types.rev151105.lisp.address.address.AsNumber) testedAddress).getAsNumber());
591 * Test {@link LispAddressUtil#addressFromAsNumber(AsNumber)} method with null instead of value.
594 public void addressFromAsNumberTest_withNull() {
595 final Address testedAddress = LispAddressUtil.addressFromAsNumber(null);
596 assertNull(testedAddress);
602 * - {@link LispAddressUtil#toRloc(InetAddress)}
603 * - {@link LispAddressUtil#toRloc(Ipv4Address)}
604 * - {@link LispAddressUtil#toRloc(Ipv6Address)}
605 * - {@link LispAddressUtil#toRloc(SimpleAddress)}
609 public void toRloc() throws UnknownHostException {
610 InetAddress ipv4AddressInet = Inet4Address.getByAddress(IPV4_ADDRESS_BYTES_A_TEST);
611 final Rloc rlocFromInetAddress = LispAddressUtil.toRloc(ipv4AddressInet);
612 assertEquals(Ipv4BinaryAfi.class, rlocFromInetAddress.getAddressType());
613 assertEquals(IPV4_ADDRESS_BINARY_TEST, ((Ipv4Binary) rlocFromInetAddress.getAddress()).getIpv4Binary());
615 final Rloc rlocFromIpv4Address = LispAddressUtil.toRloc(IPV4_ADDRESS_TEST);
616 assertEquals(Ipv4Afi.class, rlocFromIpv4Address.getAddressType());
617 assertEquals(IPV4_ADDRESS_VALUE_TEST, ((Ipv4) rlocFromIpv4Address.getAddress()).getIpv4().getValue());
620 final Rloc rlocFromIpv6Address = LispAddressUtil.toRloc(IPV6_ADDRESS_TEST);
621 assertEquals(Ipv6Afi.class, rlocFromIpv6Address.getAddressType());
622 assertEquals(IPV6_ADDRESS_VALUE_TEST, ((Ipv6) rlocFromIpv6Address.getAddress()).getIpv6().getValue());
624 final Rloc rlocFromSimpleAddress = LispAddressUtil.toRloc(SIMPLE_ADDRESS_IPV4_TEST);
625 assertEquals(Ipv4BinaryAfi.class, rlocFromSimpleAddress.getAddressType());
626 assertEquals(IPV4_ADDRESS_BINARY_TEST, ((Ipv4Binary) rlocFromSimpleAddress.getAddress()).getIpv4Binary());
630 * Test {@link LispAddressUtil#asIpv4Rloc(String)} method with ipv4 or ipv6.
631 * Test {@link LispAddressUtil#asIpv6Rloc(String)} method with ipv4 or ipv6.
634 public void asIpvRloc() {
635 final Rloc rlocFromIpV4 = LispAddressUtil.asIpv4Rloc(IPV4_ADDRESS_VALUE_TEST);
636 assertEquals(Ipv4BinaryAfi.class, rlocFromIpV4.getAddressType());
637 assertEquals(IPV4_ADDRESS_BINARY_TEST, ((Ipv4Binary) rlocFromIpV4.getAddress()).getIpv4Binary());
639 final Rloc rlocFromIpV6 = LispAddressUtil.asIpv6Rloc(IPV6_ADDRESS_VALUE_TEST);
640 assertEquals(Ipv6BinaryAfi.class, rlocFromIpV6.getAddressType());
641 assertEquals(IPV6_ADDRESS_BINARY_TEST, ((Ipv6Binary) rlocFromIpV6.getAddress()).getIpv6Binary());
646 * - {@link LispAddressUtil#toEid(Ipv6Address, InstanceIdType)}
647 * - {@link LispAddressUtil#asIpv6PrefixEid(String)}
648 * - {@link LispAddressUtil#asIpv6PrefixEid(Eid, Inet6Address, short)}
649 * - {@link LispAddressUtil#asIpv6PrefixEid(Ipv6Address, InstanceIdType)}
653 public void toEid_ipv6Prefix() throws UnknownHostException {
654 final Inet6Address inet6Address = (Inet6Address) Inet6Address.getByName(IPV6_ADDRESS_VALUE_TEST);
656 Eid eidFromIpv6Prefix = LispAddressUtil.toEid(IPV6_ADDRESS_PREFIX_TEST, INSTANCE_ID_TYPE_TEST);
657 verifyToEidWithIpv6Prefix(eidFromIpv6Prefix, true, MASK_OK_TEST, Ipv6PrefixAfi.class);
659 eidFromIpv6Prefix = LispAddressUtil.asIpv6PrefixEid(IPV6_ADDRESS_PREFIX_VALUE_TEST);
660 verifyToEidWithIpv6Prefix(eidFromIpv6Prefix, false, MASK_OK_TEST, Ipv6PrefixAfi.class);
662 eidFromIpv6Prefix = LispAddressUtil.asIpv6PrefixEid(IPV6_ADDRESS_PREFIX_BINARY_EID_1, inet6Address,
663 MASK_OK_DEFAULT_IPV6_TEST);
664 verifyToEidWithIpv6Prefix(eidFromIpv6Prefix, true, MASK_OK_DEFAULT_IPV6_TEST, Ipv6PrefixAfi.class);
666 eidFromIpv6Prefix = LispAddressUtil.asIpv6PrefixEid(IPV6_ADDRESS_TEST, INSTANCE_ID_TYPE_TEST);
667 verifyToEidWithIpv6Prefix(eidFromIpv6Prefix, true, MASK_OK_DEFAULT_IPV6_TEST, Ipv6PrefixAfi.class);
672 * - {@link LispAddressUtil#toEid(MacAddress, InstanceIdType)}
673 * - {@link LispAddressUtil#asMacEid(String)}
674 * - {@link LispAddressUtil#asMacEid(String, long)}
678 public void toEid_mac() {
679 Eid eidFromMac = LispAddressUtil.toEid(MAC_ADDRESS_TEST, INSTANCE_ID_TYPE_TEST);
680 verifyToEidWithMacAddress(eidFromMac, true);
682 eidFromMac = LispAddressUtil.asMacEid(MAC_ADDRESS_VALUE_TEST);
683 verifyToEidWithMacAddress(eidFromMac, false);
685 eidFromMac = LispAddressUtil.asMacEid(MAC_ADDRESS_VALUE_TEST, INSTANCE_ID_TYPE_VALUE_TEST);
686 verifyToEidWithMacAddress(eidFromMac, true);
691 * - {@link LispAddressUtil#toEid(Ipv6Address, InstanceIdType)}
692 * - {@link LispAddressUtil#toEid(Ipv6AddressBinary, InstanceIdType)}
693 * - {@link LispAddressUtil#asIpv6Eid(String)}
694 * - {@link LispAddressUtil#asIpv6Eid(String, long)}
698 public void toEid_ipv6() {
699 Eid eidFromIpv6 = LispAddressUtil.toEid(IPV6_ADDRESS_TEST, INSTANCE_ID_TYPE_TEST);
700 verifyToEidWithIpv6(eidFromIpv6, true);
702 eidFromIpv6 = LispAddressUtil.toEid(IPV6_ADDRESS_BINARY_TEST, INSTANCE_ID_TYPE_TEST);
703 verifyToEidWithIpv6Binary(eidFromIpv6, true);
705 eidFromIpv6 = LispAddressUtil.asIpv6Eid(IPV6_ADDRESS_VALUE_TEST);
706 verifyToEidWithIpv6Binary(eidFromIpv6, false);
708 eidFromIpv6 = LispAddressUtil.asIpv6Eid(IPV6_ADDRESS_VALUE_TEST, INSTANCE_ID_TYPE_VALUE_TEST);
709 verifyToEidWithIpv6Binary(eidFromIpv6, true);
714 * - {@link LispAddressUtil#toEid(Ipv4Prefix, InstanceIdType)}
715 * - {@link LispAddressUtil#asIpv4PrefixEid(String)}
716 * - {@link LispAddressUtil#asIpv4PrefixEid(Eid, Inet4Address, short)}
717 * - {@link LispAddressUtil#asIpv4PrefixEid(Ipv4Address, InstanceIdType)} }
721 public void toEid_ipv4Prefix() throws UnknownHostException {
722 final Inet4Address inet4Address = (Inet4Address) Inet4Address.getByName(IPV4_ADDRESS_VALUE_TEST);
724 Eid eidFromIpv4Prefix = LispAddressUtil.toEid(IPV4_ADDRESS_PREFIX_TEST, INSTANCE_ID_TYPE_TEST);
725 verifyToEidWithIpv4Prefix(eidFromIpv4Prefix, true, MASK_OK_TEST, Ipv4PrefixAfi.class);
727 eidFromIpv4Prefix = LispAddressUtil.asIpv4PrefixEid(IPV4_ADDRESS_PREFIX_VALUE_TEST);
728 verifyToEidWithIpv4Prefix(eidFromIpv4Prefix, false, MASK_OK_TEST, Ipv4PrefixAfi.class);
730 eidFromIpv4Prefix = LispAddressUtil.asIpv4PrefixEid(IPV4_ADDRESS_PREFIX_BINARY_EID_1, inet4Address,
731 MASK_OK_DEFAULT_IPV4_TEST);
732 verifyToEidWithIpv4Prefix(eidFromIpv4Prefix, true, MASK_OK_DEFAULT_IPV4_TEST, Ipv4PrefixAfi.class);
734 eidFromIpv4Prefix = LispAddressUtil.asIpv4PrefixEid(IPV4_ADDRESS_TEST, INSTANCE_ID_TYPE_TEST);
735 verifyToEidWithIpv4Prefix(eidFromIpv4Prefix, true, MASK_OK_DEFAULT_IPV4_TEST, Ipv4PrefixAfi.class);
740 * - {@link LispAddressUtil#toEid(Ipv4PrefixBinary, InstanceIdType)}
741 * - {@link LispAddressUtil#asIpv4PrefixBinaryEid(String)}
742 * - {@link LispAddressUtil#asIpv4PrefixBinaryEid(String, InstanceIdType)}
743 * - {@link LispAddressUtil#asIpv4PrefixBinaryEid(Eid, byte[], short)}
747 public void toEid_ipv4PrefixBinary() {
748 Eid eidFromIpv4PrefixBinary = LispAddressUtil.toEid(IPV4_ADDRESS_PREFIX_BINARY_1, INSTANCE_ID_TYPE_TEST);
749 verifyToEidWithIpv4PrefixBinary(eidFromIpv4PrefixBinary, true, MASK_OK_TEST, Ipv4PrefixBinaryAfi.class);
751 eidFromIpv4PrefixBinary = LispAddressUtil.asIpv4PrefixBinaryEid(IPV4_ADDRESS_PREFIX_VALUE_TEST);
752 verifyToEidWithIpv4PrefixBinary(eidFromIpv4PrefixBinary, false, MASK_OK_TEST, Ipv4PrefixBinaryAfi.class);
754 eidFromIpv4PrefixBinary = LispAddressUtil.asIpv4PrefixBinaryEid(IPV4_ADDRESS_PREFIX_VALUE_TEST,
755 INSTANCE_ID_TYPE_TEST);
756 verifyToEidWithIpv4PrefixBinary(eidFromIpv4PrefixBinary, true, MASK_OK_TEST, Ipv4PrefixBinaryAfi.class);
758 eidFromIpv4PrefixBinary = LispAddressUtil.asIpv4PrefixBinaryEid(IPV4_ADDRESS_PREFIX_BINARY_EID_1,
759 IPV4_ADDRESS_BYTES_A_TEST, MASK_OK_TEST);
760 verifyToEidWithIpv4PrefixBinary(eidFromIpv4PrefixBinary, true, MASK_OK_TEST, Ipv4PrefixBinaryAfi.class);
765 * - {@link LispAddressUtil#toEid(Ipv6PrefixBinary, InstanceIdType)}
766 * - {@link LispAddressUtil#asIpv6PrefixBinaryEid(String)}
767 * - {@link LispAddressUtil#asIpv6PrefixBinaryEid(String, InstanceIdType)}
768 * - {@link LispAddressUtil#asIpv6PrefixBinaryEid(Eid, byte[], short)}
772 public void toEid_ipv6PrefixBinary() {
773 Eid eidFromIpv6PrefixBinary = LispAddressUtil.toEid(IPV6_ADDRESS_PREFIX_BINARY_1, INSTANCE_ID_TYPE_TEST);
774 verifyToEidWithIpv6PrefixBinary(eidFromIpv6PrefixBinary, true, MASK_OK_TEST, Ipv6PrefixBinaryAfi.class);
776 eidFromIpv6PrefixBinary = LispAddressUtil.asIpv6PrefixBinaryEid(IPV6_ADDRESS_PREFIX_VALUE_TEST);
777 verifyToEidWithIpv6PrefixBinary(eidFromIpv6PrefixBinary, false, MASK_OK_TEST, Ipv6PrefixBinaryAfi.class);
779 eidFromIpv6PrefixBinary = LispAddressUtil.asIpv6PrefixBinaryEid(IPV6_ADDRESS_PREFIX_VALUE_TEST,
780 INSTANCE_ID_TYPE_TEST);
781 verifyToEidWithIpv6PrefixBinary(eidFromIpv6PrefixBinary, true, MASK_OK_TEST, Ipv6PrefixBinaryAfi.class);
783 eidFromIpv6PrefixBinary = LispAddressUtil.asIpv6PrefixBinaryEid(IPV6_ADDRESS_PREFIX_BINARY_EID_1,
784 IPV6_ADDRESS_BYTES_A_TEST, MASK_OK_TEST);
785 verifyToEidWithIpv6PrefixBinary(eidFromIpv6PrefixBinary, true, MASK_OK_TEST, Ipv6PrefixBinaryAfi.class);
790 * - {@link LispAddressUtil#toEid(Ipv4Address, InstanceIdType)}
791 * - {@link LispAddressUtil#toEid(Ipv4AddressBinary, InstanceIdType)}
792 * - {@link LispAddressUtil#asIpv4Eid(String)}
793 * - {@link LispAddressUtil#asIpv4Eid(String, long)}
797 public void toEid_ipv4() {
798 Eid eidFromIpv4 = LispAddressUtil.toEid(IPV4_ADDRESS_TEST, INSTANCE_ID_TYPE_TEST);
799 verifyToEidWithIpv4(eidFromIpv4, true);
801 eidFromIpv4 = LispAddressUtil.toEid(IPV4_ADDRESS_BINARY_TEST, INSTANCE_ID_TYPE_TEST);
802 verifyToEidWithIpv4Binary(eidFromIpv4, true);
804 eidFromIpv4 = LispAddressUtil.asIpv4Eid(IPV4_ADDRESS_VALUE_TEST);
805 verifyToEidWithIpv4Binary(eidFromIpv4, false);
807 eidFromIpv4 = LispAddressUtil.asIpv4Eid(IPV4_ADDRESS_VALUE_TEST, INSTANCE_ID_TYPE_VALUE_TEST);
808 verifyToEidWithIpv4Binary(eidFromIpv4, true);
813 * - {@link LispAddressUtil#toEid(IpPrefix, InstanceIdType)}
817 public void toEid_ipPrefix() {
818 final Eid eidFromIpPrefix = LispAddressUtil.toEid(IP_ADDRESS_PREFIX_WITH_IPV4_TEST, INSTANCE_ID_TYPE_TEST);
819 verifyToEidWithIpv4Prefix(eidFromIpPrefix, true, MASK_OK_TEST, Ipv4PrefixAfi.class);
824 * - {@link LispAddressUtil#toEid(DistinguishedNameType, InstanceIdType)}
825 * - {@link LispAddressUtil#asDistinguishedNameEid(String)}
826 * - {@link LispAddressUtil#asDistinguishedNameEid(String, long)}
827 * methods with various input.
830 public void toEid_distinguishedName() {
831 Eid eidFromDistinguishedName = LispAddressUtil.toEid(DISTINGUISHED_NAME_TYPE_TEST, INSTANCE_ID_TYPE_TEST);
832 verifyToEidWithDistinguishedName(eidFromDistinguishedName, true);
834 eidFromDistinguishedName = LispAddressUtil.asDistinguishedNameEid(DISTINGUISHED_NAME_TYPE_VALUE_TEST);
835 verifyToEidWithDistinguishedName(eidFromDistinguishedName, false);
837 eidFromDistinguishedName = LispAddressUtil.asDistinguishedNameEid(
838 DISTINGUISHED_NAME_TYPE_VALUE_WITH_MAC_TEST, INSTANCE_ID_TYPE_VALUE_TEST);
839 verifyToEidWithMacAddress(eidFromDistinguishedName, true);
842 private void verifyToEidWithIpv6Prefix(final Eid eidFromIpv6Prefix, final boolean isVniChecked, short
843 expectedMask, final Class<? extends org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp
844 .address.types.rev151105.LispAddressFamily> addressType) {
845 assertEquals(addressType, eidFromIpv6Prefix.getAddressType());
847 assertEquals(INSTANCE_ID_TYPE_TEST, eidFromIpv6Prefix.getVirtualNetworkId());
849 assertEquals(IPV6_ADDRESS_VALUE_TEST + "/" + expectedMask, ((org.opendaylight.yang.gen.v1.urn.ietf.params.xml
850 .ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.Ipv6Prefix) eidFromIpv6Prefix
851 .getAddress()).getIpv6Prefix().getValue());
854 private void verifyToEidWithIpv6PrefixBinary(final Eid eidFromIpv6PrefixBinary, final boolean isVniChecked, short
855 expectedMask, final Class<? extends org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp
856 .address.types.rev151105.LispAddressFamily> addressType) {
857 assertEquals(addressType, eidFromIpv6PrefixBinary.getAddressType());
859 assertEquals(INSTANCE_ID_TYPE_TEST, eidFromIpv6PrefixBinary.getVirtualNetworkId());
861 assertArrayEquals(IPV6_ADDRESS_BYTES_A_TEST, ((Ipv6PrefixBinary) eidFromIpv6PrefixBinary
862 .getAddress()).getIpv6AddressBinary().getValue());
863 assertEquals(expectedMask,
864 (short) ((Ipv6PrefixBinary) eidFromIpv6PrefixBinary.getAddress()).getIpv6MaskLength());
867 private void verifyToEidWithIpv4(final Eid eidFromIpv4, final boolean isVniChecked) {
868 assertEquals(Ipv4Afi.class, eidFromIpv4.getAddressType());
870 assertEquals(INSTANCE_ID_TYPE_TEST, eidFromIpv4.getVirtualNetworkId());
872 assertEquals(IPV4_ADDRESS_VALUE_TEST, ((Ipv4) eidFromIpv4.getAddress()).getIpv4().getValue());
875 private void verifyToRlocWithIpv4(final Rloc rlocFromIpv4, final boolean isVniChecked) {
876 assertEquals(Ipv4Afi.class, rlocFromIpv4.getAddressType());
878 assertEquals(INSTANCE_ID_TYPE_TEST, rlocFromIpv4.getVirtualNetworkId());
880 assertEquals(IPV4_ADDRESS_VALUE_TEST, ((Ipv4) rlocFromIpv4.getAddress()).getIpv4().getValue());
883 private void verifyToEidWithIpv4Binary(final Eid eidFromIpv4, final boolean isVniChecked) {
884 assertEquals(Ipv4BinaryAfi.class, eidFromIpv4.getAddressType());
886 assertEquals(INSTANCE_ID_TYPE_TEST, eidFromIpv4.getVirtualNetworkId());
888 assertArrayEquals(IPV4_ADDRESS_BYTES_A_TEST,
889 ((Ipv4Binary) eidFromIpv4.getAddress()).getIpv4Binary().getValue());
892 private void verifyToRlocWithIpv4Binary(final Rloc rlocFromIpv4, final boolean isVniChecked) {
893 assertEquals(Ipv4BinaryAfi.class, rlocFromIpv4.getAddressType());
895 assertEquals(INSTANCE_ID_TYPE_TEST, rlocFromIpv4.getVirtualNetworkId());
897 assertArrayEquals(IPV4_ADDRESS_BYTES_A_TEST,
898 ((Ipv4Binary) rlocFromIpv4.getAddress()).getIpv4Binary().getValue());
901 private void verifyToEidWithIpv6(final Eid eidFromIpv6, final boolean isVniChecked) {
902 assertEquals(Ipv6Afi.class, eidFromIpv6.getAddressType());
904 assertEquals(INSTANCE_ID_TYPE_TEST, eidFromIpv6.getVirtualNetworkId());
906 assertEquals(IPV6_ADDRESS_VALUE_TEST, ((Ipv6) eidFromIpv6.getAddress()).getIpv6().getValue());
909 private void verifyToEidWithIpv4Prefix(final Eid eidFromIpv4Prefix, final boolean isVniChecked, short
910 expectedMask, Class<? extends org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address
911 .types.rev151105.LispAddressFamily> addressType) {
912 assertEquals(addressType, eidFromIpv4Prefix.getAddressType());
914 assertEquals(INSTANCE_ID_TYPE_TEST, eidFromIpv4Prefix.getVirtualNetworkId());
916 assertEquals(IPV4_ADDRESS_VALUE_TEST + "/" + expectedMask, ((org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns
918 .lisp.address.types.rev151105.lisp.address.address.Ipv4Prefix) eidFromIpv4Prefix.getAddress())
919 .getIpv4Prefix().getValue());
922 private void verifyToEidWithIpv4PrefixBinary(final Eid eidFromIpv4PrefixBinary, final boolean isVniChecked, short
923 expectedMask, Class<? extends org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address
924 .types.rev151105.LispAddressFamily> addressType) {
925 assertEquals(addressType, eidFromIpv4PrefixBinary.getAddressType());
927 assertEquals(INSTANCE_ID_TYPE_TEST, eidFromIpv4PrefixBinary.getVirtualNetworkId());
929 assertArrayEquals(IPV4_ADDRESS_BYTES_A_TEST,
930 ((Ipv4PrefixBinary) eidFromIpv4PrefixBinary.getAddress()).getIpv4AddressBinary().getValue());
931 assertEquals(expectedMask,
932 (short) ((Ipv4PrefixBinary) eidFromIpv4PrefixBinary.getAddress()).getIpv4MaskLength());
935 private void verifyToEidWithIpv6Binary(final Eid eidFromIpv6, final boolean isVniChecked) {
936 assertEquals(Ipv6BinaryAfi.class, eidFromIpv6.getAddressType());
938 assertEquals(INSTANCE_ID_TYPE_TEST, eidFromIpv6.getVirtualNetworkId());
940 assertArrayEquals(IPV6_ADDRESS_BYTES_A_TEST,
941 ((Ipv6Binary) eidFromIpv6.getAddress()).getIpv6Binary().getValue());
944 private void verifyToEidWithDistinguishedName(final Eid eidFromDistinguishedName, final boolean isVniChecked) {
945 assertEquals(DistinguishedNameAfi.class, eidFromDistinguishedName.getAddressType());
947 assertEquals(INSTANCE_ID_TYPE_TEST, eidFromDistinguishedName.getVirtualNetworkId());
949 assertEquals(DISTINGUISHED_NAME_TYPE_TEST, ((DistinguishedName) eidFromDistinguishedName.getAddress())
950 .getDistinguishedName());
953 private void verifyToEidWithMacAddress(final Eid eidFromMac, final boolean isVniChecked) {
954 assertEquals(MacAfi.class, eidFromMac.getAddressType());
956 assertEquals(INSTANCE_ID_TYPE_TEST, eidFromMac.getVirtualNetworkId());
958 assertEquals(MAC_ADDRESS_VALUE_TEST, ((Mac) eidFromMac.getAddress()).getMac().getValue());
962 * Tests {@link LispAddressUtil#asIpPrefix(String, int)} with ipv4 address and correct mask.
965 public void asIpPrefix_ipv4() {
966 final IpPrefix ipPrefix = LispAddressUtil.asIpPrefix(IPV4_ADDRESS_VALUE_TEST, MASK_OK_TEST);
967 assertNotNull(ipPrefix);
968 final Ipv4Prefix ipv4Prefix = ipPrefix.getIpv4Prefix();
969 assertNotNull(ipv4Prefix);
970 assertEquals(IPV4_ADDRESS_PREFIX_TEST, ipv4Prefix);
974 * Tests {@link LispAddressUtil#asIpPrefix(String, int)} with ipv6 address and correct mask.
977 public void asIpPrefix_ipv6() {
978 final IpPrefix ipPrefix = LispAddressUtil.asIpPrefix(IPV6_ADDRESS_VALUE_TEST, MASK_OK_TEST);
979 assertNotNull(ipPrefix);
980 final Ipv6Prefix ipv6Prefix = ipPrefix.getIpv6Prefix();
981 assertNotNull(ipv6Prefix);
982 assertEquals(IPV6_ADDRESS_PREFIX_TEST, ipv6Prefix);
986 * Tests {@link LispAddressUtil#asIpPrefix(String, int)} with incorrect ip address and correct mask.
989 public void asIpPrefix_other() {
990 final IpPrefix ipPrefix = LispAddressUtil.asIpPrefix(INCORRECT_IP_ADDRESS_TEST, MASK_OK_TEST);
991 assertNull(ipPrefix);
995 * Tests {@link LispAddressUtil#asBinaryEid(SimpleAddress, InstanceIdType)} method with ipv4Prefix.
998 public void asBinaryEidTest_ipv4Prefix() {
999 final Eid result = LispAddressUtil.asBinaryEid(SIMPLE_ADDRESS_IPV4_PREFIX_TEST, INSTANCE_ID_TYPE_TEST);
1000 assertEquals(IPV4_ADDRESS_PREFIX_BINARY_EID_1, result);
1004 * Tests {@link LispAddressUtil#asBinaryEid(SimpleAddress, InstanceIdType)} method with ipv6Prefix.
1007 public void asBinaryEidTest_ipv6Prefix() {
1008 final Eid result = LispAddressUtil.asBinaryEid(SIMPLE_ADDRESS_IPV6_PREFIX_TEST, INSTANCE_ID_TYPE_TEST);
1009 assertEquals(IPV6_ADDRESS_PREFIX_BINARY_EID_1, result);
1013 * Tests {@link LispAddressUtil#asBinaryEid(SimpleAddress, InstanceIdType)} method with ipv4.
1016 public void asBinaryEidTest_ipv4() {
1017 final Eid result = LispAddressUtil.asBinaryEid(SIMPLE_ADDRESS_IPV4_TEST, INSTANCE_ID_TYPE_TEST);
1018 assertEquals(IPV4_ADDRESS_BINARY_EID, result);
1022 * Tests {@link LispAddressUtil#asBinaryEid(SimpleAddress, InstanceIdType)} method with ipv6.
1025 public void asBinaryEidTest_ipv6() {
1026 final Eid result = LispAddressUtil.asBinaryEid(SIMPLE_ADDRESS_IPV6_TEST, INSTANCE_ID_TYPE_TEST);
1027 assertEquals(IPV6_ADDRESS_BINARY_EID, result);
1031 * Tests {@link LispAddressUtil#asBinaryEid(SimpleAddress, InstanceIdType)} method with mac.
1034 public void asBinaryEidTest_mac() {
1035 final Eid result = LispAddressUtil.asBinaryEid(SIMPLE_ADDRESS_MAC_TEST, INSTANCE_ID_TYPE_TEST);
1036 assertEquals(MAC_ADDRESS_EID, result);
1040 * Tests {@link LispAddressUtil#asIpPrefixBinaryEid(Eid)} method with Ipv4Binary.
1043 public void asIpPrefixBinaryEid_Ipv4Binary() {
1044 assertEquals(IPV4_ADDRESS_PREFIX_BINARY_EID_2, LispAddressUtil.asIpPrefixBinaryEid(IPV4_ADDRESS_BINARY_EID));
1048 * Tests {@link LispAddressUtil#asIpPrefixBinaryEid(Eid)} method with Ipv6Binary.
1051 public void asIpPrefixBinaryEid_Ipv6Binary() {
1052 assertEquals(IPV6_ADDRESS_PREFIX_BINARY_EID_2, LispAddressUtil.asIpPrefixBinaryEid(IPV6_ADDRESS_BINARY_EID));
1056 * Tests {@link LispAddressUtil#asIpPrefixBinaryEid(Eid)} method with Ipv4.
1059 public void asIpPrefixBinaryEid_Ipv4() {
1060 assertEquals(IPV4_ADDRESS_PREFIX_BINARY_EID_2, LispAddressUtil.asIpPrefixBinaryEid(IPV4_EID));
1064 * Tests {@link LispAddressUtil#asIpPrefixBinaryEid(Eid)} method with Ipv4.
1067 public void asIpPrefixBinaryEid_Ipv6() {
1068 assertEquals(IPV6_ADDRESS_PREFIX_BINARY_EID_2, LispAddressUtil.asIpPrefixBinaryEid(IPV6_EID));
1072 * Tests {@link LispAddressUtil#asIpPrefixBinaryEid(Eid)} method with Ipv4Prefix.
1075 public void asIpPrefixBinaryEid_Ipv4Prefix() {
1076 assertEquals(IPV4_ADDRESS_PREFIX_BINARY_EID_1, LispAddressUtil.asIpPrefixBinaryEid(IPV4_PREFIX_EID));
1080 * Tests {@link LispAddressUtil#ipVersionFromString(String)} with ipv4.
1083 public void ipVersionFromString_ipv4() {
1084 final int addressType = LispAddressUtil.ipVersionFromString(IPV4_ADDRESS_VALUE_TEST);
1085 assertEquals(4, addressType);
1089 * Tests {@link LispAddressUtil#ipVersionFromString(String)} with ipv6.
1092 public void ipVersionFromString_ipv6() {
1093 final int addressType = LispAddressUtil.ipVersionFromString(IPV6_ADDRESS_VALUE_TEST);
1094 assertEquals(6, addressType);
1098 * Tests {@link LispAddressUtil#ipVersionFromString(String)} with incorrect ip address format.
1101 public void ipVersionFromString_other() {
1102 final int addressType = LispAddressUtil.ipVersionFromString(INCORRECT_IP_ADDRESS_TEST);
1103 assertEquals(0, addressType);
1108 * Tests {@link LispAddressUtil#asKeyValueAddressEid(SimpleAddress, SimpleAddress)} method.
1111 public void asKeyValueAddressEid() {
1112 final Eid eid = LispAddressUtil.asKeyValueAddressEid(SIMPLE_ADDRESS_IPV4_TEST, SIMPLE_ADDRESS_MAC_TEST);
1113 verifyKeyValueAddress(eid, SIMPLE_ADDRESS_IPV4_TEST);
1117 * Tests {@link LispAddressUtil#asKeyValueAddressRloc(SimpleAddress, SimpleAddress)} method.
1120 public void asKeyValueAddressRloc() {
1121 final Rloc rloc = LispAddressUtil.asKeyValueAddressRloc(SIMPLE_ADDRESS_IPV4_TEST, SIMPLE_ADDRESS_MAC_TEST);
1122 verifyKeyValueAddress(rloc, SIMPLE_ADDRESS_IPV4_TEST);
1126 * Tests {@link LispAddressUtil#asKeyValueAddress(String, SimpleAddress)} method.
1129 public void asKeyValueAddress() {
1130 final Rloc rloc = LispAddressUtil.asKeyValueAddress(DISTINGUISHED_NAME_TYPE_VALUE_TEST,
1131 SIMPLE_ADDRESS_MAC_TEST);
1132 verifyKeyValueAddress(rloc, SIMPLE_ADDRESS_DISTINGUISHED_TEST);
1135 private void verifyKeyValueAddress(final LispAddress lispAddress, final SimpleAddress keyValue) {
1136 assertEquals(KeyValueAddressLcaf.class, lispAddress.getAddressType());
1137 assertNull(lispAddress.getVirtualNetworkId());
1138 final org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105
1139 .lisp.address.address.key.value.address.KeyValueAddress keyValueAddress =
1140 ((KeyValueAddress) lispAddress.getAddress()).getKeyValueAddress();
1141 assertNotNull(keyValueAddress);
1142 assertEquals(keyValue, keyValueAddress.getKey());
1143 assertEquals(SIMPLE_ADDRESS_MAC_TEST, keyValueAddress.getValue());
1147 * Tests {@link LispAddressUtil#asSrcDst(String, String, int, int)} method.
1150 public void asSrcDst() {
1151 final SourceDestKey sourceDestKey = LispAddressUtil.asSrcDst(IPV4_ADDRESS_VALUE_TEST,
1152 IPV6_ADDRESS_VALUE_TEST, MASK_OK_TEST, MASK_OK_TEST);
1153 assertNotNull(sourceDestKey);
1154 assertEquals(SIMPLE_ADDRESS_IPV4_PREFIX_TEST, sourceDestKey.getSource());
1155 assertEquals(SIMPLE_ADDRESS_IPV6_PREFIX_TEST, sourceDestKey.getDest());
1159 * Tests {@link LispAddressUtil#asSrcDstEid(String, String, int, int, int)} method.
1162 public void asSrcDstEid_addressesAsString() {
1163 final Eid srcDstEid = LispAddressUtil.asSrcDstEid(IPV4_ADDRESS_VALUE_TEST,
1164 IPV6_ADDRESS_VALUE_TEST, MASK_OK_TEST, MASK_OK_TEST, INSTANCE_ID_TYPE_VALUE_SHORT_TEST);
1165 assertNotNull(srcDstEid);
1166 assertEquals(SourceDestKeyLcaf.class, srcDstEid.getAddressType());
1167 final SourceDestKey sourceDestKey = ((org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns
1168 .yang.ietf.lisp.address.types.rev151105.lisp.address.address.SourceDestKey) srcDstEid.getAddress())
1169 .getSourceDestKey();
1170 assertNotNull(sourceDestKey);
1171 assertEquals(SIMPLE_ADDRESS_IPV4_PREFIX_TEST, sourceDestKey.getSource());
1172 assertEquals(SIMPLE_ADDRESS_IPV6_PREFIX_TEST, sourceDestKey.getDest());
1176 * Tests {@link LispAddressUtil#asSrcDstEid(SourceDestKey, InstanceIdType)} method.
1179 public void asSrcDstEid_addressesAsSrcDstKey() {
1180 final SourceDestKey expectedSourceDestKey = new SourceDestKeyBuilder().setSource(
1181 SIMPLE_ADDRESS_IPV4_PREFIX_TEST).setDest(SIMPLE_ADDRESS_IPV6_PREFIX_TEST).build();
1182 final Eid srcDstEid = LispAddressUtil.asSrcDstEid(expectedSourceDestKey, INSTANCE_ID_TYPE_TEST);
1183 assertNotNull(srcDstEid);
1184 assertEquals(SourceDestKeyLcaf.class, srcDstEid.getAddressType());
1185 final SourceDestKey testedSourceDestKey = ((org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns
1186 .yang.ietf.lisp.address.types.rev151105.lisp.address.address.SourceDestKey) srcDstEid.getAddress())
1187 .getSourceDestKey();
1188 assertNotNull(testedSourceDestKey);
1189 assertEquals(SIMPLE_ADDRESS_IPV4_PREFIX_TEST, testedSourceDestKey.getSource());
1190 assertEquals(SIMPLE_ADDRESS_IPV6_PREFIX_TEST, testedSourceDestKey.getDest());
1194 * Tests {@link LispAddressUtil#asSrcDstEid(SourceDestKey, InstanceIdType)} method.
1197 public void asTeLcafRloc() {
1198 final List<IpAddress> ipAddresses = Arrays.asList(IP_ADDRESS_IPV4_TEST,
1199 IP_ADDRESS_IPV6_TEST);
1200 final Rloc rloc = LispAddressUtil.asTeLcafRloc(ipAddresses);
1201 assertNotNull(rloc);
1202 assertEquals(ExplicitLocatorPathLcaf.class, rloc.getAddressType());
1203 final List<Hop> hops = ((ExplicitLocatorPath) rloc.getAddress()).getExplicitLocatorPath().getHop();
1204 assertEquals(hops.size(), ipAddresses.size());
1206 for (IpAddress ipAddress : ipAddresses) {
1207 assertTrue("Ip address " + ipAddress + "should be part of hops list.", isIpAddressInHops(ipAddress, hops));
1210 for (Hop hop : hops) {
1211 final Hop.LrsBits lrsBits = hop.getLrsBits();
1212 assertFalse(lrsBits.isLookup());
1213 assertFalse(lrsBits.isRlocProbe());
1214 assertFalse(lrsBits.isStrict());
1216 final IpAddress ipAddressFromHop = hop.getAddress().getIpAddress();
1217 assertNotNull(ipAddressFromHop);
1221 private boolean isIpAddressInHops(final IpAddress ipAddress, final List<Hop> hops) {
1222 for (Hop hop : hops) {
1223 if (hop.getAddress().getIpAddress().equals(ipAddress)) {
1231 * Tests {@link LispAddressUtil#asLocatorRecords(List)} method.
1234 public void asLocatorRecords() {
1235 final List<Rloc> expectedRlocs = Arrays.asList(LispAddressUtil.toRloc(IPV4_ADDRESS_TEST),
1236 LispAddressUtil.toRloc(IPV6_ADDRESS_TEST));
1237 final List<LocatorRecord> locatorRecords = LispAddressUtil.asLocatorRecords(expectedRlocs);
1239 assertEquals(expectedRlocs.size(), locatorRecords.size());
1241 for (Rloc rloc : expectedRlocs) {
1242 assertTrue("Rloc " + rloc + " should be part of "
1243 + "locator records list list", isRlocInLocatorRecords(locatorRecords, rloc));
1246 for (LocatorRecord locatorRecord : locatorRecords) {
1247 assertFalse(locatorRecord.isLocalLocator());
1248 assertFalse(locatorRecord.isRlocProbed());
1249 assertTrue(locatorRecord.isRouted());
1250 assertTrue(1 == locatorRecord.getWeight());
1251 assertTrue(1 == locatorRecord.getPriority());
1252 assertTrue(1 == locatorRecord.getMulticastWeight());
1253 assertTrue(1 == locatorRecord.getMulticastPriority());
1254 assertEquals("SFC_LISP", locatorRecord.getLocatorId());
1258 private boolean isRlocInLocatorRecords(final List<LocatorRecord> locatorRecords, final Rloc rloc) {
1259 for (LocatorRecord locatorRecord : locatorRecords) {
1260 if (locatorRecord.getRloc().equals(rloc)) {
1268 * Tests {@link LispAddressUtil#getNoAddressEid()} method.
1271 public void getNoAddressEid() {
1272 final Eid noAddressEid = LispAddressUtil.getNoAddressEid();
1273 assertEquals(NoAddressAfi.class, noAddressEid.getAddressType());
1274 assertNull(noAddressEid.getVirtualNetworkId());
1275 assertTrue(((NoAddress) noAddressEid.getAddress()).isNoAddress());
1279 * Tests {@link LispAddressUtil#ipAddressToByteArray(Address)} method with ipv4 value.
1282 public void ipAddressToByteArray_ipv4() {
1283 final Ipv4 expectedIpv4 = new Ipv4Builder().setIpv4(IPV4_ADDRESS_TEST).build();
1284 final byte[] testedAddress = LispAddressUtil.ipAddressToByteArray(expectedIpv4);
1285 assertArrayEquals(IPV4_ADDRESS_BYTES_A_TEST, testedAddress);
1289 * Tests {@link LispAddressUtil#ipAddressToByteArray(Address)} method with ipv6 value.
1292 public void ipAddressToByteArray_ipv6() {
1293 final Ipv6 expectedIpv6 = new Ipv6Builder().setIpv6(IPV6_ADDRESS_TEST).build();
1294 final byte[] testedAddress = LispAddressUtil.ipAddressToByteArray(expectedIpv6);
1295 assertArrayEquals(IPV6_ADDRESS_BYTES_A_TEST, testedAddress);
1299 * Tests {@link LispAddressUtil#ipAddressToByteArray(Address)} method with ipv4Binary value.
1302 public void ipAddressToByteArray_ipv4Binary() {
1303 final Ipv4Binary expectedIpv4 = new Ipv4BinaryBuilder().setIpv4Binary(IPV4_ADDRESS_BINARY_TEST).build();
1304 final byte[] testedAddress = LispAddressUtil.ipAddressToByteArray(expectedIpv4);
1305 assertArrayEquals(IPV4_ADDRESS_BYTES_A_TEST, testedAddress);
1309 * Tests {@link LispAddressUtil#ipAddressToByteArray(Address)} method with ipv6Binary value.
1312 public void ipAddressToByteArray_ipv6Binary() {
1313 final Ipv6Binary expectedIpv6 = new Ipv6BinaryBuilder().setIpv6Binary(IPV6_ADDRESS_BINARY_TEST).build();
1314 final byte[] testedAddress = LispAddressUtil.ipAddressToByteArray(expectedIpv6);
1315 assertArrayEquals(IPV6_ADDRESS_BYTES_A_TEST, testedAddress);
1319 * Tests {@link LispAddressUtil#ipAddressToByteArray(Address)} method with mac value.
1322 public void ipAddressToByteArray_other() {
1323 final byte[] testedAddress = LispAddressUtil.ipAddressToByteArray(new MacBuilder().build());
1324 assertNull(testedAddress);
1328 * Tests {@link LispAddressUtil#convertToBinary(Eid)} method with ipv4Prefix, ipv6Prefix, ipv4, ipv6.
1331 public void convertToBinaryTest_eid() {
1333 final Eid ipv4PrefixEid = new EidBuilder().setAddress(IPV4_PREFIX).build();
1334 final Eid ipv6PrefixEid = new EidBuilder().setAddress(IPV6_PREFIX).build();
1335 final Eid ipv4 = new EidBuilder().setAddress(IPV4).build();
1336 final Eid ipv6 = new EidBuilder().setAddress(IPV6).build();
1338 Eid resultIpv4PrefixBinary = LispAddressUtil.convertToBinary(ipv4PrefixEid);
1339 verifyToEidWithIpv4PrefixBinary(resultIpv4PrefixBinary, false, MASK_OK_TEST, Ipv4PrefixBinaryAfi.class);
1341 Eid resultIpv6PrefixBinary = LispAddressUtil.convertToBinary(ipv6PrefixEid);
1342 verifyToEidWithIpv6PrefixBinary(resultIpv6PrefixBinary , false, MASK_OK_TEST, Ipv6PrefixBinaryAfi.class);
1344 Eid resultIpv4Binary = LispAddressUtil.convertToBinary(ipv4);
1345 verifyToEidWithIpv4Binary(resultIpv4Binary , false);
1347 Eid resultIpv6Binary = LispAddressUtil.convertToBinary(ipv6);
1348 verifyToEidWithIpv6Binary(resultIpv6Binary , false);
1352 * Tests {@link LispAddressUtil#convertToBinary(Eid)} method with ipv4Prefix, ipv6Prefix, ipv4, ipv6.
1355 public void convertFromBinaryTest_eid() {
1356 final Eid resultIpv4Prefix = LispAddressUtil.convertFromBinary(IPV4_ADDRESS_PREFIX_BINARY_EID_1);
1357 verifyToEidWithIpv4Prefix(resultIpv4Prefix, false, MASK_OK_TEST, Ipv4PrefixAfi.class);
1359 final Eid resultIpv6Prefix = LispAddressUtil.convertFromBinary(IPV6_ADDRESS_PREFIX_BINARY_EID_1);
1360 verifyToEidWithIpv6Prefix(resultIpv6Prefix, false, MASK_OK_TEST, Ipv6PrefixAfi.class);
1362 final Eid resultIpv4 = LispAddressUtil.convertFromBinary(IPV4_ADDRESS_BINARY_EID);
1363 verifyToEidWithIpv4(resultIpv4, false);
1365 final Eid resultIpv6 = LispAddressUtil.convertFromBinary(IPV6_ADDRESS_BINARY_EID);
1366 verifyToEidWithIpv6(resultIpv6, false);
1370 * Tests {@link LispAddressUtil#convertFromBinary(Rloc)} method with ipv4.
1373 public void convertFromBinaryTest_rloc() {
1374 final Rloc resultIpv4 = LispAddressUtil.convertFromBinary(IPV4_BINARY_RLOC);
1375 verifyToRlocWithIpv4(resultIpv4, false);
1379 * Tests {@link LispAddressUtil#convertToBinary(Rloc)} method with ipv4.
1382 public void convertToBinaryTest_rloc() {
1383 final Rloc resultIpv4Binary = LispAddressUtil.convertToBinary(IPV4_RLOC);
1384 verifyToRlocWithIpv4Binary(resultIpv4Binary, false);
1388 * Tests {@link LispAddressUtil#addressBinaryFromInet(InetAddress)} method with Inet4Address.
1391 public void addressBinaryFromInet_Inet4Address() throws UnknownHostException {
1392 final InetAddress inet4Address = InetAddress.getByName(IPV4_ADDRESS_VALUE_TEST);
1394 assertEquals(new IpAddressBinary(IPV4_ADDRESS_BINARY_TEST),
1395 LispAddressUtil.addressBinaryFromInet(inet4Address));
1399 * Tests {@link LispAddressUtil#addressBinaryFromInet(InetAddress)} method with Inet6Address.
1402 public void addressBinaryFromInet_Inet6Address() throws UnknownHostException {
1403 final InetAddress inet4Address = InetAddress.getByName(IPV6_ADDRESS_VALUE_TEST);
1405 assertEquals(new IpAddressBinary(IPV6_ADDRESS_BINARY_TEST),
1406 LispAddressUtil.addressBinaryFromInet(inet4Address));
1410 * Tests {@link LispAddressUtil#addressBinaryFromInet(InetAddress)} method with null address.
1413 public void addressBinaryFromInet_nullAddress() throws UnknownHostException {
1414 assertEquals(new IpAddressBinary(new IpAddressBinary(new Ipv4AddressBinary(new byte[]{127, 0, 0, 1}))),
1415 LispAddressUtil.addressBinaryFromInet(null));
1419 * Tests {@link LispAddressUtil#addressNeedsConversionToBinary} method with ipv4, ipv6, ipv4Prefix, ipv6Prefix and
1423 public void addressNeedsConversionToBinaryTest() {
1424 assertTrue(LispAddressUtil.addressNeedsConversionToBinary(IPV4));
1425 assertTrue(LispAddressUtil.addressNeedsConversionToBinary(IPV6));
1426 assertTrue(LispAddressUtil.addressNeedsConversionToBinary(IPV4_PREFIX));
1427 assertTrue(LispAddressUtil.addressNeedsConversionToBinary(IPV6_PREFIX));
1428 assertFalse(LispAddressUtil.addressNeedsConversionToBinary(IPV4_BINARY));
1432 * Tests {@link LispAddressUtil#addressNeedsConversionToBinary} method with ipv4, ipv6, ipv4Prefix, ipv6Prefix and
1436 public void addressNeedsConversionFromBinaryTest() {
1437 assertTrue(LispAddressUtil.addressNeedsConversionFromBinary(IPV4_BINARY));
1438 assertTrue(LispAddressUtil.addressNeedsConversionFromBinary(IPV6_BINARY));
1439 assertTrue(LispAddressUtil.addressNeedsConversionFromBinary(IPV4_ADDRESS_PREFIX_BINARY_1));
1440 assertTrue(LispAddressUtil.addressNeedsConversionFromBinary(IPV6_ADDRESS_PREFIX_BINARY_1));
1441 assertFalse(LispAddressUtil.addressNeedsConversionFromBinary(IPV4));
1445 * Tests {@link LispAddressUtil#compareIpAddressByteArrays(byte[], byte[])} with all possible combination
1446 * of input parameters to reach 100 % coverage.
1449 public void compareIpAddressByteArrays() throws UnknownHostException {
1450 int comparisonResult = LispAddressUtil.compareIpAddressByteArrays(IPV4_ADDRESS_BYTES_A_TEST,
1451 IPV6_ADDRESS_BYTES_A_TEST);
1452 assertEquals(-1, comparisonResult);
1454 comparisonResult = LispAddressUtil.compareIpAddressByteArrays(IPV6_ADDRESS_BYTES_A_TEST,
1455 IPV4_ADDRESS_BYTES_A_TEST);
1456 assertEquals(1, comparisonResult);
1458 comparisonResult = LispAddressUtil.compareIpAddressByteArrays(IPV4_ADDRESS_BYTES_A_TEST,
1459 IPV4_ADDRESS_BYTES_B_TEST);
1460 assertEquals(-1, comparisonResult);
1462 comparisonResult = LispAddressUtil.compareIpAddressByteArrays(IPV4_ADDRESS_BYTES_B_TEST,
1463 IPV4_ADDRESS_BYTES_A_TEST);
1464 assertEquals(1, comparisonResult);
1466 comparisonResult = LispAddressUtil.compareIpAddressByteArrays(IPV4_ADDRESS_BYTES_B_TEST,
1467 IPV4_ADDRESS_BYTES_B_TEST);
1468 assertEquals(0, comparisonResult);
1470 comparisonResult = LispAddressUtil.compareIpAddressByteArrays(IPV6_ADDRESS_BYTES_A_TEST,
1471 IPV6_ADDRESS_BYTES_B_TEST);
1472 assertEquals(-1, comparisonResult);
1474 comparisonResult = LispAddressUtil.compareIpAddressByteArrays(IPV6_ADDRESS_BYTES_B_TEST,
1475 IPV6_ADDRESS_BYTES_A_TEST);
1476 assertEquals(1, comparisonResult);
1478 comparisonResult = LispAddressUtil.compareIpAddressByteArrays(IPV6_ADDRESS_BYTES_B_TEST,
1479 IPV6_ADDRESS_BYTES_B_TEST);
1480 assertEquals(0, comparisonResult);
1482 comparisonResult = LispAddressUtil.compareIpAddressByteArrays(new byte[]{1, 2, 3, 4, 5},
1483 new byte[]{1, 2, 3, 4, 5});
1484 assertEquals(0, comparisonResult);
1489 * Tests {@link LispAddressUtil#asServicePathEid(long, long, short)} method.
1492 public void asServicePathEid() {
1493 final Eid eid = LispAddressUtil.asServicePathEid(INSTANCE_ID_TYPE_VALUE_TEST, SERVICE_PATH_ID_TEST,
1494 SERVICE_INDEX_TEST);
1497 assertEquals(ServicePathLcaf.class, eid.getAddressType());
1498 assertEquals(INSTANCE_ID_TYPE_TEST, eid.getVirtualNetworkId());
1499 ServicePath servicePath = ((org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp
1500 .address.types.rev151105.lisp.address.address.ServicePath) eid.getAddress()).getServicePath();
1501 assertNotNull(servicePath);
1502 assertEquals(SERVICE_INDEX_TEST, servicePath.getServiceIndex());
1503 assertEquals(SERVICE_PATH_ID_TEST, servicePath.getServicePathId().getValue());
1507 * Tests {@link LispAddressUtil#toIpPrefixEid(IpAddress, int)} method.
1510 public void toIpPrefixEid() throws UnknownHostException {
1511 final Eid eid = LispAddressUtil.toIpPrefixEid(IP_ADDRESS_IPV4_TEST,
1512 INSTANCE_ID_TYPE_VALUE_SHORT_TEST);
1513 verifyEidContainsIpPrefix(eid, MASK_OK_DEFAULT_IPV4_TEST);
1517 * Tests {@link LispAddressUtil#toEidNoVni(IpPrefix)} method.
1520 public void toEidNoVni() {
1521 final Eid eid = LispAddressUtil.toEidNoVni(IP_ADDRESS_PREFIX_WITH_IPV4_TEST);
1522 verifyEidContainsIpPrefix(eid, MASK_OK_TEST);
1525 public void verifyEidContainsIpPrefix(final Eid eid, final short mask) {
1526 final Ipv4Prefix expectedPrefix = new Ipv4Prefix(IPV4_ADDRESS_VALUE_TEST + "/" + mask);
1528 assertTrue(eid.getAddress() instanceof org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp
1529 .address.types.rev151105.lisp.address.address.Ipv4Prefix);
1530 final org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address
1531 .address.Ipv4Prefix address = (org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp
1532 .address.types.rev151105.lisp.address.address.Ipv4Prefix) eid.getAddress();
1533 assertEquals(expectedPrefix, address.getIpv4Prefix());
1537 * Tests {@link LispAddressUtil#asEid(SimpleAddress, InstanceIdType)} method.
1540 public void asEid() {
1541 final Eid eid = LispAddressUtil.asEid(SIMPLE_ADDRESS_IPV4_TEST, INSTANCE_ID_TYPE_TEST);
1543 assertEquals(Ipv4BinaryAfi.class, eid.getAddressType());
1544 final Ipv4Binary address = (Ipv4Binary) eid.getAddress();
1545 assertArrayEquals(InetAddresses.forString(SIMPLE_ADDRESS_IPV4_TEST.getIpAddress().getIpv4Address().getValue())
1546 .getAddress(), address.getIpv4Binary().getValue());
1547 assertEquals(INSTANCE_ID_TYPE_TEST, eid.getVirtualNetworkId());
1551 * Tests {@link LispAddressUtil#getIpPrefixMask(Eid)} method with Ipv4PrefixBinary.
1554 public void getIpPrefixMask_withIpv4PrefixBinary() {
1555 assertEquals(MASK_OK_TEST, LispAddressUtil.getIpPrefixMask(IPV4_ADDRESS_PREFIX_BINARY_EID_1));
1559 * Tests {@link LispAddressUtil#getIpPrefixMask(Eid)} method with Ipv6PrefixBinary.
1562 public void getIpPrefixMask_withIpv6PrefixBinary() {
1563 assertEquals(MASK_OK_TEST, LispAddressUtil.getIpPrefixMask(IPV6_ADDRESS_PREFIX_BINARY_EID_1));
1567 * Tests {@link LispAddressUtil#getIpPrefixMask(Eid)} method with Ipv4Binary.
1570 public void getIpPrefixMask_withIpv4Binary() {
1571 assertEquals((short) 0, LispAddressUtil.getIpPrefixMask(IPV4_ADDRESS_BINARY_EID));