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.SimpleAddressBuilder;
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.IpAddressBinary;
70 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.inet.binary.types.rev160303.Ipv4AddressBinary;
71 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.inet.binary.types.rev160303.Ipv6AddressBinary;
72 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.binary.address.types.rev160504.Ipv4BinaryAfi;
73 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.binary.address.types.rev160504.Ipv4PrefixBinaryAfi;
74 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.binary.address.types.rev160504.Ipv6BinaryAfi;
75 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.binary.address.types.rev160504.Ipv6PrefixBinaryAfi;
76 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.binary.address.types.rev160504.augmented.lisp.address.address.Ipv4Binary;
77 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.binary.address.types.rev160504.augmented.lisp.address.address.Ipv4BinaryBuilder;
78 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.binary.address.types.rev160504.augmented.lisp.address.address.Ipv4PrefixBinary;
79 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.binary.address.types.rev160504.augmented.lisp.address.address.Ipv4PrefixBinaryBuilder;
80 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.binary.address.types.rev160504.augmented.lisp.address.address.Ipv6Binary;
81 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.binary.address.types.rev160504.augmented.lisp.address.address.Ipv6BinaryBuilder;
82 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.binary.address.types.rev160504.augmented.lisp.address.address.Ipv6PrefixBinary;
83 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.binary.address.types.rev160504.augmented.lisp.address.address.Ipv6PrefixBinaryBuilder;
84 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.container.Eid;
85 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.container.EidBuilder;
86 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.locatorrecords.LocatorRecord;
87 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.rloc.container.Rloc;
88 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.rloc.container.RlocBuilder;
89 import org.opendaylight.yangtools.yang.common.Empty;
91 public class LispAddressUtilTest {
93 private static final Long NUMBER_TEST = 5L;
95 private static final byte[] IPV4_ADDRESS_BYTES_A_TEST = new byte[]{(byte) 192, (byte) 168, 1, 1};
96 private static final byte[] IPV4_ADDRESS_BYTES_B_TEST = new byte[]{(byte) 192, (byte) 168, 1, 2};
98 private static final short MASK_OK_TEST = 30;
99 private static final short MASK_OK_DEFAULT_IPV4_TEST = 32;
100 private static final short MASK_OK_DEFAULT_IPV6_TEST = 128;
102 private static final Long AS_NUMBER_TEST = 100L;
103 private static final Long INSTANCE_ID_TYPE_VALUE_TEST = 121L;
104 private static final Short INSTANCE_ID_TYPE_VALUE_SHORT_TEST = 122;
105 private static final InstanceIdType INSTANCE_ID_TYPE_TEST = new InstanceIdType(INSTANCE_ID_TYPE_VALUE_TEST);
106 private static final String INCORRECT_IP_ADDRESS_TEST = "incorrect ip address";
108 private static final String MAC_ADDRESS_VALUE_TEST = "aa:bb:cc:dd:ee:ff";
109 private static final MacAddress MAC_ADDRESS_TEST = new MacAddress(MAC_ADDRESS_VALUE_TEST);
110 private static final Mac MAC = new MacBuilder().setMac(MAC_ADDRESS_TEST).build();
111 private static final Eid MAC_ADDRESS_EID = new EidBuilder()
113 .setAddressType(MacAfi.class)
114 .setVirtualNetworkId(INSTANCE_ID_TYPE_TEST).build();
116 private static final String IPV4_ADDRESS_VALUE_TEST = "192.168.1.1";
117 private static final String IPV4_ADDRESS_PREFIX_VALUE_TEST = IPV4_ADDRESS_VALUE_TEST + "/" + MASK_OK_TEST;
118 private static final Ipv4Address IPV4_ADDRESS_TEST = new Ipv4Address(IPV4_ADDRESS_VALUE_TEST);
119 private static final Ipv4 IPV4 = new Ipv4Builder().setIpv4(IPV4_ADDRESS_TEST).build();
120 private static final Ipv4AddressBinary IPV4_ADDRESS_BINARY_TEST = new Ipv4AddressBinary(IPV4_ADDRESS_BYTES_A_TEST);
121 private static final Ipv4Binary IPV4_BINARY = new Ipv4BinaryBuilder()
122 .setIpv4Binary(IPV4_ADDRESS_BINARY_TEST).build();
123 private static final IpAddress IP_ADDRESS_IPV4_TEST = new IpAddress(IPV4_ADDRESS_TEST);
124 private static final Ipv4Prefix IPV4_ADDRESS_PREFIX_TEST = new Ipv4Prefix(IPV4_ADDRESS_PREFIX_VALUE_TEST);
125 private static final Ipv4PrefixBinary IPV4_ADDRESS_PREFIX_BINARY_1 = new Ipv4PrefixBinaryBuilder()
126 .setIpv4AddressBinary(new Ipv4AddressBinary(IPV4_ADDRESS_BYTES_A_TEST))
127 .setIpv4MaskLength(MASK_OK_TEST).build();
128 private static final Ipv4PrefixBinary IPV4_ADDRESS_PREFIX_BINARY_2 = new Ipv4PrefixBinaryBuilder()
129 .setIpv4AddressBinary(new Ipv4AddressBinary(IPV4_ADDRESS_BYTES_A_TEST))
130 .setIpv4MaskLength(MASK_OK_DEFAULT_IPV4_TEST).build();
131 private static final IpPrefix IP_ADDRESS_PREFIX_WITH_IPV4_TEST = new IpPrefix(IPV4_ADDRESS_PREFIX_TEST);
132 private static final org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp
133 .address.address.Ipv4Prefix IPV4_PREFIX = new Ipv4PrefixBuilder()
134 .setIpv4Prefix(IPV4_ADDRESS_PREFIX_TEST).build();
135 private static final Eid IPV4_ADDRESS_PREFIX_BINARY_EID_1 = new EidBuilder()
136 .setAddress(IPV4_ADDRESS_PREFIX_BINARY_1)
137 .setAddressType(Ipv4PrefixBinaryAfi.class)
138 .setVirtualNetworkId(INSTANCE_ID_TYPE_TEST).build();
139 private static final Eid IPV4_ADDRESS_PREFIX_BINARY_EID_2 = new EidBuilder()
140 .setAddress(IPV4_ADDRESS_PREFIX_BINARY_2)
141 .setAddressType(Ipv4PrefixBinaryAfi.class)
142 .setVirtualNetworkId(INSTANCE_ID_TYPE_TEST).build();
143 private static final Eid IPV4_ADDRESS_BINARY_EID = new EidBuilder()
144 .setAddress(IPV4_BINARY)
145 .setAddressType(Ipv4BinaryAfi.class)
146 .setVirtualNetworkId(INSTANCE_ID_TYPE_TEST).build();
147 private static final Eid IPV4_EID = new EidBuilder()
149 .setAddressType(Ipv4Afi.class)
150 .setVirtualNetworkId(INSTANCE_ID_TYPE_TEST).build();
151 private static final Eid IPV4_PREFIX_EID = new EidBuilder()
152 .setAddress(IPV4_PREFIX)
153 .setAddressType(Ipv4PrefixAfi.class)
154 .setVirtualNetworkId(INSTANCE_ID_TYPE_TEST).build();
155 private static final Rloc IPV4_RLOC = new RlocBuilder()
157 .setAddressType(Ipv4Afi.class).build();
158 private static final Rloc IPV4_BINARY_RLOC = new RlocBuilder()
159 .setAddress(IPV4_BINARY)
160 .setAddressType(Ipv4BinaryAfi.class).build();
162 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,
164 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,
166 private static final String IPV6_ADDRESS_VALUE_TEST = "102:304:506:708:90a:b0c:d0e:f10";
167 private static final String IPV6_ADDRESS_PREFIX_VALUE_TEST = IPV6_ADDRESS_VALUE_TEST + "/" + MASK_OK_TEST;
168 private static final Ipv6Prefix IPV6_ADDRESS_PREFIX_TEST = new Ipv6Prefix(IPV6_ADDRESS_PREFIX_VALUE_TEST);
169 private static final Ipv6Address IPV6_ADDRESS_TEST = new Ipv6Address(IPV6_ADDRESS_VALUE_TEST);
170 private static final Ipv6 IPV6 = new Ipv6Builder().setIpv6(IPV6_ADDRESS_TEST).build();
171 private static final Ipv6AddressBinary IPV6_ADDRESS_BINARY_TEST = new Ipv6AddressBinary(IPV6_ADDRESS_BYTES_A_TEST);
172 private static final Ipv6Binary IPV6_BINARY = new Ipv6BinaryBuilder()
173 .setIpv6Binary(IPV6_ADDRESS_BINARY_TEST).build();
174 private static final IpPrefix IP_ADDRESS_PREFIX_WITH_IPV6_TEST = new IpPrefix(IPV6_ADDRESS_PREFIX_TEST);
175 private static final org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp
176 .address.address.Ipv6Prefix IPV6_PREFIX = new Ipv6PrefixBuilder()
177 .setIpv6Prefix(IPV6_ADDRESS_PREFIX_TEST).build();
178 private static final IpAddress IP_ADDRESS_IPV6_TEST = new IpAddress(IPV6_ADDRESS_TEST);
179 private static final Ipv6PrefixBinary IPV6_ADDRESS_PREFIX_BINARY_1 = new Ipv6PrefixBinaryBuilder()
180 .setIpv6AddressBinary(new Ipv6AddressBinary(IPV6_ADDRESS_BYTES_A_TEST))
181 .setIpv6MaskLength(MASK_OK_TEST).build();
182 private static final Ipv6PrefixBinary IPV6_ADDRESS_PREFIX_BINARY_2 = new Ipv6PrefixBinaryBuilder()
183 .setIpv6AddressBinary(new Ipv6AddressBinary(IPV6_ADDRESS_BYTES_A_TEST))
184 .setIpv6MaskLength(MASK_OK_DEFAULT_IPV6_TEST).build();
185 private static final Eid IPV6_ADDRESS_PREFIX_BINARY_EID_1 = new EidBuilder()
186 .setAddress(IPV6_ADDRESS_PREFIX_BINARY_1)
187 .setAddressType(Ipv6PrefixBinaryAfi.class)
188 .setVirtualNetworkId(INSTANCE_ID_TYPE_TEST).build();
189 private static final Eid IPV6_ADDRESS_PREFIX_BINARY_EID_2 = new EidBuilder()
190 .setAddress(IPV6_ADDRESS_PREFIX_BINARY_2)
191 .setAddressType(Ipv6PrefixBinaryAfi.class)
192 .setVirtualNetworkId(INSTANCE_ID_TYPE_TEST).build();
193 private static final Eid IPV6_ADDRESS_BINARY_EID = new EidBuilder()
194 .setAddress(IPV6_BINARY)
195 .setAddressType(Ipv6BinaryAfi.class)
196 .setVirtualNetworkId(INSTANCE_ID_TYPE_TEST).build();
197 private static final Eid IPV6_EID = new EidBuilder()
199 .setAddressType(Ipv6BinaryAfi.class)
200 .setVirtualNetworkId(INSTANCE_ID_TYPE_TEST).build();
202 private static final Short SERVICE_INDEX_TEST = 45;
203 private static final Long DUMMY_SERVICE_PATH_ID_TYPE = 46L;
204 private static final String DISTINGUISHED_NAME_TYPE_VALUE_TEST = "dummy distinguished name type";
205 private static final String DISTINGUISHED_NAME_TYPE_VALUE_WITH_MAC_TEST = MAC_ADDRESS_VALUE_TEST;
206 private static final DistinguishedNameType DISTINGUISHED_NAME_TYPE_TEST = new DistinguishedNameType(
207 DISTINGUISHED_NAME_TYPE_VALUE_TEST);
209 private static final SimpleAddress SIMPLE_ADDRESS_IPV4_TEST = new SimpleAddress(IP_ADDRESS_IPV4_TEST);
210 private static final SimpleAddress SIMPLE_ADDRESS_IPV6_TEST = new SimpleAddress(IP_ADDRESS_IPV6_TEST);
211 private static final SimpleAddress SIMPLE_ADDRESS_MAC_TEST = new SimpleAddress(MAC_ADDRESS_TEST);
212 private static final SimpleAddress SIMPLE_ADDRESS_DISTINGUISHED_TEST =
213 new SimpleAddress(DISTINGUISHED_NAME_TYPE_TEST);
214 private static final SimpleAddress SIMPLE_ADDRESS_IPV4_PREFIX_TEST = new SimpleAddress(
215 IP_ADDRESS_PREFIX_WITH_IPV4_TEST);
216 private static final SimpleAddress SIMPLE_ADDRESS_IPV6_PREFIX_TEST = new SimpleAddress(
217 IP_ADDRESS_PREFIX_WITH_IPV6_TEST);
218 private static final Long SERVICE_PATH_ID_TEST = 2121L;
221 * Tests {@link LispAddressUtil#addressTypeFromSimpleAddress} and {@link
222 * LispAddressUtil#addressFromSimpleAddress} methods
226 public void addressFromSimpleAddressTest_asAnyIpAddress() {
227 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromSimpleAddress(
228 SIMPLE_ADDRESS_IPV4_TEST);
229 assertEquals(Ipv4BinaryAfi.class, addressClass);
231 final Address address = LispAddressUtil.addressFromSimpleAddress(SIMPLE_ADDRESS_IPV4_TEST);
232 assertTrue(address instanceof Ipv4Binary);
236 * Tests {@link LispAddressUtil#addressTypeFromSimpleAddress} and {@link
237 * LispAddressUtil#addressFromSimpleAddress} methods
241 public void addressFromSimpleAddressTest_asIpPrefix() {
242 final SimpleAddress simpleAddress = new SimpleAddress(new IpPrefix(new Ipv4Prefix(
243 IPV4_ADDRESS_PREFIX_VALUE_TEST)));
244 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromSimpleAddress(
246 assertEquals(Ipv4PrefixAfi.class, addressClass);
248 final Address address = LispAddressUtil.addressFromSimpleAddress(simpleAddress);
249 assertTrue(address instanceof org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address
250 .types.rev151105.lisp.address.address.Ipv4Prefix);
254 * Tests {@link LispAddressUtil#addressTypeFromSimpleAddress} and {@link
255 * LispAddressUtil#addressFromSimpleAddress} methods
259 public void addressFromSimpleAddressTest_asMacAddress() {
260 final SimpleAddress simpleAddress = new SimpleAddress(new MacAddress(MAC_ADDRESS_VALUE_TEST));
261 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromSimpleAddress(
263 assertEquals(MacAfi.class, addressClass);
265 final Address address = LispAddressUtil.addressFromSimpleAddress(simpleAddress);
266 assertTrue(address instanceof Mac);
270 * Tests {@link LispAddressUtil#addressTypeFromSimpleAddress} and {@link
271 * LispAddressUtil#addressFromSimpleAddress} methods
272 * with general address.
275 public void addressFromSimpleAddressTest_asAddress() {
276 final SimpleAddress simpleAddress = SimpleAddressBuilder.getDefaultInstance("abcd");
277 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromSimpleAddress(
279 assertEquals(DistinguishedNameAfi.class, addressClass);
281 final Address address = LispAddressUtil.addressFromSimpleAddress(simpleAddress);
282 assertTrue(address instanceof DistinguishedName);
286 * Tests {@link LispAddressUtil#addressTypeFromSimpleAddress} and {@link
287 * LispAddressUtil#addressFromSimpleAddress} methods
288 * with address as number.
291 public void addressFromSimpleAddressTest_asNumber() {
292 final SimpleAddress simpleAddress = new SimpleAddress(new AsNumber(NUMBER_TEST));
293 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromSimpleAddress(
295 assertEquals(AsNumberAfi.class, addressClass);
297 final Address address = LispAddressUtil.addressFromSimpleAddress(simpleAddress);
298 assertTrue(address instanceof org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address
299 .types.rev151105.lisp.address.address.AsNumber);
303 * Tests {@link LispAddressUtil#addressFromInet(InetAddress)} and {@link LispAddressUtil#addressTypeFromInet
305 * methods with ipv4 address.
308 public void addressFromInet_ipv4() throws UnknownHostException {
309 final InetAddress ipv4InetAddress = Inet4Address.getByAddress(IPV4_ADDRESS_BYTES_A_TEST);
310 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromInet(ipv4InetAddress);
311 assertEquals(Ipv4Afi.class, addressClass);
313 final Address address = LispAddressUtil.addressFromInet(ipv4InetAddress);
314 assertTrue(address instanceof Ipv4);
315 assertEquals(IPV4_ADDRESS_VALUE_TEST, ((Ipv4) address).getIpv4().getValue());
319 * Tests {@link LispAddressUtil#addressFromInet(InetAddress)} and {@link LispAddressUtil#addressTypeFromInet
321 * methods with ipv6 address.
324 public void addressFromInet_ipv6() throws UnknownHostException {
325 final InetAddress ipv6InetAddress = Inet6Address.getByAddress(IPV6_ADDRESS_BYTES_A_TEST);
326 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromInet(ipv6InetAddress);
327 assertEquals(Ipv6Afi.class, addressClass);
329 final Address address = LispAddressUtil.addressFromInet(ipv6InetAddress);
330 assertTrue(address instanceof Ipv6);
331 assertEquals(IPV6_ADDRESS_VALUE_TEST, ((Ipv6) address).getIpv6().getValue());
335 * Tests {@link LispAddressUtil#binaryAddressFromInet(InetAddress)} and
336 * {@link LispAddressUtil#binaryAddressTypeFromInet(InetAddress)} methods with ipv4 address.
339 public void binaryAddressFromInet_ipv4() throws UnknownHostException {
340 final InetAddress ipv4InetAddress = Inet4Address.getByAddress(IPV4_ADDRESS_BYTES_A_TEST);
341 Class<? extends LispAddressFamily> addressClass = LispAddressUtil.binaryAddressTypeFromInet(ipv4InetAddress);
342 assertEquals(Ipv4BinaryAfi.class, addressClass);
344 final Address address = LispAddressUtil.binaryAddressFromInet(ipv4InetAddress);
345 assertTrue(address instanceof Ipv4Binary);
346 assertArrayEquals(IPV4_ADDRESS_BYTES_A_TEST, ((Ipv4Binary) address).getIpv4Binary().getValue());
350 * Tests {@link LispAddressUtil#binaryAddressFromInet(InetAddress)} and
351 * {@link LispAddressUtil#binaryAddressTypeFromInet(InetAddress)} methods with ipv6 address.
354 public void binaryAddressFromInet_ipv6() throws UnknownHostException {
355 final InetAddress ipv6InetAddress = Inet6Address.getByAddress(IPV6_ADDRESS_BYTES_A_TEST);
356 Class<? extends LispAddressFamily> addressClass = LispAddressUtil.binaryAddressTypeFromInet(ipv6InetAddress);
357 assertEquals(Ipv6BinaryAfi.class, addressClass);
359 final Address address = LispAddressUtil.binaryAddressFromInet(ipv6InetAddress);
360 assertTrue(address instanceof Ipv6Binary);
361 assertArrayEquals(IPV6_ADDRESS_BYTES_A_TEST, ((Ipv6Binary) address).getIpv6Binary().getValue());
365 * Tests {@link LispAddressUtil#addressFromIpAddress(IpAddress)} and {@link
366 * LispAddressUtil#addressTypeFromIpAddress(IpAddress)}
367 * methods with ipv4 address.
370 public void addressFromIpAddress_ipv4() {
371 final IpAddress ipv4Address = new IpAddress(IPV4_ADDRESS_TEST);
372 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromIpAddress(ipv4Address);
373 assertEquals(Ipv4Afi.class, addressClass);
375 final Address address = LispAddressUtil.addressFromIpAddress(ipv4Address);
376 assertTrue(address instanceof Ipv4);
377 assertEquals(IPV4_ADDRESS_VALUE_TEST, ((Ipv4) address).getIpv4().getValue());
381 * Tests {@link LispAddressUtil#addressFromIpAddress(IpAddress)} and {@link
382 * LispAddressUtil#addressTypeFromIpAddress(IpAddress)}
383 * methods with ipv6 address.
386 public void addressFromIpAddress_ipv6() {
387 final IpAddress ipv6Address = new IpAddress(new Ipv6Address(IPV6_ADDRESS_VALUE_TEST));
388 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromIpAddress(ipv6Address);
389 assertEquals(Ipv6Afi.class, addressClass);
391 final Address address = LispAddressUtil.addressFromIpAddress(ipv6Address);
392 assertTrue(address instanceof Ipv6);
393 assertEquals(IPV6_ADDRESS_VALUE_TEST, ((Ipv6) address).getIpv6().getValue());
397 * Tests {@link LispAddressUtil#addressFromIpAddress(IpAddress)} and {@link
398 * LispAddressUtil#addressTypeFromIpAddress(IpAddress)}
399 * methods with null value instead off address.
402 public void addressFromIpAddress_null() {
403 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromIpAddress(null);
404 assertNull(addressClass);
406 final Address address = LispAddressUtil.addressFromIpAddress(null);
411 * Tests {@link LispAddressUtil#binaryAddressFromIpAddress(IpAddress)} and {@link
412 * LispAddressUtil#binaryAddressTypeFromIpAddress(IpAddress)}
413 * methods with Ipv4Binary address.
416 public void binaryAddressFromIpAddress_Ipv4Binary() {
417 final IpAddress ipv4Address = new IpAddress(new Ipv4Address(IPV4_ADDRESS_VALUE_TEST));
418 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil
419 .binaryAddressTypeFromIpAddress(ipv4Address);
420 assertEquals(Ipv4BinaryAfi.class, addressClass);
422 final Address address = LispAddressUtil.binaryAddressFromIpAddress(ipv4Address);
423 assertEquals(IPV4_BINARY, address);
427 * Tests {@link LispAddressUtil#binaryAddressFromIpAddress(IpAddress)} and {@link
428 * LispAddressUtil#binaryAddressTypeFromIpAddress(IpAddress)}
429 * methods with Ipv6Binary address.
432 public void binaryAddressFromIpAddress_Ipv6Binary() {
433 final IpAddress ipv6Address = new IpAddress(new Ipv6Address(IPV6_ADDRESS_VALUE_TEST));
434 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil
435 .binaryAddressTypeFromIpAddress(ipv6Address);
436 assertEquals(Ipv6BinaryAfi.class, addressClass);
438 final Address address = LispAddressUtil.binaryAddressFromIpAddress(ipv6Address);
439 assertEquals(IPV6_BINARY, address);
443 * Tests {@link LispAddressUtil#binaryAddressFromIpAddress(IpAddress)} and {@link
444 * LispAddressUtil#binaryAddressTypeFromIpAddress(IpAddress)}
445 * methods with Ipv6Binary address.
448 public void binaryAddressFromIpAddress_null() {
449 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.binaryAddressTypeFromIpAddress(null);
450 assertNull(addressClass);
452 final Address address = LispAddressUtil.binaryAddressFromIpAddress(null);
457 * Tests {@link LispAddressUtil#addressFromIpPrefix(IpPrefix)} and {@link
458 * LispAddressUtil#addressTypeFromIpPrefix(IpPrefix)}
459 * methods with ipv4 address.
462 public void addressFromIpPrefix_ipv4() {
463 IpPrefix ipv4Prefix = new IpPrefix(new Ipv4Prefix(IPV4_ADDRESS_PREFIX_VALUE_TEST));
464 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromIpPrefix(ipv4Prefix);
465 assertEquals(Ipv4PrefixAfi.class, addressClass);
467 final Address address = LispAddressUtil.addressFromIpPrefix(ipv4Prefix);
468 assertTrue(address instanceof org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address
469 .types.rev151105.lisp.address.address.Ipv4Prefix);
470 assertEquals(IPV4_ADDRESS_PREFIX_VALUE_TEST, ((org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf
471 .lisp.address.types.rev151105.lisp.address.address.Ipv4Prefix) address).getIpv4Prefix().getValue());
475 * Tests {@link LispAddressUtil#addressFromIpPrefix(IpPrefix)} and {@link
476 * LispAddressUtil#addressTypeFromIpPrefix(IpPrefix)}
477 * methods with ipv6 address.
480 public void addressFromIpPrefix_ipv6() {
481 IpPrefix ipv6Address = new IpPrefix(new Ipv6Prefix(IPV6_ADDRESS_PREFIX_VALUE_TEST));
482 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromIpPrefix(ipv6Address);
483 assertEquals(Ipv6PrefixAfi.class, addressClass);
485 final Address address = LispAddressUtil.addressFromIpPrefix(ipv6Address);
486 assertTrue(address instanceof org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address
487 .types.rev151105.lisp.address.address.Ipv6Prefix);
488 assertEquals(IPV6_ADDRESS_PREFIX_VALUE_TEST,
489 ((org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp
490 .address.address.Ipv6Prefix) address).getIpv6Prefix().getValue());
494 * Tests {@link LispAddressUtil#addressFromIpPrefix(IpPrefix)} and {@link LispAddressUtil#addressTypeFromIpPrefix
496 * methods with null value instead off address.
499 public void addressFromIpPrefix_null() {
500 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromIpPrefix(null);
501 assertNull(addressClass);
503 final Address address = LispAddressUtil.addressFromIpPrefix(null);
508 * Tests {@link LispAddressUtil#addressFromMacAddress(MacAddress)} methods with mac address.
511 public void addressFromMacAddress_mac() {
512 final Address address = LispAddressUtil.addressFromMacAddress(new MacAddress(MAC_ADDRESS_VALUE_TEST));
513 assertTrue(address instanceof Mac);
514 assertEquals(MAC_ADDRESS_VALUE_TEST, ((Mac) address).getMac().getValue());
518 * Tests {@link LispAddressUtil#addressFromMacAddress(MacAddress)} methods with null instead of address.
521 public void addressFromMacAddress_null() {
522 final Address address = LispAddressUtil.addressFromMacAddress(null);
528 * Test {@link LispAddressUtil#addressFromServicePath(ServicePath)} method with concrete servicePath.
531 public void addressFromServicePathTest_withServicePath() {
532 org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address
533 .address.service.path.ServicePathBuilder servicePathBuilder = new org.opendaylight.yang.gen.v1.urn.ietf
534 .params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address
535 .address.service.path.ServicePathBuilder();
536 servicePathBuilder.setServiceIndex(SERVICE_INDEX_TEST);
537 servicePathBuilder.setServicePathId(new ServicePathIdType(DUMMY_SERVICE_PATH_ID_TYPE));
539 ServicePath expectedAddress = servicePathBuilder.build();
540 final Address testedAddress = LispAddressUtil.addressFromServicePath(expectedAddress);
541 assertTrue(testedAddress instanceof org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address
542 .types.rev151105.lisp.address.address.ServicePath);
543 assertEquals(expectedAddress, ((org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address
544 .types.rev151105.lisp.address.address.ServicePath) testedAddress).getServicePath());
548 * Test {@link LispAddressUtil#addressFromServicePath(ServicePath)} method with null value.
551 public void addressFromServicePathTest_withNull() {
552 final Address testedAddress = LispAddressUtil.addressFromServicePath(null);
553 assertNull(testedAddress);
557 * Test {@link LispAddressUtil#addressFromDistinguishedName(DistinguishedNameType)} method with distinguished name.
560 public void addressFromDistinguishedNameTest_withDistinguishedName() {
561 final DistinguishedNameType distinguishedNameType = new DistinguishedNameType(
562 DISTINGUISHED_NAME_TYPE_VALUE_TEST);
563 final Address testedAddress = LispAddressUtil.addressFromDistinguishedName(distinguishedNameType);
565 assertTrue(testedAddress instanceof DistinguishedName);
566 assertEquals(distinguishedNameType, ((DistinguishedName) testedAddress).getDistinguishedName());
570 * Test {@link LispAddressUtil#addressFromDistinguishedName(DistinguishedNameType)} method with null value.
573 public void addressFromDistinguishedNameTest_withNull() {
574 final Address testedAddress = LispAddressUtil.addressFromDistinguishedName(null);
575 assertNull(testedAddress);
579 * Test {@link LispAddressUtil#addressFromAsNumber(AsNumber)} method with as number value.
582 public void addressFromAsNumberTest_withAdNumber() {
583 final AsNumber expectedAddress = new AsNumber(AS_NUMBER_TEST);
584 final Address testedAddress = LispAddressUtil.addressFromAsNumber(expectedAddress);
585 assertTrue(testedAddress instanceof org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp
586 .address.types.rev151105.lisp.address.address.AsNumber);
587 assertEquals(expectedAddress, ((org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp
588 .address.types.rev151105.lisp.address.address.AsNumber) testedAddress).getAsNumber());
592 * Test {@link LispAddressUtil#addressFromAsNumber(AsNumber)} method with null instead of value.
595 public void addressFromAsNumberTest_withNull() {
596 final Address testedAddress = LispAddressUtil.addressFromAsNumber(null);
597 assertNull(testedAddress);
603 * - {@link LispAddressUtil#toRloc(InetAddress)}
604 * - {@link LispAddressUtil#toRloc(Ipv4Address)}
605 * - {@link LispAddressUtil#toRloc(Ipv6Address)}
606 * - {@link LispAddressUtil#toRloc(SimpleAddress)}
610 public void toRloc() throws UnknownHostException {
611 InetAddress ipv4AddressInet = Inet4Address.getByAddress(IPV4_ADDRESS_BYTES_A_TEST);
612 final Rloc rlocFromInetAddress = LispAddressUtil.toRloc(ipv4AddressInet);
613 assertEquals(Ipv4BinaryAfi.class, rlocFromInetAddress.getAddressType());
614 assertEquals(IPV4_ADDRESS_BINARY_TEST, ((Ipv4Binary) rlocFromInetAddress.getAddress()).getIpv4Binary());
616 final Rloc rlocFromIpv4Address = LispAddressUtil.toRloc(IPV4_ADDRESS_TEST);
617 assertEquals(Ipv4Afi.class, rlocFromIpv4Address.getAddressType());
618 assertEquals(IPV4_ADDRESS_VALUE_TEST, ((Ipv4) rlocFromIpv4Address.getAddress()).getIpv4().getValue());
621 final Rloc rlocFromIpv6Address = LispAddressUtil.toRloc(IPV6_ADDRESS_TEST);
622 assertEquals(Ipv6Afi.class, rlocFromIpv6Address.getAddressType());
623 assertEquals(IPV6_ADDRESS_VALUE_TEST, ((Ipv6) rlocFromIpv6Address.getAddress()).getIpv6().getValue());
625 final Rloc rlocFromSimpleAddress = LispAddressUtil.toRloc(SIMPLE_ADDRESS_IPV4_TEST);
626 assertEquals(Ipv4BinaryAfi.class, rlocFromSimpleAddress.getAddressType());
627 assertEquals(IPV4_ADDRESS_BINARY_TEST, ((Ipv4Binary) rlocFromSimpleAddress.getAddress()).getIpv4Binary());
631 * Test {@link LispAddressUtil#asIpv4Rloc(String)} method with ipv4 or ipv6.
632 * Test {@link LispAddressUtil#asIpv6Rloc(String)} method with ipv4 or ipv6.
635 public void asIpvRloc() {
636 final Rloc rlocFromIpV4 = LispAddressUtil.asIpv4Rloc(IPV4_ADDRESS_VALUE_TEST);
637 assertEquals(Ipv4BinaryAfi.class, rlocFromIpV4.getAddressType());
638 assertEquals(IPV4_ADDRESS_BINARY_TEST, ((Ipv4Binary) rlocFromIpV4.getAddress()).getIpv4Binary());
640 final Rloc rlocFromIpV6 = LispAddressUtil.asIpv6Rloc(IPV6_ADDRESS_VALUE_TEST);
641 assertEquals(Ipv6BinaryAfi.class, rlocFromIpV6.getAddressType());
642 assertEquals(IPV6_ADDRESS_BINARY_TEST, ((Ipv6Binary) rlocFromIpV6.getAddress()).getIpv6Binary());
647 * - {@link LispAddressUtil#toEid(Ipv6Address, InstanceIdType)}
648 * - {@link LispAddressUtil#asIpv6PrefixEid(String)}
649 * - {@link LispAddressUtil#asIpv6PrefixEid(Eid, Inet6Address, short)}
650 * - {@link LispAddressUtil#asIpv6PrefixEid(Ipv6Address, InstanceIdType)}
654 public void toEid_ipv6Prefix() throws UnknownHostException {
655 final Inet6Address inet6Address = (Inet6Address) Inet6Address.getByName(IPV6_ADDRESS_VALUE_TEST);
657 Eid eidFromIpv6Prefix = LispAddressUtil.toEid(IPV6_ADDRESS_PREFIX_TEST, INSTANCE_ID_TYPE_TEST);
658 verifyToEidWithIpv6Prefix(eidFromIpv6Prefix, true, MASK_OK_TEST, Ipv6PrefixAfi.class);
660 eidFromIpv6Prefix = LispAddressUtil.asIpv6PrefixEid(IPV6_ADDRESS_PREFIX_VALUE_TEST);
661 verifyToEidWithIpv6Prefix(eidFromIpv6Prefix, false, MASK_OK_TEST, Ipv6PrefixAfi.class);
663 eidFromIpv6Prefix = LispAddressUtil.asIpv6PrefixEid(IPV6_ADDRESS_PREFIX_BINARY_EID_1, inet6Address,
664 MASK_OK_DEFAULT_IPV6_TEST);
665 verifyToEidWithIpv6Prefix(eidFromIpv6Prefix, true, MASK_OK_DEFAULT_IPV6_TEST, Ipv6PrefixAfi.class);
667 eidFromIpv6Prefix = LispAddressUtil.asIpv6PrefixEid(IPV6_ADDRESS_TEST, INSTANCE_ID_TYPE_TEST);
668 verifyToEidWithIpv6Prefix(eidFromIpv6Prefix, true, MASK_OK_DEFAULT_IPV6_TEST, Ipv6PrefixAfi.class);
673 * - {@link LispAddressUtil#toEid(MacAddress, InstanceIdType)}
674 * - {@link LispAddressUtil#asMacEid(String)}
675 * - {@link LispAddressUtil#asMacEid(String, long)}
679 public void toEid_mac() {
680 Eid eidFromMac = LispAddressUtil.toEid(MAC_ADDRESS_TEST, INSTANCE_ID_TYPE_TEST);
681 verifyToEidWithMacAddress(eidFromMac, true);
683 eidFromMac = LispAddressUtil.asMacEid(MAC_ADDRESS_VALUE_TEST);
684 verifyToEidWithMacAddress(eidFromMac, false);
686 eidFromMac = LispAddressUtil.asMacEid(MAC_ADDRESS_VALUE_TEST, INSTANCE_ID_TYPE_VALUE_TEST);
687 verifyToEidWithMacAddress(eidFromMac, true);
692 * - {@link LispAddressUtil#toEid(Ipv6Address, InstanceIdType)}
693 * - {@link LispAddressUtil#toEid(Ipv6AddressBinary, InstanceIdType)}
694 * - {@link LispAddressUtil#asIpv6Eid(String)}
695 * - {@link LispAddressUtil#asIpv6Eid(String, long)}
699 public void toEid_ipv6() {
700 Eid eidFromIpv6 = LispAddressUtil.toEid(IPV6_ADDRESS_TEST, INSTANCE_ID_TYPE_TEST);
701 verifyToEidWithIpv6(eidFromIpv6, true);
703 eidFromIpv6 = LispAddressUtil.toEid(IPV6_ADDRESS_BINARY_TEST, INSTANCE_ID_TYPE_TEST);
704 verifyToEidWithIpv6Binary(eidFromIpv6, true);
706 eidFromIpv6 = LispAddressUtil.asIpv6Eid(IPV6_ADDRESS_VALUE_TEST);
707 verifyToEidWithIpv6Binary(eidFromIpv6, false);
709 eidFromIpv6 = LispAddressUtil.asIpv6Eid(IPV6_ADDRESS_VALUE_TEST, INSTANCE_ID_TYPE_VALUE_TEST);
710 verifyToEidWithIpv6Binary(eidFromIpv6, true);
715 * - {@link LispAddressUtil#toEid(Ipv4Prefix, InstanceIdType)}
716 * - {@link LispAddressUtil#asIpv4PrefixEid(String)}
717 * - {@link LispAddressUtil#asIpv4PrefixEid(Eid, Inet4Address, short)}
718 * - {@link LispAddressUtil#asIpv4PrefixEid(Ipv4Address, InstanceIdType)} }
722 public void toEid_ipv4Prefix() throws UnknownHostException {
723 final Inet4Address inet4Address = (Inet4Address) Inet4Address.getByName(IPV4_ADDRESS_VALUE_TEST);
725 Eid eidFromIpv4Prefix = LispAddressUtil.toEid(IPV4_ADDRESS_PREFIX_TEST, INSTANCE_ID_TYPE_TEST);
726 verifyToEidWithIpv4Prefix(eidFromIpv4Prefix, true, MASK_OK_TEST, Ipv4PrefixAfi.class);
728 eidFromIpv4Prefix = LispAddressUtil.asIpv4PrefixEid(IPV4_ADDRESS_PREFIX_VALUE_TEST);
729 verifyToEidWithIpv4Prefix(eidFromIpv4Prefix, false, MASK_OK_TEST, Ipv4PrefixAfi.class);
731 eidFromIpv4Prefix = LispAddressUtil.asIpv4PrefixEid(IPV4_ADDRESS_PREFIX_BINARY_EID_1, inet4Address,
732 MASK_OK_DEFAULT_IPV4_TEST);
733 verifyToEidWithIpv4Prefix(eidFromIpv4Prefix, true, MASK_OK_DEFAULT_IPV4_TEST, Ipv4PrefixAfi.class);
735 eidFromIpv4Prefix = LispAddressUtil.asIpv4PrefixEid(IPV4_ADDRESS_TEST, INSTANCE_ID_TYPE_TEST);
736 verifyToEidWithIpv4Prefix(eidFromIpv4Prefix, true, MASK_OK_DEFAULT_IPV4_TEST, Ipv4PrefixAfi.class);
741 * - {@link LispAddressUtil#toEid(Ipv4PrefixBinary, InstanceIdType)}
742 * - {@link LispAddressUtil#asIpv4PrefixBinaryEid(String)}
743 * - {@link LispAddressUtil#asIpv4PrefixBinaryEid(String, InstanceIdType)}
744 * - {@link LispAddressUtil#asIpv4PrefixBinaryEid(Eid, byte[], short)}
748 public void toEid_ipv4PrefixBinary() {
749 Eid eidFromIpv4PrefixBinary = LispAddressUtil.toEid(IPV4_ADDRESS_PREFIX_BINARY_1, INSTANCE_ID_TYPE_TEST);
750 verifyToEidWithIpv4PrefixBinary(eidFromIpv4PrefixBinary, true, MASK_OK_TEST, Ipv4PrefixBinaryAfi.class);
752 eidFromIpv4PrefixBinary = LispAddressUtil.asIpv4PrefixBinaryEid(IPV4_ADDRESS_PREFIX_VALUE_TEST);
753 verifyToEidWithIpv4PrefixBinary(eidFromIpv4PrefixBinary, false, MASK_OK_TEST, Ipv4PrefixBinaryAfi.class);
755 eidFromIpv4PrefixBinary = LispAddressUtil.asIpv4PrefixBinaryEid(IPV4_ADDRESS_PREFIX_VALUE_TEST,
756 INSTANCE_ID_TYPE_TEST);
757 verifyToEidWithIpv4PrefixBinary(eidFromIpv4PrefixBinary, true, MASK_OK_TEST, Ipv4PrefixBinaryAfi.class);
759 eidFromIpv4PrefixBinary = LispAddressUtil.asIpv4PrefixBinaryEid(IPV4_ADDRESS_PREFIX_BINARY_EID_1,
760 IPV4_ADDRESS_BYTES_A_TEST, MASK_OK_TEST);
761 verifyToEidWithIpv4PrefixBinary(eidFromIpv4PrefixBinary, true, MASK_OK_TEST, Ipv4PrefixBinaryAfi.class);
766 * - {@link LispAddressUtil#toEid(Ipv6PrefixBinary, InstanceIdType)}
767 * - {@link LispAddressUtil#asIpv6PrefixBinaryEid(String)}
768 * - {@link LispAddressUtil#asIpv6PrefixBinaryEid(String, InstanceIdType)}
769 * - {@link LispAddressUtil#asIpv6PrefixBinaryEid(Eid, byte[], short)}
773 public void toEid_ipv6PrefixBinary() {
774 Eid eidFromIpv6PrefixBinary = LispAddressUtil.toEid(IPV6_ADDRESS_PREFIX_BINARY_1, INSTANCE_ID_TYPE_TEST);
775 verifyToEidWithIpv6PrefixBinary(eidFromIpv6PrefixBinary, true, MASK_OK_TEST, Ipv6PrefixBinaryAfi.class);
777 eidFromIpv6PrefixBinary = LispAddressUtil.asIpv6PrefixBinaryEid(IPV6_ADDRESS_PREFIX_VALUE_TEST);
778 verifyToEidWithIpv6PrefixBinary(eidFromIpv6PrefixBinary, false, MASK_OK_TEST, Ipv6PrefixBinaryAfi.class);
780 eidFromIpv6PrefixBinary = LispAddressUtil.asIpv6PrefixBinaryEid(IPV6_ADDRESS_PREFIX_VALUE_TEST,
781 INSTANCE_ID_TYPE_TEST);
782 verifyToEidWithIpv6PrefixBinary(eidFromIpv6PrefixBinary, true, MASK_OK_TEST, Ipv6PrefixBinaryAfi.class);
784 eidFromIpv6PrefixBinary = LispAddressUtil.asIpv6PrefixBinaryEid(IPV6_ADDRESS_PREFIX_BINARY_EID_1,
785 IPV6_ADDRESS_BYTES_A_TEST, MASK_OK_TEST);
786 verifyToEidWithIpv6PrefixBinary(eidFromIpv6PrefixBinary, true, MASK_OK_TEST, Ipv6PrefixBinaryAfi.class);
791 * - {@link LispAddressUtil#toEid(Ipv4Address, InstanceIdType)}
792 * - {@link LispAddressUtil#toEid(Ipv4AddressBinary, InstanceIdType)}
793 * - {@link LispAddressUtil#asIpv4Eid(String)}
794 * - {@link LispAddressUtil#asIpv4Eid(String, long)}
798 public void toEid_ipv4() {
799 Eid eidFromIpv4 = LispAddressUtil.toEid(IPV4_ADDRESS_TEST, INSTANCE_ID_TYPE_TEST);
800 verifyToEidWithIpv4(eidFromIpv4, true);
802 eidFromIpv4 = LispAddressUtil.toEid(IPV4_ADDRESS_BINARY_TEST, INSTANCE_ID_TYPE_TEST);
803 verifyToEidWithIpv4Binary(eidFromIpv4, true);
805 eidFromIpv4 = LispAddressUtil.asIpv4Eid(IPV4_ADDRESS_VALUE_TEST);
806 verifyToEidWithIpv4Binary(eidFromIpv4, false);
808 eidFromIpv4 = LispAddressUtil.asIpv4Eid(IPV4_ADDRESS_VALUE_TEST, INSTANCE_ID_TYPE_VALUE_TEST);
809 verifyToEidWithIpv4Binary(eidFromIpv4, true);
814 * - {@link LispAddressUtil#toEid(IpPrefix, InstanceIdType)}
818 public void toEid_ipPrefix() {
819 final Eid eidFromIpPrefix = LispAddressUtil.toEid(IP_ADDRESS_PREFIX_WITH_IPV4_TEST, INSTANCE_ID_TYPE_TEST);
820 verifyToEidWithIpv4Prefix(eidFromIpPrefix, true, MASK_OK_TEST, Ipv4PrefixAfi.class);
825 * - {@link LispAddressUtil#toEid(DistinguishedNameType, InstanceIdType)}
826 * - {@link LispAddressUtil#asDistinguishedNameEid(String)}
827 * - {@link LispAddressUtil#asDistinguishedNameEid(String, long)}
828 * methods with various input.
831 public void toEid_distinguishedName() {
832 Eid eidFromDistinguishedName = LispAddressUtil.toEid(DISTINGUISHED_NAME_TYPE_TEST, INSTANCE_ID_TYPE_TEST);
833 verifyToEidWithDistinguishedName(eidFromDistinguishedName, true);
835 eidFromDistinguishedName = LispAddressUtil.asDistinguishedNameEid(DISTINGUISHED_NAME_TYPE_VALUE_TEST);
836 verifyToEidWithDistinguishedName(eidFromDistinguishedName, false);
838 eidFromDistinguishedName = LispAddressUtil.asDistinguishedNameEid(
839 DISTINGUISHED_NAME_TYPE_VALUE_WITH_MAC_TEST, INSTANCE_ID_TYPE_VALUE_TEST);
840 verifyToEidWithMacAddress(eidFromDistinguishedName, true);
843 private void verifyToEidWithIpv6Prefix(final Eid eidFromIpv6Prefix, final boolean isVniChecked, short
844 expectedMask, final Class<? extends org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp
845 .address.types.rev151105.LispAddressFamily> addressType) {
846 assertEquals(addressType, eidFromIpv6Prefix.getAddressType());
848 assertEquals(INSTANCE_ID_TYPE_TEST, eidFromIpv6Prefix.getVirtualNetworkId());
850 assertEquals(IPV6_ADDRESS_VALUE_TEST + "/" + expectedMask, ((org.opendaylight.yang.gen.v1.urn.ietf.params.xml
851 .ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.Ipv6Prefix) eidFromIpv6Prefix
852 .getAddress()).getIpv6Prefix().getValue());
855 private void verifyToEidWithIpv6PrefixBinary(final Eid eidFromIpv6PrefixBinary, final boolean isVniChecked, short
856 expectedMask, final Class<? extends org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp
857 .address.types.rev151105.LispAddressFamily> addressType) {
858 assertEquals(addressType, eidFromIpv6PrefixBinary.getAddressType());
860 assertEquals(INSTANCE_ID_TYPE_TEST, eidFromIpv6PrefixBinary.getVirtualNetworkId());
862 assertArrayEquals(IPV6_ADDRESS_BYTES_A_TEST, ((Ipv6PrefixBinary) eidFromIpv6PrefixBinary
863 .getAddress()).getIpv6AddressBinary().getValue());
864 assertEquals(expectedMask,
865 (short) ((Ipv6PrefixBinary) eidFromIpv6PrefixBinary.getAddress()).getIpv6MaskLength());
868 private void verifyToEidWithIpv4(final Eid eidFromIpv4, final boolean isVniChecked) {
869 assertEquals(Ipv4Afi.class, eidFromIpv4.getAddressType());
871 assertEquals(INSTANCE_ID_TYPE_TEST, eidFromIpv4.getVirtualNetworkId());
873 assertEquals(IPV4_ADDRESS_VALUE_TEST, ((Ipv4) eidFromIpv4.getAddress()).getIpv4().getValue());
876 private void verifyToRlocWithIpv4(final Rloc rlocFromIpv4, final boolean isVniChecked) {
877 assertEquals(Ipv4Afi.class, rlocFromIpv4.getAddressType());
879 assertEquals(INSTANCE_ID_TYPE_TEST, rlocFromIpv4.getVirtualNetworkId());
881 assertEquals(IPV4_ADDRESS_VALUE_TEST, ((Ipv4) rlocFromIpv4.getAddress()).getIpv4().getValue());
884 private void verifyToEidWithIpv4Binary(final Eid eidFromIpv4, final boolean isVniChecked) {
885 assertEquals(Ipv4BinaryAfi.class, eidFromIpv4.getAddressType());
887 assertEquals(INSTANCE_ID_TYPE_TEST, eidFromIpv4.getVirtualNetworkId());
889 assertArrayEquals(IPV4_ADDRESS_BYTES_A_TEST,
890 ((Ipv4Binary) eidFromIpv4.getAddress()).getIpv4Binary().getValue());
893 private void verifyToRlocWithIpv4Binary(final Rloc rlocFromIpv4, final boolean isVniChecked) {
894 assertEquals(Ipv4BinaryAfi.class, rlocFromIpv4.getAddressType());
896 assertEquals(INSTANCE_ID_TYPE_TEST, rlocFromIpv4.getVirtualNetworkId());
898 assertArrayEquals(IPV4_ADDRESS_BYTES_A_TEST,
899 ((Ipv4Binary) rlocFromIpv4.getAddress()).getIpv4Binary().getValue());
902 private void verifyToEidWithIpv6(final Eid eidFromIpv6, final boolean isVniChecked) {
903 assertEquals(Ipv6Afi.class, eidFromIpv6.getAddressType());
905 assertEquals(INSTANCE_ID_TYPE_TEST, eidFromIpv6.getVirtualNetworkId());
907 assertEquals(IPV6_ADDRESS_VALUE_TEST, ((Ipv6) eidFromIpv6.getAddress()).getIpv6().getValue());
910 private void verifyToEidWithIpv4Prefix(final Eid eidFromIpv4Prefix, final boolean isVniChecked, short
911 expectedMask, Class<? extends org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address
912 .types.rev151105.LispAddressFamily> addressType) {
913 assertEquals(addressType, eidFromIpv4Prefix.getAddressType());
915 assertEquals(INSTANCE_ID_TYPE_TEST, eidFromIpv4Prefix.getVirtualNetworkId());
917 assertEquals(IPV4_ADDRESS_VALUE_TEST + "/" + expectedMask, ((org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns
919 .lisp.address.types.rev151105.lisp.address.address.Ipv4Prefix) eidFromIpv4Prefix.getAddress())
920 .getIpv4Prefix().getValue());
923 private void verifyToEidWithIpv4PrefixBinary(final Eid eidFromIpv4PrefixBinary, final boolean isVniChecked, short
924 expectedMask, Class<? extends org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address
925 .types.rev151105.LispAddressFamily> addressType) {
926 assertEquals(addressType, eidFromIpv4PrefixBinary.getAddressType());
928 assertEquals(INSTANCE_ID_TYPE_TEST, eidFromIpv4PrefixBinary.getVirtualNetworkId());
930 assertArrayEquals(IPV4_ADDRESS_BYTES_A_TEST,
931 ((Ipv4PrefixBinary) eidFromIpv4PrefixBinary.getAddress()).getIpv4AddressBinary().getValue());
932 assertEquals(expectedMask,
933 (short) ((Ipv4PrefixBinary) eidFromIpv4PrefixBinary.getAddress()).getIpv4MaskLength());
936 private void verifyToEidWithIpv6Binary(final Eid eidFromIpv6, final boolean isVniChecked) {
937 assertEquals(Ipv6BinaryAfi.class, eidFromIpv6.getAddressType());
939 assertEquals(INSTANCE_ID_TYPE_TEST, eidFromIpv6.getVirtualNetworkId());
941 assertArrayEquals(IPV6_ADDRESS_BYTES_A_TEST,
942 ((Ipv6Binary) eidFromIpv6.getAddress()).getIpv6Binary().getValue());
945 private void verifyToEidWithDistinguishedName(final Eid eidFromDistinguishedName, final boolean isVniChecked) {
946 assertEquals(DistinguishedNameAfi.class, eidFromDistinguishedName.getAddressType());
948 assertEquals(INSTANCE_ID_TYPE_TEST, eidFromDistinguishedName.getVirtualNetworkId());
950 assertEquals(DISTINGUISHED_NAME_TYPE_TEST, ((DistinguishedName) eidFromDistinguishedName.getAddress())
951 .getDistinguishedName());
954 private void verifyToEidWithMacAddress(final Eid eidFromMac, final boolean isVniChecked) {
955 assertEquals(MacAfi.class, eidFromMac.getAddressType());
957 assertEquals(INSTANCE_ID_TYPE_TEST, eidFromMac.getVirtualNetworkId());
959 assertEquals(MAC_ADDRESS_VALUE_TEST, ((Mac) eidFromMac.getAddress()).getMac().getValue());
963 * Tests {@link LispAddressUtil#asIpPrefix(String, int)} with ipv4 address and correct mask.
966 public void asIpPrefix_ipv4() {
967 final IpPrefix ipPrefix = LispAddressUtil.asIpPrefix(IPV4_ADDRESS_VALUE_TEST, MASK_OK_TEST);
968 assertNotNull(ipPrefix);
969 final Ipv4Prefix ipv4Prefix = ipPrefix.getIpv4Prefix();
970 assertNotNull(ipv4Prefix);
971 assertEquals(IPV4_ADDRESS_PREFIX_TEST, ipv4Prefix);
975 * Tests {@link LispAddressUtil#asIpPrefix(String, int)} with ipv6 address and correct mask.
978 public void asIpPrefix_ipv6() {
979 final IpPrefix ipPrefix = LispAddressUtil.asIpPrefix(IPV6_ADDRESS_VALUE_TEST, MASK_OK_TEST);
980 assertNotNull(ipPrefix);
981 final Ipv6Prefix ipv6Prefix = ipPrefix.getIpv6Prefix();
982 assertNotNull(ipv6Prefix);
983 assertEquals(IPV6_ADDRESS_PREFIX_TEST, ipv6Prefix);
987 * Tests {@link LispAddressUtil#asIpPrefix(String, int)} with incorrect ip address and correct mask.
990 public void asIpPrefix_other() {
991 final IpPrefix ipPrefix = LispAddressUtil.asIpPrefix(INCORRECT_IP_ADDRESS_TEST, MASK_OK_TEST);
992 assertNull(ipPrefix);
996 * Tests {@link LispAddressUtil#asBinaryEid(SimpleAddress, InstanceIdType)} method with ipv4Prefix.
999 public void asBinaryEidTest_ipv4Prefix() {
1000 final Eid result = LispAddressUtil.asBinaryEid(SIMPLE_ADDRESS_IPV4_PREFIX_TEST, INSTANCE_ID_TYPE_TEST);
1001 assertEquals(IPV4_ADDRESS_PREFIX_BINARY_EID_1, result);
1005 * Tests {@link LispAddressUtil#asBinaryEid(SimpleAddress, InstanceIdType)} method with ipv6Prefix.
1008 public void asBinaryEidTest_ipv6Prefix() {
1009 final Eid result = LispAddressUtil.asBinaryEid(SIMPLE_ADDRESS_IPV6_PREFIX_TEST, INSTANCE_ID_TYPE_TEST);
1010 assertEquals(IPV6_ADDRESS_PREFIX_BINARY_EID_1, result);
1014 * Tests {@link LispAddressUtil#asBinaryEid(SimpleAddress, InstanceIdType)} method with ipv4.
1017 public void asBinaryEidTest_ipv4() {
1018 final Eid result = LispAddressUtil.asBinaryEid(SIMPLE_ADDRESS_IPV4_TEST, INSTANCE_ID_TYPE_TEST);
1019 assertEquals(IPV4_ADDRESS_BINARY_EID, result);
1023 * Tests {@link LispAddressUtil#asBinaryEid(SimpleAddress, InstanceIdType)} method with ipv6.
1026 public void asBinaryEidTest_ipv6() {
1027 final Eid result = LispAddressUtil.asBinaryEid(SIMPLE_ADDRESS_IPV6_TEST, INSTANCE_ID_TYPE_TEST);
1028 assertEquals(IPV6_ADDRESS_BINARY_EID, result);
1032 * Tests {@link LispAddressUtil#asBinaryEid(SimpleAddress, InstanceIdType)} method with mac.
1035 public void asBinaryEidTest_mac() {
1036 final Eid result = LispAddressUtil.asBinaryEid(SIMPLE_ADDRESS_MAC_TEST, INSTANCE_ID_TYPE_TEST);
1037 assertEquals(MAC_ADDRESS_EID, result);
1041 * Tests {@link LispAddressUtil#asIpPrefixBinaryEid(Eid)} method with Ipv4Binary.
1044 public void asIpPrefixBinaryEid_Ipv4Binary() {
1045 assertEquals(IPV4_ADDRESS_PREFIX_BINARY_EID_2, LispAddressUtil.asIpPrefixBinaryEid(IPV4_ADDRESS_BINARY_EID));
1049 * Tests {@link LispAddressUtil#asIpPrefixBinaryEid(Eid)} method with Ipv6Binary.
1052 public void asIpPrefixBinaryEid_Ipv6Binary() {
1053 assertEquals(IPV6_ADDRESS_PREFIX_BINARY_EID_2, LispAddressUtil.asIpPrefixBinaryEid(IPV6_ADDRESS_BINARY_EID));
1057 * Tests {@link LispAddressUtil#asIpPrefixBinaryEid(Eid)} method with Ipv4.
1060 public void asIpPrefixBinaryEid_Ipv4() {
1061 assertEquals(IPV4_ADDRESS_PREFIX_BINARY_EID_2, LispAddressUtil.asIpPrefixBinaryEid(IPV4_EID));
1065 * Tests {@link LispAddressUtil#asIpPrefixBinaryEid(Eid)} method with Ipv4.
1068 public void asIpPrefixBinaryEid_Ipv6() {
1069 assertEquals(IPV6_ADDRESS_PREFIX_BINARY_EID_2, LispAddressUtil.asIpPrefixBinaryEid(IPV6_EID));
1073 * Tests {@link LispAddressUtil#asIpPrefixBinaryEid(Eid)} method with Ipv4Prefix.
1076 public void asIpPrefixBinaryEid_Ipv4Prefix() {
1077 assertEquals(IPV4_ADDRESS_PREFIX_BINARY_EID_1, LispAddressUtil.asIpPrefixBinaryEid(IPV4_PREFIX_EID));
1081 * Tests {@link LispAddressUtil#ipVersionFromString(String)} with ipv4.
1084 public void ipVersionFromString_ipv4() {
1085 final int addressType = LispAddressUtil.ipVersionFromString(IPV4_ADDRESS_VALUE_TEST);
1086 assertEquals(4, addressType);
1090 * Tests {@link LispAddressUtil#ipVersionFromString(String)} with ipv6.
1093 public void ipVersionFromString_ipv6() {
1094 final int addressType = LispAddressUtil.ipVersionFromString(IPV6_ADDRESS_VALUE_TEST);
1095 assertEquals(6, addressType);
1099 * Tests {@link LispAddressUtil#ipVersionFromString(String)} with incorrect ip address format.
1102 public void ipVersionFromString_other() {
1103 final int addressType = LispAddressUtil.ipVersionFromString(INCORRECT_IP_ADDRESS_TEST);
1104 assertEquals(0, addressType);
1109 * Tests {@link LispAddressUtil#asKeyValueAddressEid(SimpleAddress, SimpleAddress)} method.
1112 public void asKeyValueAddressEid() {
1113 final Eid eid = LispAddressUtil.asKeyValueAddressEid(SIMPLE_ADDRESS_IPV4_TEST, SIMPLE_ADDRESS_MAC_TEST);
1114 verifyKeyValueAddress(eid, SIMPLE_ADDRESS_IPV4_TEST);
1118 * Tests {@link LispAddressUtil#asKeyValueAddressRloc(SimpleAddress, SimpleAddress)} method.
1121 public void asKeyValueAddressRloc() {
1122 final Rloc rloc = LispAddressUtil.asKeyValueAddressRloc(SIMPLE_ADDRESS_IPV4_TEST, SIMPLE_ADDRESS_MAC_TEST);
1123 verifyKeyValueAddress(rloc, SIMPLE_ADDRESS_IPV4_TEST);
1127 * Tests {@link LispAddressUtil#asKeyValueAddress(String, SimpleAddress)} method.
1130 public void asKeyValueAddress() {
1131 final Rloc rloc = LispAddressUtil.asKeyValueAddress(DISTINGUISHED_NAME_TYPE_VALUE_TEST,
1132 SIMPLE_ADDRESS_MAC_TEST);
1133 verifyKeyValueAddress(rloc, SIMPLE_ADDRESS_DISTINGUISHED_TEST);
1136 private void verifyKeyValueAddress(final LispAddress lispAddress, final SimpleAddress keyValue) {
1137 assertEquals(KeyValueAddressLcaf.class, lispAddress.getAddressType());
1138 assertNull(lispAddress.getVirtualNetworkId());
1139 final org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105
1140 .lisp.address.address.key.value.address.KeyValueAddress keyValueAddress =
1141 ((KeyValueAddress) lispAddress.getAddress()).getKeyValueAddress();
1142 assertNotNull(keyValueAddress);
1143 assertEquals(keyValue, keyValueAddress.getKey());
1144 assertEquals(SIMPLE_ADDRESS_MAC_TEST, keyValueAddress.getValue());
1148 * Tests {@link LispAddressUtil#asSrcDst(String, String, int, int)} method.
1151 public void asSrcDst() {
1152 final SourceDestKey sourceDestKey = LispAddressUtil.asSrcDst(IPV4_ADDRESS_VALUE_TEST,
1153 IPV6_ADDRESS_VALUE_TEST, MASK_OK_TEST, MASK_OK_TEST);
1154 assertNotNull(sourceDestKey);
1155 assertEquals(SIMPLE_ADDRESS_IPV4_PREFIX_TEST, sourceDestKey.getSource());
1156 assertEquals(SIMPLE_ADDRESS_IPV6_PREFIX_TEST, sourceDestKey.getDest());
1160 * Tests {@link LispAddressUtil#asSrcDstEid(String, String, int, int, long)} method.
1163 public void asSrcDstEid_addressesAsString() {
1164 final Eid srcDstEid = LispAddressUtil.asSrcDstEid(IPV4_ADDRESS_VALUE_TEST,
1165 IPV6_ADDRESS_VALUE_TEST, MASK_OK_TEST, MASK_OK_TEST, INSTANCE_ID_TYPE_VALUE_SHORT_TEST);
1166 assertNotNull(srcDstEid);
1167 assertEquals(SourceDestKeyLcaf.class, srcDstEid.getAddressType());
1168 final SourceDestKey sourceDestKey = ((org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns
1169 .yang.ietf.lisp.address.types.rev151105.lisp.address.address.SourceDestKey) srcDstEid.getAddress())
1170 .getSourceDestKey();
1171 assertNotNull(sourceDestKey);
1172 assertEquals(SIMPLE_ADDRESS_IPV4_PREFIX_TEST, sourceDestKey.getSource());
1173 assertEquals(SIMPLE_ADDRESS_IPV6_PREFIX_TEST, sourceDestKey.getDest());
1177 * Tests {@link LispAddressUtil#asSrcDstEid(SourceDestKey, InstanceIdType)} method.
1180 public void asSrcDstEid_addressesAsSrcDstKey() {
1181 final SourceDestKey expectedSourceDestKey = new SourceDestKeyBuilder().setSource(
1182 SIMPLE_ADDRESS_IPV4_PREFIX_TEST).setDest(SIMPLE_ADDRESS_IPV6_PREFIX_TEST).build();
1183 final Eid srcDstEid = LispAddressUtil.asSrcDstEid(expectedSourceDestKey, INSTANCE_ID_TYPE_TEST);
1184 assertNotNull(srcDstEid);
1185 assertEquals(SourceDestKeyLcaf.class, srcDstEid.getAddressType());
1186 final SourceDestKey testedSourceDestKey = ((org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns
1187 .yang.ietf.lisp.address.types.rev151105.lisp.address.address.SourceDestKey) srcDstEid.getAddress())
1188 .getSourceDestKey();
1189 assertNotNull(testedSourceDestKey);
1190 assertEquals(SIMPLE_ADDRESS_IPV4_PREFIX_TEST, testedSourceDestKey.getSource());
1191 assertEquals(SIMPLE_ADDRESS_IPV6_PREFIX_TEST, testedSourceDestKey.getDest());
1195 * Tests {@link LispAddressUtil#asSrcDstEid(SourceDestKey, InstanceIdType)} method.
1198 public void asTeLcafRloc() {
1199 final List<IpAddress> ipAddresses = Arrays.asList(IP_ADDRESS_IPV4_TEST,
1200 IP_ADDRESS_IPV6_TEST);
1201 final Rloc rloc = LispAddressUtil.asTeLcafRloc(ipAddresses);
1202 assertNotNull(rloc);
1203 assertEquals(ExplicitLocatorPathLcaf.class, rloc.getAddressType());
1204 final List<Hop> hops = ((ExplicitLocatorPath) rloc.getAddress()).getExplicitLocatorPath().getHop();
1205 assertEquals(hops.size(), ipAddresses.size());
1207 for (IpAddress ipAddress : ipAddresses) {
1208 assertTrue("Ip address " + ipAddress + "should be part of hops list.", isIpAddressInHops(ipAddress, hops));
1211 for (Hop hop : hops) {
1212 final Hop.LrsBits lrsBits = hop.getLrsBits();
1213 assertFalse(lrsBits.isLookup());
1214 assertFalse(lrsBits.isRlocProbe());
1215 assertFalse(lrsBits.isStrict());
1217 final IpAddress ipAddressFromHop = hop.getAddress().getIpAddress();
1218 assertNotNull(ipAddressFromHop);
1222 private boolean isIpAddressInHops(final IpAddress ipAddress, final List<Hop> hops) {
1223 for (Hop hop : hops) {
1224 if (hop.getAddress().getIpAddress().equals(ipAddress)) {
1232 * Tests {@link LispAddressUtil#asLocatorRecords(List)} method.
1235 public void asLocatorRecords() {
1236 final List<Rloc> expectedRlocs = Arrays.asList(LispAddressUtil.toRloc(IPV4_ADDRESS_TEST),
1237 LispAddressUtil.toRloc(IPV6_ADDRESS_TEST));
1238 final List<LocatorRecord> locatorRecords = LispAddressUtil.asLocatorRecords(expectedRlocs);
1240 assertEquals(expectedRlocs.size(), locatorRecords.size());
1242 for (Rloc rloc : expectedRlocs) {
1243 assertTrue("Rloc " + rloc + " should be part of "
1244 + "locator records list list", isRlocInLocatorRecords(locatorRecords, rloc));
1247 for (LocatorRecord locatorRecord : locatorRecords) {
1248 assertFalse(locatorRecord.isLocalLocator());
1249 assertFalse(locatorRecord.isRlocProbed());
1250 assertTrue(locatorRecord.isRouted());
1251 assertTrue(1 == locatorRecord.getWeight());
1252 assertTrue(1 == locatorRecord.getPriority());
1253 assertTrue(1 == locatorRecord.getMulticastWeight());
1254 assertTrue(1 == locatorRecord.getMulticastPriority());
1255 assertEquals("SFC_LISP", locatorRecord.getLocatorId());
1259 private boolean isRlocInLocatorRecords(final List<LocatorRecord> locatorRecords, final Rloc rloc) {
1260 for (LocatorRecord locatorRecord : locatorRecords) {
1261 if (locatorRecord.getRloc().equals(rloc)) {
1269 * Tests {@link LispAddressUtil#getNoAddressEid()} method.
1272 public void getNoAddressEid() {
1273 final Eid noAddressEid = LispAddressUtil.getNoAddressEid();
1274 assertEquals(NoAddressAfi.class, noAddressEid.getAddressType());
1275 assertNull(noAddressEid.getVirtualNetworkId());
1276 assertEquals(((NoAddress) noAddressEid.getAddress()).getNoAddress(), Empty.getInstance());
1280 * Tests {@link LispAddressUtil#ipAddressToByteArray(Address)} method with ipv4 value.
1283 public void ipAddressToByteArray_ipv4() {
1284 final Ipv4 expectedIpv4 = new Ipv4Builder().setIpv4(IPV4_ADDRESS_TEST).build();
1285 final byte[] testedAddress = LispAddressUtil.ipAddressToByteArray(expectedIpv4);
1286 assertArrayEquals(IPV4_ADDRESS_BYTES_A_TEST, testedAddress);
1290 * Tests {@link LispAddressUtil#ipAddressToByteArray(Address)} method with ipv6 value.
1293 public void ipAddressToByteArray_ipv6() {
1294 final Ipv6 expectedIpv6 = new Ipv6Builder().setIpv6(IPV6_ADDRESS_TEST).build();
1295 final byte[] testedAddress = LispAddressUtil.ipAddressToByteArray(expectedIpv6);
1296 assertArrayEquals(IPV6_ADDRESS_BYTES_A_TEST, testedAddress);
1300 * Tests {@link LispAddressUtil#ipAddressToByteArray(Address)} method with ipv4Binary value.
1303 public void ipAddressToByteArray_ipv4Binary() {
1304 final Ipv4Binary expectedIpv4 = new Ipv4BinaryBuilder().setIpv4Binary(IPV4_ADDRESS_BINARY_TEST).build();
1305 final byte[] testedAddress = LispAddressUtil.ipAddressToByteArray(expectedIpv4);
1306 assertArrayEquals(IPV4_ADDRESS_BYTES_A_TEST, testedAddress);
1310 * Tests {@link LispAddressUtil#ipAddressToByteArray(Address)} method with ipv6Binary value.
1313 public void ipAddressToByteArray_ipv6Binary() {
1314 final Ipv6Binary expectedIpv6 = new Ipv6BinaryBuilder().setIpv6Binary(IPV6_ADDRESS_BINARY_TEST).build();
1315 final byte[] testedAddress = LispAddressUtil.ipAddressToByteArray(expectedIpv6);
1316 assertArrayEquals(IPV6_ADDRESS_BYTES_A_TEST, testedAddress);
1320 * Tests {@link LispAddressUtil#ipAddressToByteArray(Address)} method with mac value.
1323 public void ipAddressToByteArray_other() {
1324 final byte[] testedAddress = LispAddressUtil.ipAddressToByteArray(new MacBuilder().build());
1325 assertNull(testedAddress);
1329 * Tests {@link LispAddressUtil#convertToBinary(Eid)} method with ipv4Prefix, ipv6Prefix, ipv4, ipv6.
1332 public void convertToBinaryTest_eid() {
1334 final Eid ipv4PrefixEid = new EidBuilder().setAddress(IPV4_PREFIX).build();
1335 final Eid ipv6PrefixEid = new EidBuilder().setAddress(IPV6_PREFIX).build();
1336 final Eid ipv4 = new EidBuilder().setAddress(IPV4).build();
1337 final Eid ipv6 = new EidBuilder().setAddress(IPV6).build();
1339 Eid resultIpv4PrefixBinary = LispAddressUtil.convertToBinary(ipv4PrefixEid);
1340 verifyToEidWithIpv4PrefixBinary(resultIpv4PrefixBinary, false, MASK_OK_TEST, Ipv4PrefixBinaryAfi.class);
1342 Eid resultIpv6PrefixBinary = LispAddressUtil.convertToBinary(ipv6PrefixEid);
1343 verifyToEidWithIpv6PrefixBinary(resultIpv6PrefixBinary , false, MASK_OK_TEST, Ipv6PrefixBinaryAfi.class);
1345 Eid resultIpv4Binary = LispAddressUtil.convertToBinary(ipv4);
1346 verifyToEidWithIpv4Binary(resultIpv4Binary , false);
1348 Eid resultIpv6Binary = LispAddressUtil.convertToBinary(ipv6);
1349 verifyToEidWithIpv6Binary(resultIpv6Binary , false);
1353 * Tests {@link LispAddressUtil#convertToBinary(Eid)} method with ipv4Prefix, ipv6Prefix, ipv4, ipv6.
1356 public void convertFromBinaryTest_eid() {
1357 final Eid resultIpv4Prefix = LispAddressUtil.convertFromBinary(IPV4_ADDRESS_PREFIX_BINARY_EID_1);
1358 verifyToEidWithIpv4Prefix(resultIpv4Prefix, false, MASK_OK_TEST, Ipv4PrefixAfi.class);
1360 final Eid resultIpv6Prefix = LispAddressUtil.convertFromBinary(IPV6_ADDRESS_PREFIX_BINARY_EID_1);
1361 verifyToEidWithIpv6Prefix(resultIpv6Prefix, false, MASK_OK_TEST, Ipv6PrefixAfi.class);
1363 final Eid resultIpv4 = LispAddressUtil.convertFromBinary(IPV4_ADDRESS_BINARY_EID);
1364 verifyToEidWithIpv4(resultIpv4, false);
1366 final Eid resultIpv6 = LispAddressUtil.convertFromBinary(IPV6_ADDRESS_BINARY_EID);
1367 verifyToEidWithIpv6(resultIpv6, false);
1371 * Tests {@link LispAddressUtil#convertFromBinary(Rloc)} method with ipv4.
1374 public void convertFromBinaryTest_rloc() {
1375 final Rloc resultIpv4 = LispAddressUtil.convertFromBinary(IPV4_BINARY_RLOC);
1376 verifyToRlocWithIpv4(resultIpv4, false);
1380 * Tests {@link LispAddressUtil#convertToBinary(Rloc)} method with ipv4.
1383 public void convertToBinaryTest_rloc() {
1384 final Rloc resultIpv4Binary = LispAddressUtil.convertToBinary(IPV4_RLOC);
1385 verifyToRlocWithIpv4Binary(resultIpv4Binary, false);
1389 * Tests {@link LispAddressUtil#addressBinaryFromInet(InetAddress)} method with Inet4Address.
1392 public void addressBinaryFromInet_Inet4Address() throws UnknownHostException {
1393 final InetAddress inet4Address = InetAddress.getByName(IPV4_ADDRESS_VALUE_TEST);
1395 assertEquals(new IpAddressBinary(IPV4_ADDRESS_BINARY_TEST),
1396 LispAddressUtil.addressBinaryFromInet(inet4Address));
1400 * Tests {@link LispAddressUtil#addressBinaryFromInet(InetAddress)} method with Inet6Address.
1403 public void addressBinaryFromInet_Inet6Address() throws UnknownHostException {
1404 final InetAddress inet4Address = InetAddress.getByName(IPV6_ADDRESS_VALUE_TEST);
1406 assertEquals(new IpAddressBinary(IPV6_ADDRESS_BINARY_TEST),
1407 LispAddressUtil.addressBinaryFromInet(inet4Address));
1411 * Tests {@link LispAddressUtil#addressBinaryFromInet(InetAddress)} method with null address.
1414 public void addressBinaryFromInet_nullAddress() throws UnknownHostException {
1415 assertEquals(new IpAddressBinary(new IpAddressBinary(new Ipv4AddressBinary(new byte[]{127, 0, 0, 1}))),
1416 LispAddressUtil.addressBinaryFromInet(null));
1420 * Tests {@link LispAddressUtil#addressNeedsConversionToBinary} method with ipv4, ipv6, ipv4Prefix, ipv6Prefix and
1424 public void addressNeedsConversionToBinaryTest() {
1425 assertTrue(LispAddressUtil.addressNeedsConversionToBinary(IPV4));
1426 assertTrue(LispAddressUtil.addressNeedsConversionToBinary(IPV6));
1427 assertTrue(LispAddressUtil.addressNeedsConversionToBinary(IPV4_PREFIX));
1428 assertTrue(LispAddressUtil.addressNeedsConversionToBinary(IPV6_PREFIX));
1429 assertFalse(LispAddressUtil.addressNeedsConversionToBinary(IPV4_BINARY));
1433 * Tests {@link LispAddressUtil#addressNeedsConversionToBinary} method with ipv4, ipv6, ipv4Prefix, ipv6Prefix and
1437 public void addressNeedsConversionFromBinaryTest() {
1438 assertTrue(LispAddressUtil.addressNeedsConversionFromBinary(IPV4_BINARY));
1439 assertTrue(LispAddressUtil.addressNeedsConversionFromBinary(IPV6_BINARY));
1440 assertTrue(LispAddressUtil.addressNeedsConversionFromBinary(IPV4_ADDRESS_PREFIX_BINARY_1));
1441 assertTrue(LispAddressUtil.addressNeedsConversionFromBinary(IPV6_ADDRESS_PREFIX_BINARY_1));
1442 assertFalse(LispAddressUtil.addressNeedsConversionFromBinary(IPV4));
1446 * Tests {@link LispAddressUtil#compareIpAddressByteArrays(byte[], byte[])} with all possible combination
1447 * of input parameters to reach 100 % coverage.
1450 public void compareIpAddressByteArrays() throws UnknownHostException {
1451 int comparisonResult = LispAddressUtil.compareIpAddressByteArrays(IPV4_ADDRESS_BYTES_A_TEST,
1452 IPV6_ADDRESS_BYTES_A_TEST);
1453 assertEquals(-1, comparisonResult);
1455 comparisonResult = LispAddressUtil.compareIpAddressByteArrays(IPV6_ADDRESS_BYTES_A_TEST,
1456 IPV4_ADDRESS_BYTES_A_TEST);
1457 assertEquals(1, comparisonResult);
1459 comparisonResult = LispAddressUtil.compareIpAddressByteArrays(IPV4_ADDRESS_BYTES_A_TEST,
1460 IPV4_ADDRESS_BYTES_B_TEST);
1461 assertEquals(-1, comparisonResult);
1463 comparisonResult = LispAddressUtil.compareIpAddressByteArrays(IPV4_ADDRESS_BYTES_B_TEST,
1464 IPV4_ADDRESS_BYTES_A_TEST);
1465 assertEquals(1, comparisonResult);
1467 comparisonResult = LispAddressUtil.compareIpAddressByteArrays(IPV4_ADDRESS_BYTES_B_TEST,
1468 IPV4_ADDRESS_BYTES_B_TEST);
1469 assertEquals(0, comparisonResult);
1471 comparisonResult = LispAddressUtil.compareIpAddressByteArrays(IPV6_ADDRESS_BYTES_A_TEST,
1472 IPV6_ADDRESS_BYTES_B_TEST);
1473 assertEquals(-1, comparisonResult);
1475 comparisonResult = LispAddressUtil.compareIpAddressByteArrays(IPV6_ADDRESS_BYTES_B_TEST,
1476 IPV6_ADDRESS_BYTES_A_TEST);
1477 assertEquals(1, comparisonResult);
1479 comparisonResult = LispAddressUtil.compareIpAddressByteArrays(IPV6_ADDRESS_BYTES_B_TEST,
1480 IPV6_ADDRESS_BYTES_B_TEST);
1481 assertEquals(0, comparisonResult);
1483 comparisonResult = LispAddressUtil.compareIpAddressByteArrays(new byte[]{1, 2, 3, 4, 5},
1484 new byte[]{1, 2, 3, 4, 5});
1485 assertEquals(0, comparisonResult);
1490 * Tests {@link LispAddressUtil#asServicePathEid(long, long, short)} method.
1493 public void asServicePathEid() {
1494 final Eid eid = LispAddressUtil.asServicePathEid(INSTANCE_ID_TYPE_VALUE_TEST, SERVICE_PATH_ID_TEST,
1495 SERVICE_INDEX_TEST);
1498 assertEquals(ServicePathLcaf.class, eid.getAddressType());
1499 assertEquals(INSTANCE_ID_TYPE_TEST, eid.getVirtualNetworkId());
1500 ServicePath servicePath = ((org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp
1501 .address.types.rev151105.lisp.address.address.ServicePath) eid.getAddress()).getServicePath();
1502 assertNotNull(servicePath);
1503 assertEquals(SERVICE_INDEX_TEST, servicePath.getServiceIndex());
1504 assertEquals(SERVICE_PATH_ID_TEST, servicePath.getServicePathId().getValue());
1508 * Tests {@link LispAddressUtil#toIpPrefixEid(IpAddress, int)} method.
1511 public void toIpPrefixEid() throws UnknownHostException {
1512 final Eid eid = LispAddressUtil.toIpPrefixEid(IP_ADDRESS_IPV4_TEST,
1513 INSTANCE_ID_TYPE_VALUE_SHORT_TEST);
1514 verifyEidContainsIpPrefix(eid, MASK_OK_DEFAULT_IPV4_TEST);
1518 * Tests {@link LispAddressUtil#toEidNoVni(IpPrefix)} method.
1521 public void toEidNoVni() {
1522 final Eid eid = LispAddressUtil.toEidNoVni(IP_ADDRESS_PREFIX_WITH_IPV4_TEST);
1523 verifyEidContainsIpPrefix(eid, MASK_OK_TEST);
1526 public void verifyEidContainsIpPrefix(final Eid eid, final short mask) {
1527 final Ipv4Prefix expectedPrefix = new Ipv4Prefix(IPV4_ADDRESS_VALUE_TEST + "/" + mask);
1529 assertTrue(eid.getAddress() instanceof org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp
1530 .address.types.rev151105.lisp.address.address.Ipv4Prefix);
1531 final org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address
1532 .address.Ipv4Prefix address = (org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp
1533 .address.types.rev151105.lisp.address.address.Ipv4Prefix) eid.getAddress();
1534 assertEquals(expectedPrefix, address.getIpv4Prefix());
1538 * Tests {@link LispAddressUtil#asEid(SimpleAddress, InstanceIdType)} method.
1541 public void asEid() {
1542 final Eid eid = LispAddressUtil.asEid(SIMPLE_ADDRESS_IPV4_TEST, INSTANCE_ID_TYPE_TEST);
1544 assertEquals(Ipv4BinaryAfi.class, eid.getAddressType());
1545 final Ipv4Binary address = (Ipv4Binary) eid.getAddress();
1546 assertArrayEquals(InetAddresses.forString(SIMPLE_ADDRESS_IPV4_TEST.getIpAddress().getIpv4Address().getValue())
1547 .getAddress(), address.getIpv4Binary().getValue());
1548 assertEquals(INSTANCE_ID_TYPE_TEST, eid.getVirtualNetworkId());
1552 * Tests {@link LispAddressUtil#getIpPrefixMask(Eid)} method with Ipv4PrefixBinary.
1555 public void getIpPrefixMask_withIpv4PrefixBinary() {
1556 assertEquals(MASK_OK_TEST, LispAddressUtil.getIpPrefixMask(IPV4_ADDRESS_PREFIX_BINARY_EID_1));
1560 * Tests {@link LispAddressUtil#getIpPrefixMask(Eid)} method with Ipv6PrefixBinary.
1563 public void getIpPrefixMask_withIpv6PrefixBinary() {
1564 assertEquals(MASK_OK_TEST, LispAddressUtil.getIpPrefixMask(IPV6_ADDRESS_PREFIX_BINARY_EID_1));
1568 * Tests {@link LispAddressUtil#getIpPrefixMask(Eid)} method with Ipv4Binary.
1571 public void getIpPrefixMask_withIpv4Binary() {
1572 assertEquals((short) 0, LispAddressUtil.getIpPrefixMask(IPV4_ADDRESS_BINARY_EID));