2 * Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.lispflowmapping.lisp.util;
11 import static org.junit.Assert.assertEquals;
12 import static org.junit.Assert.assertNotNull;
13 import static org.junit.Assert.assertNull;
14 import static org.junit.Assert.assertTrue;
16 import java.net.Inet4Address;
17 import java.net.Inet6Address;
18 import java.net.InetAddress;
19 import java.net.UnknownHostException;
20 import org.junit.Test;
21 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.AsNumber;
22 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpAddress;
23 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpPrefix;
24 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Address;
25 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Prefix;
26 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv6Address;
27 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv6Prefix;
28 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.AsNumberAfi;
29 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.DistinguishedNameAfi;
30 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.DistinguishedNameType;
31 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.InstanceIdType;
32 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.Ipv4Afi;
33 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.Ipv4PrefixAfi;
34 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.Ipv6Afi;
35 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.Ipv6PrefixAfi;
36 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.LispAddressFamily;
37 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.MacAfi;
38 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.ServicePathIdType;
39 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.SimpleAddress;
40 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.Address;
41 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.DistinguishedName;
42 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.Ipv4;
43 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.Ipv6;
44 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.Mac;
45 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.service.path.ServicePath;
46 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev100924.MacAddress;
47 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.container.Eid;
48 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.container.EidBuilder;
49 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.rloc.container.Rloc;
51 public class LispAddressUtilTest {
54 private static final char[] DUMMY_CHARACTER_ARRAY_TEST = new char[]{'a', 'b', 'c', 'd'};
55 private static final Long NUMBER_TEST = 5L;
57 private static final String MAC_ADDRESS_VALUE_TEST = "aa:bb:cc:dd:ee:ff";
58 private static final MacAddress MAC_ADDRESS_TEST = new MacAddress("aa:bb:cc:dd:ee:ff");
60 private static final byte[] IPV4_ADDRESS_BYTES_TEST = new byte[]{(byte) 192, (byte) 168, 1, 1};
62 private static final short MASK_OK_TEST = 30;
63 private static final short MASK_OK_DEFAULT_IPV4_TEST = 32;
64 private static final short MASK_OK_DEFAULT_IPV6_TEST = 128;
66 private static final String IPV4_ADDRESS_VALUE_TEST = "192.168.1.1";
67 private static final String IPV4_ADDRESS_PREFIX_VALUE_TEST = IPV4_ADDRESS_VALUE_TEST + "/" + MASK_OK_TEST;
68 private static final Ipv4Address IPV4_ADDRESS_TEST = new Ipv4Address(IPV4_ADDRESS_VALUE_TEST);
69 private static final IpAddress IP_ADDRESS_OBJECT_GENERAL_TEST = new IpAddress(IPV4_ADDRESS_TEST);
70 private static final SimpleAddress SIMPLE_ADDRESS_TEST = new SimpleAddress(IP_ADDRESS_OBJECT_GENERAL_TEST);
71 private static final Ipv4Prefix IPV4_ADDRESS_PREFIX_TEST = new Ipv4Prefix(IPV4_ADDRESS_PREFIX_VALUE_TEST);
72 private static final IpPrefix IP_ADDRESS_PREFIX = new IpPrefix(IPV4_ADDRESS_PREFIX_TEST);
74 private static final byte[] IPV6_ADDRESS_BYTES_TEST = new byte[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
76 private static final String IPV6_ADDRESS_VALUE_TEST = "102:304:506:708:90a:b0c:d0e:f10";
77 private static final String IPV6_ADDRESS_PREFIX_VALUE_TEST = IPV6_ADDRESS_VALUE_TEST + "/" + MASK_OK_TEST;
78 private static final Ipv6Prefix IPV6_ADDRESS_PREFIX_TEST = new Ipv6Prefix(IPV6_ADDRESS_PREFIX_VALUE_TEST);
79 private static final Ipv6Address IPV6_ADDRESS_TEST = new Ipv6Address(IPV6_ADDRESS_VALUE_TEST);
81 private static final Short DUMMY_SERVICE_INDEX = 45;
82 private static final Long DUMMY_SERVICE_PATH_ID_TYPE = 46L;
83 private static final String DISTINGUISHED_NAME_TYPE_VALUE_TEST = "dummy distinguished name type";
84 private static final String DISTINGUISHED_NAME_TYPE_VALUE_WITH_MAC_TEST = MAC_ADDRESS_VALUE_TEST;
85 private static final DistinguishedNameType DISTINGUISHED_NAME_TYPE_TEST = new DistinguishedNameType
86 (DISTINGUISHED_NAME_TYPE_VALUE_TEST);
88 private static final Long AS_NUMBER_TEST = 100L;
89 private static final Long INSTANCE_ID_TYPE_VALUE_TEST = 121L;
90 private static final Short INSTANCE_ID_TYPE_VALUE_SHORT_TEST = 122;
91 private static final InstanceIdType INSTANCE_ID_TYPE_TEST = new InstanceIdType(INSTANCE_ID_TYPE_VALUE_TEST);
92 private static final String INCORRECT_IP_ADDRESS_TEST = "incorrect ip address";
95 * Tests {@link LispAddressUtil#addressTypeFromSimpleAddress} and {@link
96 * LispAddressUtil#addressFromSimpleAddress} methods
100 public void addressFromSimpleAddressTest_asAnyIpAddress() {
101 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromSimpleAddress
102 (SIMPLE_ADDRESS_TEST);
103 assertEquals(Ipv4Afi.class, addressClass);
105 final Address address = LispAddressUtil.addressFromSimpleAddress(SIMPLE_ADDRESS_TEST);
106 assertTrue(address instanceof Ipv4);
110 * Tests {@link LispAddressUtil#addressTypeFromSimpleAddress} and {@link
111 * LispAddressUtil#addressFromSimpleAddress} methods
115 public void addressFromSimpleAddressTest_asIpPrefix() {
116 final SimpleAddress simpleAddress = new SimpleAddress(new IpPrefix(new Ipv4Prefix(IPV4_ADDRESS_PREFIX_VALUE_TEST)));
117 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromSimpleAddress
119 assertEquals(Ipv4PrefixAfi.class, addressClass);
121 final Address address = LispAddressUtil.addressFromSimpleAddress(simpleAddress);
122 assertTrue(address instanceof org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address
123 .types.rev151105.lisp.address.address.Ipv4Prefix);
127 * Tests {@link LispAddressUtil#addressTypeFromSimpleAddress} and {@link
128 * LispAddressUtil#addressFromSimpleAddress} methods
132 public void addressFromSimpleAddressTest_asMacAddress() {
133 final SimpleAddress simpleAddress = new SimpleAddress(new MacAddress(MAC_ADDRESS_VALUE_TEST));
134 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromSimpleAddress
136 assertEquals(MacAfi.class, addressClass);
138 final Address address = LispAddressUtil.addressFromSimpleAddress(simpleAddress);
139 assertTrue(address instanceof Mac);
143 * Tests {@link LispAddressUtil#addressTypeFromSimpleAddress} and {@link
144 * LispAddressUtil#addressFromSimpleAddress} methods
145 * with general address
148 public void addressFromSimpleAddressTest_asAddress() {
149 final SimpleAddress simpleAddress = new SimpleAddress(DUMMY_CHARACTER_ARRAY_TEST);
150 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromSimpleAddress
152 assertEquals(DistinguishedNameAfi.class, addressClass);
154 final Address address = LispAddressUtil.addressFromSimpleAddress(simpleAddress);
155 assertTrue(address instanceof DistinguishedName);
159 * Tests {@link LispAddressUtil#addressTypeFromSimpleAddress} and {@link
160 * LispAddressUtil#addressFromSimpleAddress} methods
161 * with address as number
164 public void addressFromSimpleAddressTest_asNumber() {
165 final SimpleAddress simpleAddress = new SimpleAddress(new AsNumber(NUMBER_TEST));
166 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromSimpleAddress
168 assertEquals(AsNumberAfi.class, addressClass);
170 final Address address = LispAddressUtil.addressFromSimpleAddress(simpleAddress);
171 assertTrue(address instanceof org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address
172 .types.rev151105.lisp.address.address.AsNumber);
176 * Tests {@link LispAddressUtil#addressFromInet(InetAddress)} and {@link LispAddressUtil#addressTypeFromInet
178 * methods with ipv4 address
180 * @throws UnknownHostException
183 public void addressFromInet_ipv4() throws UnknownHostException {
184 final InetAddress ipv4InetAddress = Inet4Address.getByAddress(IPV4_ADDRESS_BYTES_TEST);
185 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromInet(ipv4InetAddress);
186 assertEquals(Ipv4Afi.class, addressClass);
188 final Address address = LispAddressUtil.addressFromInet(ipv4InetAddress);
189 assertTrue(address instanceof Ipv4);
190 assertEquals(IPV4_ADDRESS_VALUE_TEST, ((Ipv4) address).getIpv4().getValue());
194 * Tests {@link LispAddressUtil#addressFromInet(InetAddress)} and {@link LispAddressUtil#addressTypeFromInet
196 * methods with ipv6 address
198 * @throws UnknownHostException
201 public void addressFromInet_ipv6() throws UnknownHostException {
202 final InetAddress ipv6InetAddress = Inet6Address.getByAddress(IPV6_ADDRESS_BYTES_TEST);
203 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromInet(ipv6InetAddress);
204 assertEquals(Ipv6Afi.class, addressClass);
206 final Address address = LispAddressUtil.addressFromInet(ipv6InetAddress);
207 assertTrue(address instanceof Ipv6);
208 assertEquals(IPV6_ADDRESS_VALUE_TEST, ((Ipv6) address).getIpv6().getValue());
212 * Tests {@link LispAddressUtil#addressFromIpAddress(IpAddress)} and {@link
213 * LispAddressUtil#addressTypeFromIpAddress(IpAddress)}
214 * methods with ipv4 address
217 public void addressFromIpAddress_ipv4() {
218 final IpAddress ipv4Address = new IpAddress(IPV4_ADDRESS_TEST);
219 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromIpAddress(ipv4Address);
220 assertEquals(Ipv4Afi.class, addressClass);
222 final Address address = LispAddressUtil.addressFromIpAddress(ipv4Address);
223 assertTrue(address instanceof Ipv4);
224 assertEquals(IPV4_ADDRESS_VALUE_TEST, ((Ipv4) address).getIpv4().getValue());
228 * Tests {@link LispAddressUtil#addressFromIpAddress(IpAddress)} and {@link
229 * LispAddressUtil#addressTypeFromIpAddress(IpAddress)}
230 * methods with ipv6 address
233 public void addressFromIpAddress_ipv6() {
234 final IpAddress ipv6Address = new IpAddress(new Ipv6Address(IPV6_ADDRESS_VALUE_TEST));
235 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromIpAddress(ipv6Address);
236 assertEquals(Ipv6Afi.class, addressClass);
238 final Address address = LispAddressUtil.addressFromIpAddress(ipv6Address);
239 assertTrue(address instanceof Ipv6);
240 assertEquals(IPV6_ADDRESS_VALUE_TEST, ((Ipv6) address).getIpv6().getValue());
244 * Tests {@link LispAddressUtil#addressFromIpAddress(IpAddress)} and {@link
245 * LispAddressUtil#addressTypeFromIpAddress(IpAddress)}
246 * methods with null value instead off address.
249 public void addressFromIpAddress_null() {
250 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromIpAddress(null);
251 assertNull(addressClass);
253 final Address address = LispAddressUtil.addressFromIpAddress(null);
258 * Tests {@link LispAddressUtil#addressFromIpPrefix(IpPrefix)} and {@link
259 * LispAddressUtil#addressTypeFromIpPrefix(IpPrefix)}
260 * methods with ipv4 address
263 public void addressFromIpPrefix_ipv4() {
264 IpPrefix ipv4Prefix = new IpPrefix(new Ipv4Prefix(IPV4_ADDRESS_PREFIX_VALUE_TEST));
265 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromIpPrefix(ipv4Prefix);
266 assertEquals(Ipv4PrefixAfi.class, addressClass);
268 final Address address = LispAddressUtil.addressFromIpPrefix(ipv4Prefix);
269 assertTrue(address instanceof org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.
270 types.rev151105.lisp.address.address.Ipv4Prefix);
271 assertEquals(IPV4_ADDRESS_PREFIX_VALUE_TEST, ((org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.
272 address.types.rev151105.lisp.address.address.Ipv4Prefix) address).getIpv4Prefix().getValue());
276 * Tests {@link LispAddressUtil#addressFromIpPrefix(IpPrefix)} and {@link
277 * LispAddressUtil#addressTypeFromIpPrefix(IpPrefix)}
278 * methods with ipv6 address
281 public void addressFromIpPrefix_ipv6() {
282 IpPrefix ipv6Address = new IpPrefix(new Ipv6Prefix(IPV6_ADDRESS_PREFIX_VALUE_TEST));
283 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromIpPrefix(ipv6Address);
284 assertEquals(Ipv6PrefixAfi.class, addressClass);
286 final Address address = LispAddressUtil.addressFromIpPrefix(ipv6Address);
287 assertTrue(address instanceof org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address
288 .types.rev151105.lisp.address.address.Ipv6Prefix);
289 assertEquals(IPV6_ADDRESS_PREFIX_VALUE_TEST,
290 ((org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp
291 .address.address.Ipv6Prefix) address).getIpv6Prefix().getValue());
295 * Tests {@link LispAddressUtil#addressFromIpPrefix(IpPrefix)} and {@link LispAddressUtil#addressTypeFromIpPrefix
297 * methods with null value instead off address.
300 public void addressFromIpPrefix_null() {
301 final Class<? extends LispAddressFamily> addressClass = LispAddressUtil.addressTypeFromIpPrefix(null);
302 assertNull(addressClass);
304 final Address address = LispAddressUtil.addressFromIpPrefix(null);
309 * Tests {@link LispAddressUtil#addressFromMacAddress(MacAddress)} methods with mac address.
312 public void addressFromMacAddress_mac() {
313 final Address address = LispAddressUtil.addressFromMacAddress(new MacAddress(MAC_ADDRESS_VALUE_TEST));
314 assertTrue(address instanceof Mac);
315 assertEquals(MAC_ADDRESS_VALUE_TEST, ((Mac) address).getMac().getValue());
319 * Tests {@link LispAddressUtil#addressFromMacAddress(MacAddress)} methods with null instead of address.
322 public void addressFromMacAddress_null() {
323 final Address address = LispAddressUtil.addressFromMacAddress(null);
329 * Test {@link LispAddressUtil#addressFromServicePath(ServicePath)} method with concrete servicePath
332 public void addressFromServicePathTest_withServicePath() {
333 org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address
334 .address.service.path.ServicePathBuilder servicePathBuilder = new org.opendaylight.yang.gen.v1.urn.ietf
335 .params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address
336 .address.service.path.ServicePathBuilder();
337 servicePathBuilder.setServiceIndex(DUMMY_SERVICE_INDEX);
338 servicePathBuilder.setServicePathId(new ServicePathIdType(DUMMY_SERVICE_PATH_ID_TYPE));
340 ServicePath expectedAddress = servicePathBuilder.build();
341 final Address testedAddress = LispAddressUtil.addressFromServicePath(expectedAddress);
342 assertTrue(testedAddress instanceof org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address
343 .types.rev151105.lisp.address.address.ServicePath);
344 assertEquals(expectedAddress, ((org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address
345 .types.rev151105.lisp.address.address.ServicePath) testedAddress).getServicePath());
349 * Test {@link LispAddressUtil#addressFromServicePath(ServicePath)} method with null value
352 public void addressFromServicePathTest_withNull() {
353 final Address testedAddress = LispAddressUtil.addressFromServicePath(null);
354 assertNull(testedAddress);
358 * Test {@link LispAddressUtil#addressFromDistinguishedName(DistinguishedNameType)} method with distinguished name }
361 public void addressFromDistinguishedNameTest_withDistinguishedName() {
362 final DistinguishedNameType distinguishedNameType = new DistinguishedNameType(DISTINGUISHED_NAME_TYPE_VALUE_TEST);
363 final Address testedAddress = LispAddressUtil.addressFromDistinguishedName(distinguishedNameType);
365 assertTrue(testedAddress instanceof DistinguishedName);
366 assertEquals(distinguishedNameType, ((DistinguishedName) testedAddress).getDistinguishedName());
370 * Test {@link LispAddressUtil#addressFromDistinguishedName(DistinguishedNameType)} method with null value }
373 public void addressFromDistinguishedNameTest_withNull() {
374 final Address testedAddress = LispAddressUtil.addressFromDistinguishedName(null);
375 assertNull(testedAddress);
379 * Test {@link LispAddressUtil#addressFromAsNumber(AsNumber)} method with as number value }
382 public void addressFromAsNumberTest_withAdNumber() {
383 final AsNumber expectedAddress = new AsNumber(AS_NUMBER_TEST);
384 final Address testedAddress = LispAddressUtil.addressFromAsNumber(expectedAddress);
385 assertTrue(testedAddress instanceof org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp
386 .address.types.rev151105.lisp.address.address.AsNumber);
387 assertEquals(expectedAddress, ((org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp
388 .address.types.rev151105.lisp.address.address.AsNumber) testedAddress).getAsNumber());
392 * Test {@link LispAddressUtil#addressFromAsNumber(AsNumber)} method with null instead of value }
395 public void addressFromAsNumberTest_withNull() {
396 final Address testedAddress = LispAddressUtil.addressFromAsNumber(null);
397 assertNull(testedAddress);
403 * - {@link LispAddressUtil#toRloc(InetAddress)}
404 * - {@link LispAddressUtil#toRloc(Ipv4Address)}
405 * - {@link LispAddressUtil#toRloc(Ipv6Address)}
406 * - {@link LispAddressUtil#toRloc(SimpleAddress)}
410 public void toRloc() throws UnknownHostException {
411 InetAddress ipv4AddressInet = Inet4Address.getByAddress(IPV4_ADDRESS_BYTES_TEST);
412 final Rloc rlocFromInetAddress = LispAddressUtil.toRloc(ipv4AddressInet);
413 assertEquals(Ipv4Afi.class, rlocFromInetAddress.getAddressType());
414 assertEquals(IPV4_ADDRESS_VALUE_TEST, ((Ipv4)rlocFromInetAddress.getAddress()).getIpv4().getValue());
416 final Rloc rlocFromIpv4Address = LispAddressUtil.toRloc(IPV4_ADDRESS_TEST);
417 assertEquals(Ipv4Afi.class, rlocFromIpv4Address.getAddressType());
418 assertEquals(IPV4_ADDRESS_VALUE_TEST, ((Ipv4) rlocFromIpv4Address.getAddress()).getIpv4().getValue());
421 final Rloc rlocFromIpv6Address = LispAddressUtil.toRloc(IPV6_ADDRESS_TEST);
422 assertEquals(Ipv6Afi.class, rlocFromIpv6Address.getAddressType());
423 assertEquals(IPV6_ADDRESS_VALUE_TEST, ((Ipv6) rlocFromIpv6Address.getAddress()).getIpv6().getValue());
425 final Rloc rlocFromSimpleAddress = LispAddressUtil.toRloc(SIMPLE_ADDRESS_TEST);
426 assertEquals(Ipv4Afi.class, rlocFromSimpleAddress.getAddressType());
427 assertEquals(IPV4_ADDRESS_VALUE_TEST, ((Ipv4) rlocFromSimpleAddress.getAddress()).getIpv4().getValue());
431 * Test {@link LispAddressUtil#asIpv4Rloc(String)} method with ipv4 or ipv6.
432 * Test {@link LispAddressUtil#asIpv6Rloc(String)} method with ipv4 or ipv6.
435 public void asIpvRloc() {
436 final Rloc rlocFromIpV4 = LispAddressUtil.asIpv4Rloc(IPV4_ADDRESS_VALUE_TEST);
437 assertEquals(Ipv4Afi.class, rlocFromIpV4.getAddressType());
438 assertEquals(IPV4_ADDRESS_VALUE_TEST, ((Ipv4) rlocFromIpV4.getAddress()).getIpv4().getValue());
440 final Rloc rlocFromIpV6 = LispAddressUtil.asIpv6Rloc(IPV6_ADDRESS_VALUE_TEST);
441 assertEquals(Ipv6Afi.class, rlocFromIpV6.getAddressType());
442 assertEquals(IPV6_ADDRESS_VALUE_TEST, ((Ipv6) rlocFromIpV6.getAddress()).getIpv6().getValue());
447 * - {@link LispAddressUtil#toEid(Ipv6Address, InstanceIdType)}
448 * - {@link LispAddressUtil#asIpv6PrefixEid(String)}
449 * - {@link LispAddressUtil#asIpv6PrefixEid(Eid, Inet6Address, short)}
450 * - {@link LispAddressUtil#asIpv6PrefixEid(Ipv6Address, InstanceIdType)}
454 public void toEid_ipv6Prefix() throws UnknownHostException {
455 Eid eidFromIpv6Prefix = LispAddressUtil.toEid(IPV6_ADDRESS_PREFIX_TEST, INSTANCE_ID_TYPE_TEST);
456 verifyToEidWithIpv6Prefix(eidFromIpv6Prefix, true, MASK_OK_TEST, Ipv6PrefixAfi.class);
458 eidFromIpv6Prefix = LispAddressUtil.asIpv6PrefixEid(IPV6_ADDRESS_PREFIX_VALUE_TEST);
459 verifyToEidWithIpv6Prefix(eidFromIpv6Prefix, false, MASK_OK_TEST, Ipv6PrefixAfi.class);
461 eidFromIpv6Prefix = LispAddressUtil.asIpv6PrefixEid(IPV6_ADDRESS_TEST, INSTANCE_ID_TYPE_TEST);
462 verifyToEidWithIpv6Prefix(eidFromIpv6Prefix, true, MASK_OK_DEFAULT_IPV6_TEST, Ipv6PrefixAfi.class);
467 * - {@link LispAddressUtil#toEid(MacAddress, InstanceIdType)}
468 * - {@link LispAddressUtil#asMacEid(String)}
469 * - {@link LispAddressUtil#asMacEid(String, long)}
473 public void toEid_mac() {
474 Eid eidFromMac = LispAddressUtil.toEid(MAC_ADDRESS_TEST, INSTANCE_ID_TYPE_TEST);
475 verifyToEidWithMacAddress(eidFromMac, true);
477 eidFromMac = LispAddressUtil.asMacEid(MAC_ADDRESS_VALUE_TEST);
478 verifyToEidWithMacAddress(eidFromMac, false);
480 eidFromMac = LispAddressUtil.asMacEid(MAC_ADDRESS_VALUE_TEST, INSTANCE_ID_TYPE_VALUE_TEST);
481 verifyToEidWithMacAddress(eidFromMac, true);
486 * - {@link LispAddressUtil#toEid(Ipv6Address, InstanceIdType)}
487 * - {@link LispAddressUtil#asIpv6Eid(String)}
488 * - {@link LispAddressUtil#asIpv6Eid(String, long)}
492 public void toEid_ipv6() {
493 Eid eidFromIpv6 = LispAddressUtil.toEid(IPV6_ADDRESS_TEST, INSTANCE_ID_TYPE_TEST);
494 verifyToEidWithIpv6(eidFromIpv6, true);
496 eidFromIpv6 = LispAddressUtil.asIpv6Eid(IPV6_ADDRESS_VALUE_TEST);
497 verifyToEidWithIpv6(eidFromIpv6, false);
499 eidFromIpv6 = LispAddressUtil.asIpv6Eid(IPV6_ADDRESS_VALUE_TEST, INSTANCE_ID_TYPE_VALUE_TEST);
500 verifyToEidWithIpv6(eidFromIpv6, true);
505 * - {@link LispAddressUtil#toEid(Ipv4Prefix, InstanceIdType)}
506 * - {@link LispAddressUtil#asIpv4PrefixEid(String)}
507 * - {@link LispAddressUtil#asIpv4PrefixEid(Eid, Inet4Address, short)}
508 * - {@link LispAddressUtil#asIpv4PrefixEid(Ipv4Address, InstanceIdType)} }
512 public void toEid_ipv4Prefix() throws UnknownHostException {
513 Eid eidFromIpv4Prefix = LispAddressUtil.toEid(IPV4_ADDRESS_PREFIX_TEST, INSTANCE_ID_TYPE_TEST);
514 verifyToEidWithIpv4Prefix(eidFromIpv4Prefix, true, MASK_OK_TEST, Ipv4PrefixAfi.class);
516 eidFromIpv4Prefix = LispAddressUtil.asIpv4PrefixEid(IPV4_ADDRESS_PREFIX_VALUE_TEST);
517 verifyToEidWithIpv4Prefix(eidFromIpv4Prefix, false, MASK_OK_TEST, Ipv4PrefixAfi.class);
519 eidFromIpv4Prefix = LispAddressUtil.asIpv4PrefixEid(IPV4_ADDRESS_TEST, INSTANCE_ID_TYPE_TEST);
520 verifyToEidWithIpv4Prefix(eidFromIpv4Prefix, false, (short)32, Ipv4PrefixAfi.class);
523 public Eid provideDummyMacEid() {
524 final EidBuilder eidBuilder = new EidBuilder();
525 eidBuilder.setAddressType(MacAfi.class);
526 eidBuilder.setVirtualNetworkId(INSTANCE_ID_TYPE_TEST);
527 return eidBuilder.build();
532 * - {@link LispAddressUtil#toEid(Ipv4Address, InstanceIdType)}
533 * - {@link LispAddressUtil#asIpv4Eid(String)}
534 * - {@link LispAddressUtil#asIpv4Eid(String, long)}
538 public void toEid_ipv4() {
539 Eid eidFromIpv4 = LispAddressUtil.toEid(IPV4_ADDRESS_TEST, INSTANCE_ID_TYPE_TEST);
540 verifyToEidWithIpv4(eidFromIpv4, true);
542 eidFromIpv4 = LispAddressUtil.asIpv4Eid(IPV4_ADDRESS_VALUE_TEST);
543 verifyToEidWithIpv4(eidFromIpv4, false);
545 eidFromIpv4 = LispAddressUtil.asIpv4Eid(IPV4_ADDRESS_VALUE_TEST, INSTANCE_ID_TYPE_VALUE_TEST);
546 verifyToEidWithIpv4(eidFromIpv4, true);
551 * - {@link LispAddressUtil#toEid(IpPrefix, InstanceIdType)}
555 public void toEid_ipPrefix() {
556 final Eid eidFromIpPrefix = LispAddressUtil.toEid(IP_ADDRESS_PREFIX, INSTANCE_ID_TYPE_TEST);
557 verifyToEidWithIpv4Prefix(eidFromIpPrefix, true, MASK_OK_TEST, Ipv4PrefixAfi.class);
562 * - {@link LispAddressUtil#toEid(DistinguishedNameType, InstanceIdType)}
563 * - {@link LispAddressUtil#asDistinguishedNameEid(String)}
564 * - {@link LispAddressUtil#asDistinguishedNameEid(String, long)}
565 * methods with various input.
568 public void toEid_distinguishedName() {
569 Eid eidFromDistinguishedName = LispAddressUtil.toEid(DISTINGUISHED_NAME_TYPE_TEST, INSTANCE_ID_TYPE_TEST);
570 verifyToEidWithDistinguishedName(eidFromDistinguishedName, true);
572 eidFromDistinguishedName = LispAddressUtil.asDistinguishedNameEid(DISTINGUISHED_NAME_TYPE_VALUE_TEST);
573 verifyToEidWithDistinguishedName(eidFromDistinguishedName, false);
575 eidFromDistinguishedName = LispAddressUtil.asDistinguishedNameEid
576 (DISTINGUISHED_NAME_TYPE_VALUE_WITH_MAC_TEST, INSTANCE_ID_TYPE_VALUE_TEST);
577 verifyToEidWithMacAddress(eidFromDistinguishedName, true);
580 private void verifyToEidWithIpv6Prefix(final Eid eidFromIpv6Prefix, final boolean isVniChecked, short
581 expectedMask, final Class<? extends org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp
582 .address.types.rev151105.LispAddressFamily> addressType) {
583 assertEquals(addressType, eidFromIpv6Prefix.getAddressType());
585 assertEquals(INSTANCE_ID_TYPE_TEST, eidFromIpv6Prefix.getVirtualNetworkId());
587 assertEquals(IPV6_ADDRESS_VALUE_TEST + "/" + expectedMask, ((org.opendaylight.yang.gen.v1.urn.ietf.params.xml
588 .ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.Ipv6Prefix) eidFromIpv6Prefix
589 .getAddress()).getIpv6Prefix().getValue());
592 private void verifyToEidWithIpv4(final Eid eidFromIpv4, final boolean isVniChecked) {
593 assertEquals(Ipv4Afi.class, eidFromIpv4.getAddressType());
595 assertEquals(INSTANCE_ID_TYPE_TEST, eidFromIpv4.getVirtualNetworkId());
597 assertEquals(IPV4_ADDRESS_VALUE_TEST, ((Ipv4) eidFromIpv4.getAddress()).getIpv4().getValue());
600 private void verifyToEidWithIpv6(final Eid eidFromIpv6, final boolean isVniChecked) {
601 assertEquals(Ipv6Afi.class, eidFromIpv6.getAddressType());
603 assertEquals(INSTANCE_ID_TYPE_TEST, eidFromIpv6.getVirtualNetworkId());
605 assertEquals(IPV6_ADDRESS_VALUE_TEST, ((Ipv6)eidFromIpv6.getAddress()).getIpv6().getValue());
608 private void verifyToEidWithIpv4Prefix(final Eid eidFromIpv4Prefix, final boolean isVniChecked, short
609 expectedMask, Class<? extends org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address
610 .types.rev151105.LispAddressFamily> addressType) {
611 assertEquals(addressType, eidFromIpv4Prefix.getAddressType());
613 assertEquals(INSTANCE_ID_TYPE_TEST, eidFromIpv4Prefix.getVirtualNetworkId());
615 assertEquals(IPV4_ADDRESS_VALUE_TEST +"/"+expectedMask, ((org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns
617 .lisp.address.types.rev151105.lisp.address.address.Ipv4Prefix)eidFromIpv4Prefix.getAddress())
618 .getIpv4Prefix().getValue());
621 private void verifyToEidWithDistinguishedName(final Eid eidFromDistinguishedName, final boolean isVniChecked) {
622 assertEquals(DistinguishedNameAfi.class, eidFromDistinguishedName.getAddressType());
624 assertEquals(INSTANCE_ID_TYPE_TEST, eidFromDistinguishedName.getVirtualNetworkId());
626 assertEquals(DISTINGUISHED_NAME_TYPE_TEST, ((DistinguishedName)eidFromDistinguishedName.getAddress())
627 .getDistinguishedName());
630 private void verifyToEidWithMacAddress(final Eid eidFromMac, final boolean isVniChecked) {
631 assertEquals(MacAfi.class, eidFromMac.getAddressType());
633 assertEquals(INSTANCE_ID_TYPE_TEST, eidFromMac.getVirtualNetworkId());
635 assertEquals(MAC_ADDRESS_VALUE_TEST, ((Mac)eidFromMac.getAddress()).getMac().getValue());
639 * Tests {@link LispAddressUtil#asIpPrefix(String, int)} with ipv4 address and correct mask
642 public void asIpPrefix_ipv4() {
643 final IpPrefix ipPrefix = LispAddressUtil.asIpPrefix(IPV4_ADDRESS_VALUE_TEST, MASK_OK_TEST);
644 assertNotNull(ipPrefix);
645 final Ipv4Prefix ipv4Prefix = ipPrefix.getIpv4Prefix();
646 assertNotNull(ipv4Prefix);
647 assertEquals(IPV4_ADDRESS_PREFIX_TEST, ipv4Prefix);
651 * Tests {@link LispAddressUtil#asIpPrefix(String, int)} with ipv6 address and correct mask
654 public void asIpPrefix_ipv6() {
655 final IpPrefix ipPrefix = LispAddressUtil.asIpPrefix(IPV6_ADDRESS_VALUE_TEST, MASK_OK_TEST);
656 assertNotNull(ipPrefix);
657 final Ipv6Prefix ipv6Prefix = ipPrefix.getIpv6Prefix();
658 assertNotNull(ipv6Prefix);
659 assertEquals(IPV6_ADDRESS_PREFIX_TEST, ipv6Prefix);
663 * Tests {@link LispAddressUtil#asIpPrefix(String, int)} with incorrect ip address and correct mask
666 public void asIpPrefix_other() {
667 final IpPrefix ipPrefix = LispAddressUtil.asIpPrefix(INCORRECT_IP_ADDRESS_TEST, MASK_OK_TEST);
668 assertNull(ipPrefix);
672 * Tests {@link LispAddressUtil#ipVersionFromString(String)} with ipv4
675 public void ipVersionFromString_ipv4() {
676 final int addressType = LispAddressUtil.ipVersionFromString(IPV4_ADDRESS_VALUE_TEST);
677 assertEquals(4, addressType);
680 * Tests {@link LispAddressUtil#ipVersionFromString(String)} with ipv6
683 public void ipVersionFromString_ipv6() {
684 final int addressType = LispAddressUtil.ipVersionFromString(IPV6_ADDRESS_VALUE_TEST);
685 assertEquals(6, addressType);
688 * Tests {@link LispAddressUtil#ipVersionFromString(String)} with incorrect ip address format
691 public void ipVersionFromString_other() {
692 final int addressType = LispAddressUtil.ipVersionFromString(INCORRECT_IP_ADDRESS_TEST);
693 assertEquals(0, addressType);