JUnit Test - LispMACAuthenticationTest
[lispflowmapping.git] / mappingservice / lisp-proto / src / test / java / org / opendaylight / lispflowmapping / lisp / util / MaskUtilTest.java
1 /*
2  * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
3  *
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
7  */
8 package org.opendaylight.lispflowmapping.lisp.util;
9
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.assertTrue;
14
15 import java.net.Inet4Address;
16 import java.net.Inet6Address;
17 import java.net.UnknownHostException;
18 import org.junit.Test;
19 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpAddress;
20 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpPrefix;
21 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Address;
22 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Prefix;
23 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv6Address;
24 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv6Prefix;
25 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.InstanceIdType;
26 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.ServicePathIdType;
27 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.SimpleAddress;
28 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.Address;
29 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address
30         .address.InstanceId;
31 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address
32         .address.InstanceIdBuilder;
33 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address
34         .address.Ipv4Builder;
35 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address
36         .address.Ipv4PrefixBuilder;
37 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address
38         .address.Ipv6Builder;
39 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address
40         .address.Ipv6PrefixBuilder;
41 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address
42         .address.MacBuilder;
43 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address
44         .address.ServicePath;
45 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address
46         .address.ServicePathBuilder;
47 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address
48         .address.SourceDestKey;
49 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address
50         .address.SourceDestKeyBuilder;
51 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev100924.MacAddress;
52 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.inet.binary.types.rev160303.Ipv4AddressBinary;
53 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.inet.binary.types.rev160303.Ipv6AddressBinary;
54 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.binary.address.types.rev160504.augmented.lisp.address
55         .address.Ipv4BinaryBuilder;
56 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.binary.address.types.rev160504.augmented.lisp.address
57         .address.Ipv4PrefixBinary;
58 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.binary.address.types.rev160504.augmented.lisp.address
59         .address.Ipv4PrefixBinaryBuilder;
60 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.binary.address.types.rev160504.augmented.lisp.address
61         .address.Ipv6BinaryBuilder;
62 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.binary.address.types.rev160504.augmented.lisp.address
63         .address.Ipv6PrefixBinary;
64 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.binary.address.types.rev160504.augmented.lisp.address
65         .address.Ipv6PrefixBinaryBuilder;
66 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.container.Eid;
67 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.container.EidBuilder;
68
69 public class MaskUtilTest {
70
71     private static final String IPV4_STRING = "255.255.255.255";
72     private static final String IPV6_STRING = "1111:2222:3333:4444:5555:6666:7777:8888";
73     private static byte[] ipv4ByteAddress;
74     private static byte[] ipv4ExpectedByteAddress;
75     private static byte[] ipv6ByteAddress;
76     private static byte[] ipv6ExpectedByteAddress;
77
78     static {
79         try {
80             ipv4ByteAddress = Inet4Address.getByName(IPV4_STRING).getAddress();
81             ipv4ExpectedByteAddress = Inet4Address.getByName("255.255.240.0").getAddress();
82             ipv6ByteAddress = Inet6Address.getByName(IPV6_STRING).getAddress();
83             ipv6ExpectedByteAddress = Inet6Address.getByName("1111:2222:3333:4444:4000::").getAddress();
84         } catch (UnknownHostException e) {
85             e.printStackTrace();
86         }
87     }
88
89     private static final String IPV4_STRING_1 = "1.2.3.0";
90     private static final String IPV4_STRING_2 = "1.3.4.0";
91     private static final String MASK_1 =        "/32";
92     private static final String MASK_2 =        "/20";
93     private static final String MASK_3 =        "/66";
94     private static final String MASK_4 =        "/128";
95     private static final String MAC_STRING =    "aa:bb:cc:dd:ee:ff";
96
97     private static final Ipv4Address IPV4_ADDRESS = new Ipv4Address(IPV4_STRING_1);
98     private static final Ipv6Address IPV6_ADDRESS = new Ipv6Address(IPV6_STRING);
99     private static final Ipv4Prefix IPV4_PREFIX = new Ipv4Prefix(IPV4_STRING_1 + MASK_1);
100     private static final Ipv6Prefix IPV6_PREFIX = new Ipv6Prefix(IPV6_STRING + MASK_4);
101     private static final Ipv4AddressBinary IPV4_ADDRESS_BINARY = new Ipv4AddressBinary(ipv4ByteAddress);
102     private static final Ipv6AddressBinary IPV6_ADDRESS_BINARY = new Ipv6AddressBinary(ipv6ByteAddress);
103     private static final Ipv4PrefixBinary IPV4_PREFIX_BINARY = new Ipv4PrefixBinaryBuilder()
104             .setIpv4AddressBinary(IPV4_ADDRESS_BINARY).setIpv4MaskLength((short) 32).build();
105     private static final Ipv6PrefixBinary IPV6_PREFIX_BINARY = new Ipv6PrefixBinaryBuilder()
106             .setIpv6AddressBinary(IPV6_ADDRESS_BINARY).setIpv6MaskLength((short) 128).build();
107
108     private static final Address ADDRESS_IPV4 = new Ipv4Builder().setIpv4(IPV4_ADDRESS).build();
109     private static final Address ADDRESS_IPV6 = new Ipv6Builder().setIpv6(new Ipv6Address(IPV6_STRING)).build();
110     private static final Address ADDRESS_IPV4_BINARY = new Ipv4BinaryBuilder()
111             .setIpv4Binary(IPV4_ADDRESS_BINARY).build();
112     private static final Address ADDRESS_IPV6_BINARY = new Ipv6BinaryBuilder()
113             .setIpv6Binary(IPV6_ADDRESS_BINARY).build();
114     private static final Address ADDRESS_IPV4_PREFIX = new Ipv4PrefixBuilder()
115             .setIpv4Prefix(IPV4_PREFIX).build();
116     private static final Address ADDRESS_IPV6_PREFIX = new Ipv6PrefixBuilder()
117             .setIpv6Prefix(IPV6_PREFIX).build();
118     private static final Address ADDRESS_SOURCE_DEST_KEY = getDefaultSourceDestKeyAddressBuilder().build();
119     private static final Address ADDRESS_INSTANCE_ID_IP_PREFIX = getDefaultIpPrefixInstanceId();
120     private static final Address ADDRESS_INSTANCE_ID_IP = getDefaultIpInstanceId();
121     private static final Address ADDRESS_MAC = new MacBuilder().setMac(new MacAddress(MAC_STRING)).build();
122     private static final Address ADDRESS_SERVICE_PATH = getDefaultServicePath();
123
124     private static final SimpleAddress SIMPLE_ADDRESS_IPV4 = new SimpleAddress(new IpAddress(IPV4_ADDRESS));
125     private static final SimpleAddress SIMPLE_ADDRESS_IPV4_PREFIX = new SimpleAddress(new IpPrefix(IPV4_PREFIX));
126     private static final SimpleAddress SIMPLE_ADDRESS_IPV6_PREFIX = new SimpleAddress(new IpPrefix(IPV6_PREFIX));
127
128     private static final Eid EID_IPV4 = LispAddressUtil.toEid(IPV4_ADDRESS, null);
129     private static final Eid EID_IPV6 = LispAddressUtil.toEid(IPV6_ADDRESS, null);
130     private static final Eid EID_IPV4_PREFIX = LispAddressUtil.asIpv4PrefixEid(IPV4_STRING + MASK_2);
131     private static final Eid EID_IPV6_PREFIX = LispAddressUtil.asIpv6PrefixEid(IPV6_STRING + MASK_3);
132     private static final Eid EID_IPV4_PREFIX_BINARY = LispAddressUtil.asIpv4PrefixBinaryEid(IPV4_STRING + MASK_2);
133     private static final Eid EID_IPV6_PREFIX_BINARY = LispAddressUtil.asIpv6PrefixBinaryEid(IPV6_STRING + MASK_3);
134     private static final Eid EID_INSTANCE_ID = new EidBuilder().setAddress(ADDRESS_INSTANCE_ID_IP).build();
135     private static final Eid EID_SOURCE_DEST_KEY = new EidBuilder().setAddress(ADDRESS_SOURCE_DEST_KEY).build();
136     private static final Eid EID_SERVICE_PATH = new EidBuilder().setAddress(ADDRESS_SERVICE_PATH).build();
137     private static final Eid EID_MAC = new EidBuilder().setAddress(ADDRESS_MAC).build();
138
139     /**
140      * Tests {@link MaskUtil#isMaskable} method.
141      */
142     @Test
143     public void isMaskableTest() {
144         assertTrue(MaskUtil.isMaskable(ADDRESS_IPV4_PREFIX));
145         assertTrue(MaskUtil.isMaskable(ADDRESS_IPV6_PREFIX));
146         assertTrue(MaskUtil.isMaskable(ADDRESS_SOURCE_DEST_KEY));
147         assertTrue(MaskUtil.isMaskable(ADDRESS_INSTANCE_ID_IP_PREFIX));
148         assertFalse(MaskUtil.isMaskable(ADDRESS_INSTANCE_ID_IP));
149         assertFalse(MaskUtil.isMaskable(ADDRESS_MAC));
150     }
151
152     /**
153      * Tests {@link MaskUtil#normalize(Eid eid, short mask)} method with Ipv4PrefixBinary.
154      */
155     @Test
156     public void normalizeTest_withIpv4PrefixBinary_withMask() throws UnknownHostException {
157         // input ip: 255.255.255.255, mask: 20
158         final Eid result = MaskUtil.normalize(EID_IPV4_PREFIX_BINARY, (short) 20);
159         final Ipv4PrefixBinary resultPrefix = (Ipv4PrefixBinary) result.getAddress();
160
161         // expected result
162         assertArrayEquals(ipv4ExpectedByteAddress, resultPrefix.getIpv4AddressBinary().getValue());
163         assertEquals((short) 20, (short) resultPrefix.getIpv4MaskLength());
164     }
165
166     /**
167      * Tests {@link MaskUtil#normalize(Eid eid, short mask)} method with Ipv6PrefixBinary.
168      */
169     @Test
170     public void normalizeTest_withIpv6PrefixBinary_withMask() throws UnknownHostException {
171         // input ip: 1111:2222:3333:4444:5555:6666:7777:8888, mask: 66
172         final Eid result = MaskUtil.normalize(EID_IPV6_PREFIX_BINARY, (short) 66);
173         final Ipv6PrefixBinary resultPrefix = (Ipv6PrefixBinary) result.getAddress();
174
175         // expected result
176         assertArrayEquals(ipv6ExpectedByteAddress, resultPrefix.getIpv6AddressBinary().getValue());
177         assertEquals((short) 66, (short) resultPrefix.getIpv6MaskLength());
178     }
179
180     /**
181      * Tests {@link MaskUtil#normalize(Eid eid, short mask)} method with Ipv4Prefix.
182      */
183     @Test
184     public void normalizeTest_withIpv4Prefix_withMask() {
185         // input ip: 255.255.255.255, mask: 20
186         final Eid result = MaskUtil.normalize(EID_IPV4_PREFIX, (short) 20);
187         final org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address
188                 .address.Ipv4Prefix resultPrefix = (org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp
189                 .address.types.rev151105.lisp.address.address.Ipv4Prefix) result.getAddress();
190
191         // expected result
192         final String expectedResult = "255.255.240.0" + MASK_2;
193         assertEquals(expectedResult, resultPrefix.getIpv4Prefix().getValue());
194     }
195
196     /**
197      * Tests {@link MaskUtil#normalize(Eid eid, short mask)} method with Ipv6Prefix.
198      */
199     @Test
200     public void normalizeTest_withIpv6Prefix_withMask() {
201         // input ip: 1111:2222:3333:4444:5555:6666:7777:8888, mask: 66
202         final Eid result = MaskUtil.normalize(EID_IPV6_PREFIX, (short) 66);
203         final org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address
204                 .address.Ipv6Prefix resultPrefix = (org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp
205                 .address.types.rev151105.lisp.address.address.Ipv6Prefix) result.getAddress();
206
207         // expected result
208         final String expectedResult = "1111:2222:3333:4444:4000::" + MASK_3;
209         assertEquals(expectedResult, resultPrefix.getIpv6Prefix().getValue());
210     }
211
212     /**
213      * Tests {@link MaskUtil#normalize(Eid eid, short mask)} method with InstanceId.
214      */
215     @Test
216     public void normalizeTest_withInstanceId_withMask() {
217         //TODO finish this test when implementation is done
218         assertEquals(EID_INSTANCE_ID, MaskUtil.normalize(EID_INSTANCE_ID, (short) 0));
219     }
220
221     /**
222      * Tests {@link MaskUtil#normalize(Eid eid, short mask)} method with Mac.
223      */
224     @Test
225     public void normalizeTest_withMac_withMask() {
226         assertEquals(EID_MAC, MaskUtil.normalize(EID_MAC, (short) 0));
227     }
228
229     /**
230      * Tests {@link MaskUtil#normalize(Eid eid)} method with Ipv4PrefixBinary.
231      */
232     @Test
233     public void normalizeTest_withIpv4PrefixBinary() throws UnknownHostException {
234         // input ip: 255.255.255.255, mask: 20
235         final Eid result = MaskUtil.normalize(EID_IPV4_PREFIX_BINARY);
236         final Ipv4PrefixBinary resultPrefix = (Ipv4PrefixBinary) result.getAddress();
237
238         // expected result
239         final byte[] expectedResult = Inet4Address.getByName("255.255.240.0").getAddress();
240         assertArrayEquals(expectedResult, resultPrefix.getIpv4AddressBinary().getValue());
241         assertEquals((short) 20, (short) resultPrefix.getIpv4MaskLength());
242     }
243
244     /**
245      * Tests {@link MaskUtil#normalize(Eid eid)} method with Ipv6PrefixBinary.
246      */
247     @Test
248     public void normalizeTest_withIpv6PrefixBinary() throws UnknownHostException {
249         // input ip: 1111:2222:3333:4444:5555:6666:7777:8888, mask: 66
250         final Eid result = MaskUtil.normalize(EID_IPV6_PREFIX_BINARY);
251         final Ipv6PrefixBinary resultPrefix = (Ipv6PrefixBinary) result.getAddress();
252
253         // expected result
254         final byte[] expectedResult = Inet6Address.getByName("1111:2222:3333:4444:4000::").getAddress();
255         assertArrayEquals(expectedResult, resultPrefix.getIpv6AddressBinary().getValue());
256         assertEquals((short) 66, (short) resultPrefix.getIpv6MaskLength());
257     }
258
259     /**
260      * Tests {@link MaskUtil#normalize} method with Ipv4Prefix.
261      */
262     @Test
263     public void normalizeTest_withIpv4Prefix() {
264         // input ip: 255.255.255.255, mask: 20
265         final Eid result = MaskUtil.normalize(EID_IPV4_PREFIX);
266         final org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address
267                 .address.Ipv4Prefix resultPrefix = (org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp
268                 .address.types.rev151105.lisp.address.address.Ipv4Prefix) result.getAddress();
269
270         // expected result
271         final String expectedResult = "255.255.240.0" + MASK_2;
272         assertEquals(expectedResult, resultPrefix.getIpv4Prefix().getValue());
273     }
274
275     /**
276      * Tests {@link MaskUtil#normalize} method with Ipv6Prefix.
277      */
278     @Test
279     public void normalizeTest_withIpv6Prefix() {
280         // input ip: 1111:2222:3333:4444:5555:6666:7777:8888, mask: 66
281         final Eid result = MaskUtil.normalize(EID_IPV6_PREFIX);
282         final org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address
283                 .address.Ipv6Prefix resultPrefix = (org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp
284                 .address.types.rev151105.lisp.address.address.Ipv6Prefix) result.getAddress();
285
286         // expected result
287         final String expectedResult = "1111:2222:3333:4444:4000::" + MASK_3;
288         assertEquals(expectedResult, resultPrefix.getIpv6Prefix().getValue());
289     }
290
291     /**
292      * Tests {@link MaskUtil#normalize} method with Ipv4.
293      */
294     @Test
295     public void normalizeTest_withIpv4() {
296         // input ip: 1.2.3.0
297         final Eid result = MaskUtil.normalize(EID_IPV4);
298         final org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address
299                 .address.Ipv4Prefix resultPrefix = (org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp
300                 .address.types.rev151105.lisp.address.address.Ipv4Prefix) result.getAddress();
301
302         // expected result
303         final String expectedResult = "1.2.3.0" + MASK_1;
304         assertEquals(expectedResult, resultPrefix.getIpv4Prefix().getValue());
305     }
306
307     /**
308      * Tests {@link MaskUtil#normalize} method with Ipv6.
309      */
310     @Test
311     public void normalizeTest_withIpv6() {
312         // input ip: 1111:2222:3333:4444:5555:6666:7777:8888
313         final Eid result = MaskUtil.normalize(EID_IPV6);
314         final org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address
315                 .address.Ipv6Prefix resultPrefix = (org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp
316                 .address.types.rev151105.lisp.address.address.Ipv6Prefix) result.getAddress();
317
318         // expected result
319         final String expectedResult = "1111:2222:3333:4444:5555:6666:7777:8888" + MASK_4;
320         assertEquals(expectedResult, resultPrefix.getIpv6Prefix().getValue());
321     }
322
323     /**
324      * Tests {@link MaskUtil#normalize} method with InstanceId.
325      */
326     @Test
327     public void normalizeTest_withInstanceId() {
328         //TODO finish this test when implementation is done
329         assertEquals(EID_INSTANCE_ID, MaskUtil.normalize(EID_INSTANCE_ID));
330     }
331
332     /**
333      * Tests {@link MaskUtil#normalize} method with SourceDestKey.
334      */
335     @Test
336     public void normalizeTest_withSourceDestKey() {
337         //expected result
338         final String expectedSourceAddress = "1.2.0.0" + MASK_2;
339         final String expectedDestAddress = "1.3.4.0";
340
341         final Eid resultEid = MaskUtil.normalize(EID_SOURCE_DEST_KEY);
342         final SourceDestKey resultAddr = (SourceDestKey) resultEid.getAddress();
343         final String resultSource = resultAddr.getSourceDestKey().getSource().getIpPrefix().getIpv4Prefix().getValue();
344         final String resultDest = resultAddr.getSourceDestKey().getDest().getIpAddress().getIpv4Address().getValue();
345
346         assertEquals(expectedSourceAddress, resultSource);
347         assertEquals(expectedDestAddress, resultDest);
348     }
349
350     /**
351      * Tests {@link MaskUtil#normalize} method with ServicePath.
352      */
353     @Test
354     public void normalizeTest_withServicePath() {
355         // expected result
356         final Eid expectedResult = LispAddressUtil.asServicePathEid(-1, 1L, (short)0);
357
358         // result
359         final Eid result = MaskUtil.normalize(EID_SERVICE_PATH);
360         assertEquals(expectedResult, result);
361     }
362
363     /**
364      * Tests {@link MaskUtil#normalize} method with non-maskable address type.
365      */
366     @Test
367     public void normalizeTest_withNonMaskableAddress() {
368         assertEquals(EID_MAC, MaskUtil.normalize(EID_MAC));
369     }
370
371     /**
372      * Tests {@link MaskUtil#getMaxMask} method.
373      */
374     @Test
375     public void getMaxMaskTest() {
376         assertEquals(32, MaskUtil.getMaxMask(ADDRESS_IPV4));
377         assertEquals(32, MaskUtil.getMaxMask(ADDRESS_IPV4_PREFIX));
378         assertEquals(128, MaskUtil.getMaxMask(ADDRESS_IPV6));
379         assertEquals(128, MaskUtil.getMaxMask(ADDRESS_IPV6_PREFIX));
380         assertEquals(-1, MaskUtil.getMaxMask(ADDRESS_MAC));
381     }
382
383     /**
384      * Tests {@link MaskUtil#getMaskForAddress} method.
385      */
386     @Test
387     public void getMaskForAddressTest() {
388         // SimpleAddress
389         assertEquals(-1, MaskUtil.getMaskForAddress(SIMPLE_ADDRESS_IPV4));
390         assertEquals((short) 32, MaskUtil.getMaskForAddress(SIMPLE_ADDRESS_IPV4_PREFIX));
391         assertEquals((short) 128, MaskUtil.getMaskForAddress(SIMPLE_ADDRESS_IPV6_PREFIX));
392
393         // Address
394         assertEquals((short) 32, MaskUtil.getMaskForAddress(ADDRESS_IPV4));
395         assertEquals((short) 128, MaskUtil.getMaskForAddress(ADDRESS_IPV6));
396         assertEquals((short) 32, MaskUtil.getMaskForAddress(ADDRESS_IPV4_BINARY));
397         assertEquals((short) 128, MaskUtil.getMaskForAddress(ADDRESS_IPV6_BINARY));
398         assertEquals((short) 32, MaskUtil.getMaskForAddress(ADDRESS_IPV4_PREFIX));
399         assertEquals((short) 128, MaskUtil.getMaskForAddress(ADDRESS_IPV6_PREFIX));
400         assertEquals((short) 32, MaskUtil.getMaskForAddress(ADDRESS_INSTANCE_ID_IP_PREFIX));
401         assertEquals((short) 32, MaskUtil.getMaskForAddress(IPV4_PREFIX_BINARY));
402         assertEquals((short) 128, MaskUtil.getMaskForAddress(IPV6_PREFIX_BINARY));
403         assertEquals((short) -1, MaskUtil.getMaskForAddress(ADDRESS_MAC));
404     }
405
406     /**
407      * Tests {@link MaskUtil#getAddressStringForIpPrefix} method.
408      */
409     @Test
410     public void getAddressStringForIpPrefixTest() {
411         assertEquals(IPV4_STRING_1, MaskUtil.getAddressStringForIpPrefix(new IpPrefix(IPV4_PREFIX)));
412     }
413
414     /**
415      * Tests {@link MaskUtil#getAddressStringForIpv4Prefix} method.
416      */
417     @Test
418     public void getAddressStringForIpv4PrefixTest() {
419         assertEquals(IPV4_STRING_1, MaskUtil
420                 .getAddressStringForIpv4Prefix(new Ipv4PrefixBuilder().setIpv4Prefix(IPV4_PREFIX).build()));
421     }
422
423     /**
424      * Tests {@link MaskUtil#getAddressStringForIpv6Prefix} method.
425      */
426     @Test
427     public void getAddressStringForIpv6PrefixTest() {
428         assertEquals(IPV6_STRING, MaskUtil
429                 .getAddressStringForIpv6Prefix(new Ipv6PrefixBuilder().setIpv6Prefix(IPV6_PREFIX).build()));
430     }
431
432     private static SourceDestKeyBuilder getDefaultSourceDestKeyAddressBuilder() {
433         return new SourceDestKeyBuilder()
434                 .setSourceDestKey(new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp
435                         .address.types.rev151105.lisp.address.address.source.dest.key.SourceDestKeyBuilder()
436                         .setSource(new SimpleAddress(new IpPrefix(new Ipv4Prefix(IPV4_STRING_1 + MASK_2))))
437                         .setDest(new SimpleAddress(new IpAddress(new Ipv4Address(IPV4_STRING_2)))).build());
438     }
439
440     private static InstanceId getDefaultIpPrefixInstanceId() {
441         return new InstanceIdBuilder()
442                 .setInstanceId(new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types
443                         .rev151105.lisp.address.address.instance.id.InstanceIdBuilder()
444                         .setIid(new InstanceIdType(1L))
445                         .setAddress(new SimpleAddress(new IpPrefix(IPV4_PREFIX)))
446                         .setMaskLength((short) 32).build())
447                 .build();
448     }
449
450     private static InstanceId getDefaultIpInstanceId() {
451         return new InstanceIdBuilder()
452                 .setInstanceId(new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types
453                         .rev151105.lisp.address.address.instance.id.InstanceIdBuilder()
454                         .setIid(new InstanceIdType(1L))
455                         .setAddress(new SimpleAddress(new IpAddress(new Ipv4Address(IPV4_STRING_1)))).build())
456                 .build();
457     }
458
459     private static ServicePath getDefaultServicePath() {
460         org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address
461                 .service.path.ServicePathBuilder servicePathBuilder = new org.opendaylight.yang.gen.v1.urn.ietf.params
462                 .xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.service.path.ServicePathBuilder();
463
464         return new ServicePathBuilder().setServicePath(servicePathBuilder
465                         .setServiceIndex((short) 1)
466                         .setServicePathId(new ServicePathIdType(1L)).build())
467                 .build();
468     }
469 }