86983bb868e1d5be9570f29f0ce39452031bd641
[lispflowmapping.git] / mappingservice / neutron / src / test / java / org / opendaylight / lispflowmapping / neutron / LispUtilTest.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.neutron;
9
10 import static org.junit.Assert.assertEquals;
11
12 import com.google.common.collect.Lists;
13 import org.junit.Test;
14 import org.opendaylight.lispflowmapping.lisp.util.LispAddressUtil;
15 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
16 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.Ipv4Builder;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.container.Eid;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.locatorrecords.LocatorRecord;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.locatorrecords.LocatorRecordBuilder;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping.authkey.container.MappingAuthkeyBuilder;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping.record.container.MappingRecord;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping.record.container.MappingRecordBuilder;
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.rloc.container.RlocBuilder;
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.AddKeyInput;
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.AddKeyInputBuilder;
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.AddMappingInput;
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.AddMappingInputBuilder;
28 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.GetMappingInput;
29 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.GetMappingInputBuilder;
30 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.RemoveKeyInput;
31 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.RemoveKeyInputBuilder;
32 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.RemoveMappingInput;
33 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.RemoveMappingInputBuilder;
34
35 public class LispUtilTest {
36     private static final int RECORD_TTL = 1440;
37     private static final String IPV4_1 = "192.168.0.1";
38     private static final String IPV4_2 = "192.168.0.2";
39     private static final String KEY = "key";
40     private static final Eid EID = LispAddressUtil.asIpv4Eid(IPV4_1);
41     private static final LocatorRecord LOCATOR_RECORD = getDefaultLocatorRecord();
42
43     /**
44      * Tests {@link LispUtil#buildAddMappingInput} method.
45      */
46     @Test
47     public void buildAddMappingInputTest() {
48         final MappingRecord mappingRecord = new MappingRecordBuilder()
49                 .setAction(MappingRecord.Action.NoAction)
50                 .setAuthoritative(true).setEid(EID)
51                 .setLocatorRecord(Lists.newArrayList(getDefaultLocatorRecord()))
52                 .setMapVersion((short) 0)
53                 .setRecordTtl(RECORD_TTL).build();
54
55         final AddMappingInput expectedResult = new AddMappingInputBuilder().setMappingRecord(mappingRecord).build();
56         final AddMappingInput result = LispUtil.buildAddMappingInput(EID, Lists.newArrayList(LOCATOR_RECORD));
57
58         assertEquals(expectedResult, result);
59     }
60
61     /**
62      * Tests {@link LispUtil#buildAddKeyInput} method.
63      */
64     @Test
65     public void buildAddKeyInputTest() {
66         final AddKeyInput expectedResult = new AddKeyInputBuilder()
67                 .setEid(EID)
68                 .setMappingAuthkey(new MappingAuthkeyBuilder()
69                         .setKeyString(KEY)
70                         .setKeyType(1).build()).build();
71         final AddKeyInput result = LispUtil.buildAddKeyInput(EID, KEY);
72
73         assertEquals(expectedResult, result);
74     }
75
76     /**
77      * Tests {@link LispUtil#buildGetMappingInput} method.
78      */
79     @Test
80     public void buildGetMappingInputTest() {
81         final GetMappingInput expectedResult = new GetMappingInputBuilder().setEid(EID).build();
82         final GetMappingInput result = LispUtil.buildGetMappingInput(EID);
83
84         assertEquals(expectedResult, result);
85     }
86
87     /**
88      * Tests {@link LispUtil#buildRemoveMappingInput} method.
89      */
90     @Test
91     public void buildRemoveMappingInputTest() {
92         final RemoveMappingInput expectedResult = new RemoveMappingInputBuilder().setEid(EID).build();
93         final RemoveMappingInput result = LispUtil.buildRemoveMappingInput(EID);
94
95         assertEquals(expectedResult, result);
96     }
97
98     /**
99      * Tests {@link LispUtil#buildRemoveKeyInput} method.
100      */
101     @Test
102     public void buildRemoveKeyInputTest() {
103         final RemoveKeyInput expectedResult = new RemoveKeyInputBuilder().setEid(EID).build();
104         final RemoveKeyInput result = LispUtil.buildRemoveKeyInput(EID);
105
106         assertEquals(expectedResult, result);
107     }
108
109     private static LocatorRecord getDefaultLocatorRecord() {
110         return new LocatorRecordBuilder()
111                 .setLocatorId("foo")
112                 .setRloc(new RlocBuilder()
113                         .setAddress(new Ipv4Builder()
114                                 .setIpv4(new Ipv4Address(IPV4_2)).build()).build()).build();
115     }
116 }