Bump versions by x.(y+1).z
[lispflowmapping.git] / mappingservice / lisp-proto / src / test / java / org / opendaylight / lispflowmapping / lisp / util / SourceDestKeyHelperTest.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.assertEquals;
11
12 import org.junit.Test;
13 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix;
14 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix;
15 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.InstanceIdType;
16 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.Ipv4PrefixAfi;
17 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.SimpleAddress;
18 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.Address;
19 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.Ipv4PrefixBuilder;
20 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.SourceDestKey;
21 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.SourceDestKeyBuilder;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.inet.binary.types.rev160303.Ipv4AddressBinary;
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.binary.address.types.rev160504.Ipv4PrefixBinaryAfi;
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.binary.address.types.rev160504.augmented.lisp.address.address.Ipv4PrefixBinary;
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.binary.address.types.rev160504.augmented.lisp.address.address.Ipv4PrefixBinaryBuilder;
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.container.Eid;
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.container.EidBuilder;
28 import org.opendaylight.yangtools.yang.common.Uint32;
29 import org.opendaylight.yangtools.yang.common.Uint8;
30
31 public class SourceDestKeyHelperTest {
32
33     private static final String IPV4_STRING_SOURCE = "192.168.0.1";
34     private static final String IPV4_STRING_DEST =   "192.168.0.2";
35     private static final short MASK_1 = 20;
36     private static final short MASK_2 = 24;
37
38     private static final byte[] IPV4_BYTE_SOURCE = new byte[]{-64, -88, 0, 1};
39     private static final byte[] IPV4_BYTE_DEST = new byte[]{-64, -88, 0, 2};
40
41     private static final Ipv4Prefix IPV4_PREFIX_SOURCE = new Ipv4Prefix(IPV4_STRING_SOURCE + "/" + MASK_1);
42     private static final Ipv4Prefix IPV4_PREFIX_DEST = new Ipv4Prefix(IPV4_STRING_DEST + "/" + MASK_2);
43     private static final Ipv4AddressBinary IPV4_SOURCE_ADDRESS_BINARY = new Ipv4AddressBinary(IPV4_BYTE_SOURCE);
44     private static final Ipv4AddressBinary IPV4_DEST_ADDRESS_BINARY = new Ipv4AddressBinary(IPV4_BYTE_DEST);
45     private static final Ipv4PrefixBinary IPV4_SOURCE_PREFIX_BINARY =
46             getIpv4PrefixBinary(IPV4_SOURCE_ADDRESS_BINARY, MASK_1);
47     private static final Ipv4PrefixBinary IPV4_DEST_PREFIX_BINARY =
48             getIpv4PrefixBinary(IPV4_DEST_ADDRESS_BINARY, MASK_2);
49
50     private static final SimpleAddress SOURCE = new SimpleAddress(new IpPrefix(IPV4_PREFIX_SOURCE));
51     private static final SimpleAddress DEST = new SimpleAddress(new IpPrefix(IPV4_PREFIX_DEST));
52     private static final InstanceIdType INSTANCE_ID = new InstanceIdType(Uint32.valueOf(100));
53     private static final Address SOURCE_DEST_KEY = getSourceDestKeyAddress(SOURCE, DEST);
54     private static final Address IPV4_PREFIX = new Ipv4PrefixBuilder().setIpv4Prefix(IPV4_PREFIX_SOURCE).build();
55     private static final Eid EID_IPV4_PREFIX_ADDRESS = new EidBuilder().setAddress(IPV4_PREFIX).build();
56     private static final Eid EID_SOURCE_DEST_KEY = getEidSourceDestKey();
57
58     /**
59      * Tests {@link SourceDestKeyHelper#getSrc} method with SourceDestKey address type.
60      */
61     @Test
62     public void getSrcTest_sourceDestKey() {
63         final Eid expectedResult = new EidBuilder()
64                 .setAddress(new Ipv4PrefixBuilder().setIpv4Prefix(IPV4_PREFIX_SOURCE).build())
65                 .setVirtualNetworkId(INSTANCE_ID)
66                 .setAddressType(Ipv4PrefixAfi.VALUE).build();
67         assertEquals(expectedResult, SourceDestKeyHelper.getSrc(EID_SOURCE_DEST_KEY));
68     }
69
70     /**
71      * Tests {@link SourceDestKeyHelper#getSrc} method with Ipv4Prefix address type.
72      */
73     @Test
74     public void getSrcTest_ipv4Prefix() {
75         assertEquals(EID_IPV4_PREFIX_ADDRESS, SourceDestKeyHelper.getSrc(EID_IPV4_PREFIX_ADDRESS));
76     }
77
78     /**
79      * Tests {@link SourceDestKeyHelper#getDst} method with SourceDestKey address type.
80      */
81     @Test
82     public void getDstTest_sourceDestKey() {
83         final Eid expectedResult = new EidBuilder()
84                 .setAddress(new Ipv4PrefixBuilder().setIpv4Prefix(IPV4_PREFIX_DEST).build())
85                 .setVirtualNetworkId(INSTANCE_ID)
86                 .setAddressType(Ipv4PrefixAfi.VALUE).build();
87         assertEquals(expectedResult, SourceDestKeyHelper.getDst(EID_SOURCE_DEST_KEY));
88     }
89
90     /**
91      * Tests {@link SourceDestKeyHelper#getDst} method with Ipv4Prefix address type.
92      */
93     @Test
94     public void getDstTest_ipv4Prefix() {
95         assertEquals(EID_IPV4_PREFIX_ADDRESS, SourceDestKeyHelper.getDst(EID_IPV4_PREFIX_ADDRESS));
96     }
97
98     /**
99      * Tests {@link SourceDestKeyHelper#getSrcBinary} method with SourceDestKey address type.
100      */
101     @Test
102     public void getSrcBinaryTest_sourceDestKey() {
103         final Eid expectedResult = new EidBuilder()
104                 .setAddress(IPV4_SOURCE_PREFIX_BINARY)
105                 .setVirtualNetworkId(INSTANCE_ID)
106                 .setAddressType(Ipv4PrefixBinaryAfi.VALUE).build();
107         assertEquals(expectedResult, SourceDestKeyHelper.getSrcBinary(EID_SOURCE_DEST_KEY));
108     }
109
110     /**
111      * Tests {@link SourceDestKeyHelper#getSrcBinary} method with Ipv4Prefix address type.
112      */
113     @Test
114     public void getSrcBinaryTest_ipv4Prefix() {
115         assertEquals(EID_IPV4_PREFIX_ADDRESS, SourceDestKeyHelper.getSrcBinary(EID_IPV4_PREFIX_ADDRESS));
116     }
117
118     /**
119      * Tests {@link SourceDestKeyHelper#getDstBinary} method with SourceDestKey address type.
120      */
121     @Test
122     public void getDstBinaryTest_sourceDestKey() {
123         final Eid expectedResult = new EidBuilder()
124                 .setAddress(IPV4_DEST_PREFIX_BINARY)
125                 .setVirtualNetworkId(INSTANCE_ID)
126                 .setAddressType(Ipv4PrefixBinaryAfi.VALUE).build();
127         assertEquals(expectedResult, SourceDestKeyHelper.getDstBinary(EID_SOURCE_DEST_KEY));
128     }
129
130     /**
131      * Tests {@link SourceDestKeyHelper#getDstBinary} method with Ipv4Prefix address type.
132      */
133     @Test
134     public void getDstBinaryTest_ipv4Prefix() {
135         assertEquals(EID_IPV4_PREFIX_ADDRESS, SourceDestKeyHelper.getDstBinary(EID_IPV4_PREFIX_ADDRESS));
136     }
137
138     /**
139      * Tests {@link SourceDestKeyHelper#getSrcMask} method with SourceDestKey address type.
140      */
141     @Test
142     public void getSrcMaskTest_sourceDestKey() {
143         assertEquals((short) 20, SourceDestKeyHelper.getSrcMask(EID_SOURCE_DEST_KEY));
144     }
145
146     /**
147      * Tests {@link SourceDestKeyHelper#getSrcMask} method with Ipv4Prefix address type.
148      */
149     @Test
150     public void getSrcMaskTest_ipv4Prefix() {
151         assertEquals((short) 0, SourceDestKeyHelper.getSrcMask(EID_IPV4_PREFIX_ADDRESS));
152     }
153
154     /**
155      * Tests {@link SourceDestKeyHelper#getDstMask} method with SourceDestKey address type.
156      */
157     @Test
158     public void getDstMaskTest_sourceDestKey() {
159         assertEquals((short) 24, SourceDestKeyHelper.getDstMask(EID_SOURCE_DEST_KEY));
160     }
161
162     /**
163      * Tests {@link SourceDestKeyHelper#getDstMask} method with Ipv4Prefix address type.
164      */
165     @Test
166     public void getDstMaskTest_ipv4Prefix() {
167         assertEquals((short) 0, SourceDestKeyHelper.getDstMask(EID_IPV4_PREFIX_ADDRESS));
168     }
169
170     private static SourceDestKey getSourceDestKeyAddress(SimpleAddress sourceAddress, SimpleAddress destAddress) {
171         return new SourceDestKeyBuilder()
172                 .setSourceDestKey(new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types
173                         .rev151105.lisp.address.address.source.dest.key.SourceDestKeyBuilder()
174                         .setSource(sourceAddress)
175                         .setDest(destAddress).build())
176                 .build();
177     }
178
179     private static Eid getEidSourceDestKey() {
180         return new EidBuilder().setAddress(SOURCE_DEST_KEY).setVirtualNetworkId(INSTANCE_ID).build();
181     }
182
183     private static Ipv4PrefixBinary getIpv4PrefixBinary(Ipv4AddressBinary ipv4AddressBinary, short mask) {
184         return new Ipv4PrefixBinaryBuilder()
185             .setIpv4AddressBinary(ipv4AddressBinary)
186             .setIpv4MaskLength(Uint8.valueOf(mask))
187             .build();
188     }
189 }