ac0df121f0fd7be78fc35efff9857a9cb5dca98e
[lispflowmapping.git] / mappingservice / lisp-proto / src / test / java / org / opendaylight / lispflowmapping / lisp / util / LispAddressStringifierTest.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.rev100924.IpAddress;
14 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Address;
15 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Prefix;
16 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv6Address;
17 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv6Prefix;
18 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.InstanceIdType;
19 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.LispAddress;
20 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.SimpleAddress;
21 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address
22         .InstanceId;
23 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address
24         .InstanceIdBuilder;
25 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address
26         .Ipv4;
27 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address
28         .Ipv4Builder;
29 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address
30         .Ipv4PrefixBuilder;
31 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address
32         .Ipv6;
33 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address
34         .Ipv6Builder;
35 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address
36         .Ipv6PrefixBuilder;
37 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address
38         .Mac;
39 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address
40         .MacBuilder;
41 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev100924.MacAddress;
42 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.container.EidBuilder;
43
44 public class LispAddressStringifierTest {
45
46     private static final long VNI = 100L;
47     private static final long IID = 200L;
48
49     // Ipv4
50     private static final String IPV4_STRING = "192.168.0.1";
51     private static final Ipv4Address IPV4_ADDRESS = new Ipv4Address(IPV4_STRING);
52     private static final Ipv4 IPV4 = new Ipv4Builder().setIpv4(IPV4_ADDRESS).build();
53     private static final LispAddress LISP_IPV4 = new EidBuilder().setAddress(IPV4)
54             .setVirtualNetworkId(new InstanceIdType(VNI)).build();
55
56     // Ipv6
57     private static final String IPV6_STRING = "1111:2222:3333:4444:5555:6666:7777:8888";
58     private static final Ipv6Address IPV6_ADDRESS = new Ipv6Address(IPV6_STRING);
59     private static final Ipv6 IPV6 = new Ipv6Builder().setIpv6(new Ipv6Address(IPV6_STRING)).build();
60     private static final LispAddress LISP_IPV6 = new EidBuilder().setAddress(IPV6).build();
61
62     // Ipv4Prefix
63     private static final String PREFIX = "/24";
64     private static final org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105
65             .lisp.address.address.Ipv4Prefix IPV4_PREFIX = new Ipv4PrefixBuilder()
66             .setIpv4Prefix(new Ipv4Prefix(IPV4_STRING + PREFIX)).build();
67     private static final LispAddress LISP_IPV4_PREFIX = new EidBuilder().setAddress(IPV4_PREFIX).build();
68
69     // Ipv6Prefix
70     private static final org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105
71             .lisp.address.address.Ipv6Prefix IPV6_PREFIX = new Ipv6PrefixBuilder()
72             .setIpv6Prefix(new Ipv6Prefix(IPV6_STRING + PREFIX)).build();
73     private static final LispAddress LISP_IPV6_PREFIX = new EidBuilder().setAddress(IPV6_PREFIX).build();
74
75     //Mac
76     private static final Mac MAC = new MacBuilder().setMac(new MacAddress("01:23:45:67:89:ab")).build();
77     private static final LispAddress LISP_MAC = new EidBuilder().setAddress(MAC).build();
78
79     // InstanceId with Ipv4
80     private static final InstanceIdType INSTANCE_ID_TYPE = new InstanceIdType(IID);
81     private static final InstanceId INSTANCE_ID_IPV4 = new InstanceIdBuilder().setInstanceId(new org.opendaylight.yang
82             .gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.instance.id
83             .InstanceIdBuilder().setAddress(new SimpleAddress(new IpAddress(IPV4_ADDRESS)))
84             .setIid(INSTANCE_ID_TYPE).build()).build();
85     private static final LispAddress LISP_IID_IPV4 = new EidBuilder().setAddress(INSTANCE_ID_IPV4).build();
86
87     // InstanceId with Ipv6
88     private static final InstanceId INSTANCE_ID_IPV6 = new InstanceIdBuilder().setInstanceId(new org.opendaylight.yang
89             .gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.instance.id
90             .InstanceIdBuilder().setAddress(new SimpleAddress(new IpAddress(IPV6_ADDRESS)))
91             .setIid(INSTANCE_ID_TYPE).build()).build();
92     private static final LispAddress LISP_IID_IPV6 = new EidBuilder().setAddress(INSTANCE_ID_IPV6).build();
93
94
95
96     /**
97      * Tests {@link LispAddressStringifier#getString} with Ipv4 address type.
98      */
99     @Test
100     public void getStringTest_withIpv4() {
101         assertEquals("[" + VNI + "] " + IPV4_STRING, LispAddressStringifier.getString(LISP_IPV4));
102     }
103
104     /**
105      * Tests {@link LispAddressStringifier#getString} with Ipv4Prefix address type.
106      */
107     @Test
108     public void getStringTest_withIpv4Prefix() {
109         assertEquals(IPV4_STRING + PREFIX, LispAddressStringifier.getString(LISP_IPV4_PREFIX));
110     }
111
112     /**
113      * Tests {@link LispAddressStringifier#getString} with Ipv6 address type.
114      */
115     @Test
116     public void getStringTest_withIpv6() {
117         assertEquals(IPV6_STRING, LispAddressStringifier.getString(LISP_IPV6));
118     }
119
120     /**
121      * Tests {@link LispAddressStringifier#getString} with Ipv6Prefix address type.
122      */
123     @Test
124     public void getStringTest_withIpv6Prefix() {
125         assertEquals(IPV6_STRING + PREFIX, LispAddressStringifier.getString(LISP_IPV6_PREFIX));
126     }
127
128     /**
129      * Tests {@link LispAddressStringifier#getString} with Mac address type.
130      */
131     @Test
132     public void getStringTest_withMac() {
133         assertEquals(MAC.getMac().getValue(), LispAddressStringifier.getString(LISP_MAC));
134     }
135
136     /**
137      * Tests {@link LispAddressStringifier#getString} with InstanceId address type.
138      */
139     @Test
140     public void getStringTest_withInstanceId() {
141         // with Ipv4
142         assertEquals("[" + IID + "] " + IPV4_STRING, LispAddressStringifier.getString(LISP_IID_IPV4));
143
144         // with Ipv6
145         assertEquals("[" + IID + "] " + IPV6_STRING, LispAddressStringifier.getString(LISP_IID_IPV6));
146     }
147 }