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.assertEquals;
11 import static org.junit.Assert.assertNull;
13 import com.google.common.io.BaseEncoding;
15 import java.util.ArrayList;
16 import java.util.List;
18 import org.junit.Test;
19 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.AsNumber;
20 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
21 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix;
22 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
23 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix;
24 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Address;
25 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Prefix;
26 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
27 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.DistinguishedNameType;
28 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.InstanceIdType;
29 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.LispAddress;
30 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.ServicePathIdType;
31 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.SimpleAddress;
32 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address
34 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address
36 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address
38 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address
39 .ApplicationDataBuilder;
40 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address
42 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address
44 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address
45 .DistinguishedNameBuilder;
46 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address
48 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address
49 .ExplicitLocatorPathBuilder;
50 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
54 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address
56 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address
58 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address
60 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address
62 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address
64 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address
66 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address
68 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address
69 .KeyValueAddressBuilder;
70 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address
72 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address
74 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address
76 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address
78 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address
80 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address
82 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address
84 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address
85 .SourceDestKeyBuilder;
86 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address
87 .explicit.locator.path.explicit.locator.path.Hop;
88 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address
89 .explicit.locator.path.explicit.locator.path.HopBuilder;
90 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address
91 .explicit.locator.path.explicit.locator.path.HopKey;
92 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress;
93 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.inet.binary.types.rev160303.Ipv4AddressBinary;
94 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.inet.binary.types.rev160303.Ipv6AddressBinary;
95 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.binary.address.types.rev160504.augmented.lisp.address.address.Ipv4Binary;
96 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.binary.address.types.rev160504.augmented.lisp.address.address.Ipv4BinaryBuilder;
98 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.binary.address.types.rev160504.augmented.lisp.address
99 .address.Ipv4PrefixBinary;
100 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.binary.address.types.rev160504.augmented.lisp.address
101 .address.Ipv4PrefixBinaryBuilder;
102 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.binary.address.types.rev160504.augmented.lisp.address.address.Ipv6Binary;
103 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.binary.address.types.rev160504.augmented.lisp.address.address.Ipv6BinaryBuilder;
105 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.binary.address.types.rev160504.augmented.lisp.address
106 .address.Ipv6PrefixBinary;
107 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.binary.address.types.rev160504.augmented.lisp.address
108 .address.Ipv6PrefixBinaryBuilder;
109 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.XtrId;
110 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.container.EidBuilder;
112 public class LispAddressStringifierTest {
114 private static final long VNI = 100L;
115 private static final long IID = 200L;
118 private static final String IPV4_STRING = "192.168.0.1";
119 private static final Ipv4Address IPV4_ADDRESS = new Ipv4Address(IPV4_STRING);
120 private static final Ipv4 IPV4 = new Ipv4Builder().setIpv4(IPV4_ADDRESS).build();
121 private static final LispAddress LISP_IPV4 = new EidBuilder()
123 .setVirtualNetworkId(new InstanceIdType(VNI)).build();
126 private static final byte[] IPV4_BYTES = new byte[]{(byte) 192, (byte) 168, 0, 1};
127 private static final Ipv4AddressBinary IPV4_ADDRESS_BINARY = new Ipv4AddressBinary(IPV4_BYTES);
128 private static final Ipv4Binary IPV4_BINARY = new Ipv4BinaryBuilder().setIpv4Binary(IPV4_ADDRESS_BINARY).build();
129 private static final LispAddress LISP_IPV4_BINARY = new EidBuilder()
130 .setAddress(IPV4_BINARY)
131 .setVirtualNetworkId(new InstanceIdType(VNI)).build();
134 private static final String IPV6_STRING = "1111:2222:3333:4444:5555:6666:7777:8888";
135 private static final Ipv6Address IPV6_ADDRESS = new Ipv6Address(IPV6_STRING);
136 private static final Ipv6 IPV6 = new Ipv6Builder().setIpv6(new Ipv6Address(IPV6_STRING)).build();
137 private static final LispAddress LISP_IPV6 = new EidBuilder().setAddress(IPV6).build();
140 private static final byte[] IPV6_BYTES = new byte[]
141 {17, 17, 34, 34, 51, 51, 68, 68, 85, 85, 102, 102, 119, 119, -120, -120};
142 private static final Ipv6AddressBinary IPV6_ADDRESS_BINARY = new Ipv6AddressBinary(IPV6_BYTES);
143 private static final Ipv6Binary IPV6_BINARY = new Ipv6BinaryBuilder().setIpv6Binary(IPV6_ADDRESS_BINARY).build();
144 private static final LispAddress LISP_IPV6_BINARY = new EidBuilder().setAddress(IPV6_BINARY).build();
147 private static final String PREFIX = "/24";
148 private static final String PREFIX_URL = "%2f24";
149 private static final org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105
150 .lisp.address.address.Ipv4Prefix IPV4_PREFIX = new Ipv4PrefixBuilder()
151 .setIpv4Prefix(new Ipv4Prefix(IPV4_STRING + PREFIX)).build();
152 private static final LispAddress LISP_IPV4_PREFIX = new EidBuilder().setAddress(IPV4_PREFIX).build();
155 private static final org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105
156 .lisp.address.address.Ipv6Prefix IPV6_PREFIX = new Ipv6PrefixBuilder()
157 .setIpv6Prefix(new Ipv6Prefix(IPV6_STRING + PREFIX)).build();
158 private static final LispAddress LISP_IPV6_PREFIX = new EidBuilder().setAddress(IPV6_PREFIX).build();
161 private static final Ipv4PrefixBinary IPV4_PREFIX_BINARY = new Ipv4PrefixBinaryBuilder()
162 .setIpv4AddressBinary(IPV4_ADDRESS_BINARY)
163 .setIpv4MaskLength((short) 24).build();
164 private static final LispAddress LISP_IPV4_PREFIX_BINARY = new EidBuilder().setAddress(IPV4_PREFIX_BINARY).build();
167 private static final Ipv6PrefixBinary IPV6_PREFIX_BINARY = new Ipv6PrefixBinaryBuilder()
168 .setIpv6AddressBinary(IPV6_ADDRESS_BINARY)
169 .setIpv6MaskLength((short) 24).build();
170 private static final LispAddress LISP_IPV6_PREFIX_BINARY = new EidBuilder().setAddress(IPV6_PREFIX_BINARY).build();
173 private static final MacAddress MAC_ADDRESS = new MacAddress("01:23:45:67:89:ab");
174 private static final Mac MAC = new MacBuilder().setMac(MAC_ADDRESS).build();
175 private static final LispAddress LISP_MAC = new EidBuilder().setAddress(MAC).build();
177 // DistinguishedNameType
178 private static final DistinguishedNameType DISTINGUISHED_NAME_TYPE =
179 new DistinguishedNameType("distinguished_name");
180 private static final DistinguishedName DISTINGUISHED_NAME = new DistinguishedNameBuilder()
181 .setDistinguishedName(DISTINGUISHED_NAME_TYPE).build();
182 private static final LispAddress LISP_DISTINGUISHED_NAME = new EidBuilder().setAddress(DISTINGUISHED_NAME).build();
185 private static final AsNumber AS_NUMBER = new AsNumber(300L);
186 private static final org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp
187 .address.address.AsNumber AS_NUMBER_LISP_TYPE = new AsNumberBuilder().setAsNumber(AS_NUMBER).build();
188 private static final LispAddress LISP_AS_NUMBER = new EidBuilder().setAddress(AS_NUMBER_LISP_TYPE).build();
191 private static final NoAddress NO_ADDRESS = new NoAddressBuilder().setNoAddress(true).build();
192 private static final LispAddress LISP_NO_ADDRESS = new EidBuilder().setAddress(NO_ADDRESS).build();
195 private static final SimpleAddress SIMPLE_ADDRESS_1 = new SimpleAddress(new IpAddress(IPV4_ADDRESS));
196 private static final SimpleAddress SIMPLE_ADDRESS_2 = new SimpleAddress(new IpAddress(IPV6_ADDRESS));
197 private static final List<SimpleAddress> ADDRESS_LIST = new ArrayList<>();
198 private static final AfiList AFI_LIST = new AfiListBuilder().setAfiList(new org.opendaylight.yang.gen.v1.urn.ietf
199 .params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.afi.list.AfiListBuilder()
200 .setAddressList(ADDRESS_LIST).build()).build();
203 private static final LispAddress LISP_AFI_LIST = new EidBuilder().setAddress(AFI_LIST).build();
204 private static final ApplicationData APPLICATION_DATA = new ApplicationDataBuilder().setApplicationData(new org
205 .opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address
206 .application.data.ApplicationDataBuilder()
207 .setAddress(SIMPLE_ADDRESS_1)
209 .setLocalPortHigh(new PortNumber(1234))
210 .setLocalPortLow(new PortNumber(1111))
211 .setProtocol((short)1)
212 .setRemotePortHigh(new PortNumber(9999))
213 .setRemotePortLow(new PortNumber(1000)).build()).build();
214 private static final LispAddress LISP_APPLICATION_DATA = new EidBuilder().setAddress(APPLICATION_DATA).build();
216 // ExplicitLocatorPath
217 private static final Hop HOP_1 = new HopBuilder()
219 .setAddress(SIMPLE_ADDRESS_1)
220 .setKey(new HopKey("hop_1"))
221 .setLrsBits(new Hop.LrsBits(true, true, true)).build();
222 private static final Hop HOP_2 = new HopBuilder()
224 .setAddress(SIMPLE_ADDRESS_2)
225 .setKey(new HopKey("hop_2"))
226 .setLrsBits(new Hop.LrsBits(true, true, true)).build();
227 private static final List<Hop> HOP_LIST = new ArrayList<>();
228 private static final ExplicitLocatorPath EXPLICIT_LOCATOR_PATH = new ExplicitLocatorPathBuilder()
229 .setExplicitLocatorPath(new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types
230 .rev151105.lisp.address.address.explicit.locator.path.ExplicitLocatorPathBuilder().setHop(HOP_LIST)
232 private static final LispAddress LISP_EXPLICIT_LOCATOR_PATH = new EidBuilder().setAddress(EXPLICIT_LOCATOR_PATH)
236 private static final SourceDestKey SOURCE_DEST_KEY = new SourceDestKeyBuilder().setSourceDestKey(new org
237 .opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address
238 .source.dest.key.SourceDestKeyBuilder().setSource(SIMPLE_ADDRESS_1)
239 .setDest(SIMPLE_ADDRESS_2).build()).build();
240 private static final LispAddress LISP_SOURCE_DEST_KEY = new EidBuilder().setAddress(SOURCE_DEST_KEY).build();
243 private static final KeyValueAddress KEY_VALUE_ADDRESS = new KeyValueAddressBuilder()
244 .setKeyValueAddress(new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types
245 .rev151105.lisp.address.address.key.value.address.KeyValueAddressBuilder().setKey(SIMPLE_ADDRESS_1)
246 .setValue(SIMPLE_ADDRESS_2).build()).build();
247 private static final LispAddress LISP_KEY_VALUE_ADDRESS = new EidBuilder().setAddress(KEY_VALUE_ADDRESS).build();
250 private static final ServicePathIdType SERVICE_PATH_ID_TYPE = new ServicePathIdType(123L);
251 private static final ServicePath SERVICE_PATH = new ServicePathBuilder().setServicePath(new org.opendaylight.yang
252 .gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.service.path
253 .ServicePathBuilder().setServiceIndex((short) 1)
254 .setServicePathId(SERVICE_PATH_ID_TYPE).build()).build();
255 private static final LispAddress LISP_SERVICE_PATH = new EidBuilder().setAddress(SERVICE_PATH).build();
257 // InstanceId with Ipv4
258 private static final InstanceIdType INSTANCE_ID_TYPE = new InstanceIdType(IID);
259 private static final InstanceId INSTANCE_ID_IPV4 = new InstanceIdBuilder().setInstanceId(new org.opendaylight.yang
260 .gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.instance.id
261 .InstanceIdBuilder().setAddress(new SimpleAddress(new IpAddress(IPV4_ADDRESS)))
262 .setIid(INSTANCE_ID_TYPE).build()).build();
263 private static final LispAddress LISP_IID_IPV4 = new EidBuilder().setAddress(INSTANCE_ID_IPV4).build();
265 // InstanceId with Ipv6
266 private static final InstanceId INSTANCE_ID_IPV6 = new InstanceIdBuilder().setInstanceId(new org.opendaylight.yang
267 .gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.instance.id
268 .InstanceIdBuilder().setAddress(new SimpleAddress(new IpAddress(IPV6_ADDRESS)))
269 .setIid(INSTANCE_ID_TYPE).build()).build();
270 private static final LispAddress LISP_IID_IPV6 = new EidBuilder().setAddress(INSTANCE_ID_IPV6).build();
272 // InstanceId with Ipv4Prefix
273 private static final InstanceId INSTANCE_ID_IPV4_PREFIX = new InstanceIdBuilder().setInstanceId(new org.opendaylight
274 .yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.instance.id
275 .InstanceIdBuilder().setAddress(new SimpleAddress(new IpPrefix(new Ipv4Prefix(IPV4_STRING + PREFIX))))
276 .setIid(INSTANCE_ID_TYPE).build()).build();
277 private static final LispAddress LISP_IID_IPV4_PREFIX = new EidBuilder().setAddress(INSTANCE_ID_IPV4_PREFIX)
280 // InstanceId with Ipv6Prefix
281 private static final InstanceId INSTANCE_ID_IPV6_PREFIX = new InstanceIdBuilder().setInstanceId(new org.opendaylight
282 .yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.instance.id
283 .InstanceIdBuilder().setAddress(new SimpleAddress(new IpPrefix(new Ipv6Prefix(IPV6_STRING + PREFIX))))
284 .setIid(INSTANCE_ID_TYPE).build()).build();
285 private static final LispAddress LISP_IID_IPV6_PREFIX = new EidBuilder().setAddress(INSTANCE_ID_IPV6_PREFIX)
288 // InstanceId with Mac
289 private static final InstanceId INSTANCE_ID_MAC = new InstanceIdBuilder().setInstanceId(new org.opendaylight
290 .yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.instance.id
291 .InstanceIdBuilder().setAddress(new SimpleAddress(MAC_ADDRESS))
292 .setIid(INSTANCE_ID_TYPE).build()).build();
293 private static final LispAddress LISP_IID_MAC = new EidBuilder().setAddress(INSTANCE_ID_MAC).build();
295 // InstanceId with DistinguishedNameType
296 private static final InstanceId INSTANCE_ID_DISTINGUISHED_NAME_TYPE = new InstanceIdBuilder().setInstanceId(new org
297 .opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address
298 .instance.id.InstanceIdBuilder().setAddress(new SimpleAddress(DISTINGUISHED_NAME_TYPE))
299 .setIid(INSTANCE_ID_TYPE).build()).build();
300 private static final LispAddress LISP_IID_DISTINGUISHED_NAME_TYPE = new EidBuilder()
301 .setAddress(INSTANCE_ID_DISTINGUISHED_NAME_TYPE).build();
303 // InstanceId with AsNumber
304 private static final InstanceId INSTANCE_ID_AS_NUMBER = new InstanceIdBuilder().setInstanceId(new org.opendaylight
305 .yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.instance.id
306 .InstanceIdBuilder().setAddress(new SimpleAddress(AS_NUMBER))
307 .setIid(INSTANCE_ID_TYPE).build()).build();
308 private static final LispAddress LISP_IID_AS_NUMBER = new EidBuilder().setAddress(INSTANCE_ID_AS_NUMBER).build();
310 private static final XtrId XTR_ID = new XtrId(new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15});
313 * Tests {@link LispAddressStringifier#getString} with Ipv4 address type.
316 public void getStringTest_withIpv4() {
317 assertEquals("[" + VNI + "] " + IPV4_STRING, LispAddressStringifier.getString(LISP_IPV4));
321 * Tests {@link LispAddressStringifier#getString} with Ipv4Binary address type.
324 public void getStringTest_withIpv4Binary() {
325 assertEquals("[" + VNI + "] " + IPV4_STRING, LispAddressStringifier.getString(LISP_IPV4_BINARY));
329 * Tests {@link LispAddressStringifier#getString} with Ipv4Prefix address type.
332 public void getStringTest_withIpv4Prefix() {
333 assertEquals(IPV4_STRING + PREFIX, LispAddressStringifier.getString(LISP_IPV4_PREFIX));
337 * Tests {@link LispAddressStringifier#getString} with Ipv4PrefixBinary address type.
340 public void getStringTest_withIpv4PrefixBinary() {
341 assertEquals(IPV4_STRING + PREFIX, LispAddressStringifier.getString(LISP_IPV4_PREFIX_BINARY));
345 * Tests {@link LispAddressStringifier#getString} with Ipv6 address type.
348 public void getStringTest_withIpv6() {
349 assertEquals(IPV6_STRING, LispAddressStringifier.getString(LISP_IPV6));
353 * Tests {@link LispAddressStringifier#getString} with Ipv6Binary address type.
356 public void getStringTest_withIpv6Binary() {
357 assertEquals(IPV6_STRING, LispAddressStringifier.getString(LISP_IPV6_BINARY));
361 * Tests {@link LispAddressStringifier#getString} with Ipv6Prefix address type.
364 public void getStringTest_withIpv6Prefix() {
365 assertEquals(IPV6_STRING + PREFIX, LispAddressStringifier.getString(LISP_IPV6_PREFIX));
369 * Tests {@link LispAddressStringifier#getString} with Ipv6PrefixBinary address type.
372 public void getStringTest_withIpv6PrefixBinary() {
373 assertEquals(IPV6_STRING + PREFIX, LispAddressStringifier.getString(LISP_IPV6_PREFIX_BINARY));
377 * Tests {@link LispAddressStringifier#getString} with Mac address type.
380 public void getStringTest_withMac() {
381 assertEquals(MAC.getMac().getValue(), LispAddressStringifier.getString(LISP_MAC));
385 * Tests {@link LispAddressStringifier#getString} with InstanceId address type.
388 public void getStringTest_withInstanceId() {
390 assertEquals("[" + IID + "] " + IPV4_STRING, LispAddressStringifier.getString(LISP_IID_IPV4));
393 assertEquals("[" + IID + "] " + IPV6_STRING, LispAddressStringifier.getString(LISP_IID_IPV6));
396 assertEquals("[" + IID + "] " + IPV4_STRING + PREFIX, LispAddressStringifier.getString(LISP_IID_IPV4_PREFIX));
399 assertEquals("[" + IID + "] " + IPV6_STRING + PREFIX, LispAddressStringifier.getString(LISP_IID_IPV6_PREFIX));
402 assertEquals("[" + IID + "] " + MAC.getMac().getValue(), LispAddressStringifier.getString(LISP_IID_MAC));
404 // with DistinguishedNameType
405 assertEquals("[" + IID + "] " + DISTINGUISHED_NAME_TYPE.getValue(), LispAddressStringifier
406 .getString(LISP_IID_DISTINGUISHED_NAME_TYPE));
409 assertEquals("[" + IID + "] AS" + AS_NUMBER.getValue(), LispAddressStringifier.getString(LISP_IID_AS_NUMBER));
413 * Tests {@link LispAddressStringifier#getString} with NoAddress address type.
416 public void getStringTest_withNoAddress() {
417 assertEquals("No Address Present", LispAddressStringifier.getString(LISP_NO_ADDRESS));
421 * Tests {@link LispAddressStringifier#getString} with DistinguishedName address type.
424 public void getStringTest_withDistinguishedName() {
425 assertEquals(DISTINGUISHED_NAME_TYPE.getValue(), LispAddressStringifier.getString(LISP_DISTINGUISHED_NAME));
429 * Tests {@link LispAddressStringifier#getString} with AsNumber address type.
432 public void getStringTest_withAsNumber() {
433 assertEquals("AS" + AS_NUMBER.getValue(), LispAddressStringifier.getString(LISP_AS_NUMBER));
437 * Tests {@link LispAddressStringifier#getString} with AfiList address type.
440 public void getStringTest_withAfiList() {
441 ADDRESS_LIST.add(SIMPLE_ADDRESS_1);
442 ADDRESS_LIST.add(SIMPLE_ADDRESS_2);
444 assertEquals("{" + IPV4_STRING + "," + IPV6_STRING + "}", LispAddressStringifier.getString(LISP_AFI_LIST));
447 private String getStringFromAppData(final ApplicationData appData) {
448 StringBuilder sb = new StringBuilder();
449 final org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address
450 .address.application.data.ApplicationData applicationData = appData.getApplicationData();
452 sb.append(applicationData.getAddress().getIpAddress().getIpv4Address().getValue())
453 .append("!").append(applicationData.getIpTos())
454 .append("!").append(applicationData.getProtocol())
455 .append("!").append(applicationData.getLocalPortLow())
456 .append("-").append(applicationData.getLocalPortHigh())
457 .append("!").append(applicationData.getRemotePortLow())
458 .append("-").append(applicationData.getRemotePortHigh());
460 return sb.toString();
464 * Tests {@link LispAddressStringifier#getString} with ApplicationData address type.
467 public void getStringTest_withApplicationData() {
468 assertEquals(getStringFromAppData((ApplicationData) LISP_APPLICATION_DATA.getAddress()), LispAddressStringifier
469 .getString(LISP_APPLICATION_DATA));
472 private static String getStringFromExplicLocPath() {
473 StringBuilder sb = new StringBuilder();
490 return sb.toString();
494 * Tests {@link LispAddressStringifier#getString} with ExplicitLocatorPath address type.
497 public void getStringTest_withExplicitLocatorPath() {
501 assertEquals(getStringFromExplicLocPath(), LispAddressStringifier.getString(LISP_EXPLICIT_LOCATOR_PATH));
504 private static String getStringFromSrcDstKey() {
505 StringBuilder sb = new StringBuilder();
506 sb.append(IPV4_STRING)
508 .append(IPV6_STRING);
510 return sb.toString();
514 * Tests {@link LispAddressStringifier#getString} with SourceDestKey address type.
517 public void getStringTest_withSourceDestKey() {
518 assertEquals(getStringFromSrcDstKey(), LispAddressStringifier.getString(LISP_SOURCE_DEST_KEY));
522 * Tests {@link LispAddressStringifier#getString} with KeyValueAddress address type.
525 public void getStringTest_withKeyValueAddress() {
526 assertEquals(IPV4_STRING + "=>" + IPV6_STRING, LispAddressStringifier.getString(LISP_KEY_VALUE_ADDRESS));
530 * Tests {@link LispAddressStringifier#getString} with ServicePath address type.
533 public void getStringTest_withServicePath() {
534 assertEquals(SERVICE_PATH_ID_TYPE.getValue() + "(" + SERVICE_PATH.getServicePath().getServiceIndex() + ")",
535 LispAddressStringifier.getString(LISP_SERVICE_PATH));
539 * Tests {@link LispAddressStringifier#getString} with no address type.
542 public void getStringTest_withoutAddress() {
543 assertNull(LispAddressStringifier.getString(new EidBuilder().build()));
547 * Tests {@link LispAddressStringifier#getURIString} with Ipv4Prefix address type.
550 public void getURIStringTest_withIpv4Prefix() {
551 assertEquals("ipv4:" + IPV4_STRING + PREFIX, LispAddressStringifier.getURIString(LISP_IPV4_PREFIX));
555 * Tests {@link LispAddressStringifier#getURLString} with Ipv4Prefix address type.
558 public void getURLStringTest_withIpv4Prefix() {
559 assertEquals("ipv4:" + IPV4_STRING + PREFIX_URL, LispAddressStringifier.getURLString(LISP_IPV4_PREFIX));
563 * Tests {@link LispAddressStringifier#getURLString} with IID_Ipv4 address type.
566 public void getURLStringTest_withInstanceId() {
567 assertEquals("ipv4:" + IPV4_STRING, LispAddressStringifier.getURLString(LISP_IID_IPV4));
571 * Tests {@link LispAddressStringifier#getString} with XtrId.
574 public void getStringTest_withXtrId() {
575 assertEquals(BaseEncoding.base16().encode(XTR_ID.getValue()), LispAddressStringifier.getString(XTR_ID));
579 * Tests {@link LispAddressStringifier#getURIString} with XtrId.
582 public void getStringURITest_withXtrId() {
583 assertEquals(BaseEncoding.base16().encode(XTR_ID.getValue()), LispAddressStringifier.getURIString(XTR_ID));
587 * Tests {@link LispAddressStringifier#getURLString} with XtrId.
590 public void getStringURLTest_withXtrId() {
591 assertEquals(BaseEncoding.base16().encode(XTR_ID.getValue()), LispAddressStringifier.getURLString(XTR_ID));