Refactoring of cisco-xr-driver and impl modules.
[unimgr.git] / cisco-xr-driver / src / test / java / org / opendaylight / unimgr / mef / nrp / cisco / xr / common / helper / InterfaceHelperTest.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.unimgr.mef.nrp.cisco.xr.common.helper;
9
10 import java.util.Optional;
11 import org.junit.Test;
12 import org.mockito.Mockito;
13 import org.opendaylight.unimgr.mef.nrp.cisco.xr.common.util.MtuUtils;
14 import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730.InterfaceConfigurations;
15 import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730._interface.configurations.InterfaceConfiguration;
16 import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730._interface.configurations._interface.configuration.Mtus;
17 import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ifmgr.cfg.rev150730._interface.configurations._interface.configuration.mtus.Mtu;
18 import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.l2vpn.cfg.rev151109.InterfaceConfiguration3;
19 import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.xr.types.rev150629.CiscoIosXrString;
20 import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.xr.types.rev150629.InterfaceName;
21 import org.opendaylight.yang.gen.v1.urn.onf.core.network.module.rev160630.g_forwardingconstruct.FcPort;
22 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TpId;
23
24 import java.util.List;
25
26 import static org.junit.Assert.*;
27
28 /**
29  * @author krzysztof.bijakowski@amartus.com
30  */
31 public class InterfaceHelperTest {
32
33     @Test
34     public void testGetInterfaceName() {
35         //given
36         String interfaceName = "GigabitEthernet0/0/1";
37
38         TpId tp = Mockito.mock(TpId.class);
39         Mockito.when(tp.getValue()).thenReturn(interfaceName);
40
41         FcPort port = Mockito.mock(FcPort.class);
42         Mockito.when(port.getTp()).thenReturn(tp);
43
44         InterfaceName expected = new InterfaceName(interfaceName);
45
46         //when
47         InterfaceName actual = InterfaceHelper.getInterfaceName(port);
48
49         //then
50         assertEquals(expected, actual);
51     }
52
53     @Test
54     public void testGetInterfaceNameSplit() {
55         //given
56         String interfaceName = "xxxxxxxx:GigabitEthernet0/0/1";
57
58         TpId tp = Mockito.mock(TpId.class);
59         Mockito.when(tp.getValue()).thenReturn(interfaceName);
60
61         FcPort port = Mockito.mock(FcPort.class);
62         Mockito.when(port.getTp()).thenReturn(tp);
63
64         InterfaceName expected = new InterfaceName("GigabitEthernet0/0/1");
65
66         //when
67         InterfaceName actual = InterfaceHelper.getInterfaceName(port);
68
69         //then
70         assertEquals(expected, actual);
71     }
72
73     @Test
74     public void testBuildSingle() {
75         //given
76         String interfaceNameValue = "GigabitEthernet0/0/1";
77         InterfaceName interfaceName = new InterfaceName(interfaceNameValue);
78         Optional<Mtus> mtus = Optional.empty();
79         boolean setL2Transport = false;
80
81         InterfaceHelper interfaceHelper = new InterfaceHelper();
82
83         //when
84         interfaceHelper.addInterface(interfaceName, mtus, setL2Transport);
85         InterfaceConfigurations actual = interfaceHelper.build();
86
87         //then
88         assertNotNull(actual);
89
90         List<InterfaceConfiguration> actualInterfaceConfigurationList = actual.getInterfaceConfiguration();
91         assertNotNull(actualInterfaceConfigurationList);
92         assertEquals(1, actualInterfaceConfigurationList.size());
93
94         InterfaceConfiguration actualInterfaceConfiguration = actualInterfaceConfigurationList.get(0);
95
96         assertNotNull(actualInterfaceConfiguration);
97         assertEquals(interfaceName, actualInterfaceConfiguration.getInterfaceName());
98         assertNull(actualInterfaceConfiguration.getMtus());
99         assertNull(actualInterfaceConfiguration.getAugmentation(InterfaceConfiguration3.class));
100     }
101
102     @Test
103     public void testBuildSingleMtuL2() {
104         //given
105         String interfaceNameValue = "GigabitEthernet0/0/1";
106         CiscoIosXrString owner = new CiscoIosXrString("test");
107         long mtuValue = 1522L;
108         InterfaceName interfaceName = new InterfaceName(interfaceNameValue);
109         Optional<Mtus> mtus = Optional.of(MtuUtils.generateMtus(mtuValue, owner));
110         boolean setL2Transport = true;
111
112         InterfaceHelper interfaceHelper = new InterfaceHelper();
113
114         //when
115         interfaceHelper.addInterface(interfaceName, mtus, setL2Transport);
116         InterfaceConfigurations actual = interfaceHelper.build();
117
118         //then
119         assertNotNull(actual);
120
121         List<InterfaceConfiguration> actualInterfaceConfigurationList = actual.getInterfaceConfiguration();
122         assertNotNull(actualInterfaceConfigurationList);
123         assertEquals(1, actualInterfaceConfigurationList.size());
124
125         InterfaceConfiguration actualInterfaceConfiguration = actualInterfaceConfigurationList.get(0);
126
127         assertNotNull(actualInterfaceConfiguration);
128         assertEquals(interfaceName, actualInterfaceConfiguration.getInterfaceName());
129
130         Mtus actualMtus = actualInterfaceConfiguration.getMtus();
131         assertNotNull(actualMtus);
132         List<Mtu> actualMtuList = actualMtus.getMtu();
133         assertNotNull(actualMtuList);
134         assertEquals(1, actualMtuList.size());
135         assertNotNull(actualMtuList.get(0));
136         Mtu actualMtu = actualMtuList.get(0);
137         assertEquals(mtuValue, actualMtu.getMtu().longValue());
138         assertEquals(owner, actualMtu.getOwner());
139
140         InterfaceConfiguration3 l2Configuration = actualInterfaceConfiguration.getAugmentation(InterfaceConfiguration3.class);
141         assertNotNull(l2Configuration);
142         assertNotNull(l2Configuration.getL2Transport());
143         assertTrue(l2Configuration.getL2Transport().isEnabled());
144     }
145
146     @Test
147     public void testBuildMultiple() {
148         //given
149         String interfaceNameValue1 = "GigabitEthernet0/0/1";
150         InterfaceName interfaceName1 = new InterfaceName(interfaceNameValue1);
151         String interfaceNameValue2 = "GigabitEthernet0/0/2";
152         InterfaceName interfaceName2 = new InterfaceName(interfaceNameValue2);
153         Optional<Mtus> mtus = Optional.empty();
154         boolean setL2Transport = false;
155
156         InterfaceHelper interfaceHelper = new InterfaceHelper();
157
158         //when
159         interfaceHelper.addInterface(interfaceName1, mtus, setL2Transport);
160         interfaceHelper.addInterface(interfaceName2, mtus, setL2Transport);
161         InterfaceConfigurations actual = interfaceHelper.build();
162
163         //then
164         assertNotNull(actual);
165
166         List<InterfaceConfiguration> actualInterfaceConfigurationList = actual.getInterfaceConfiguration();
167         assertNotNull(actualInterfaceConfigurationList);
168         assertEquals(2, actualInterfaceConfigurationList.size());
169
170         InterfaceConfiguration actualInterfaceConfiguration = actualInterfaceConfigurationList.get(0);
171
172         assertNotNull(actualInterfaceConfiguration);
173         assertEquals(interfaceName1, actualInterfaceConfiguration.getInterfaceName());
174         assertNull(actualInterfaceConfiguration.getMtus());
175         assertNull(actualInterfaceConfiguration.getAugmentation(InterfaceConfiguration3.class));
176
177         actualInterfaceConfiguration = actualInterfaceConfigurationList.get(1);
178
179         assertNotNull(actualInterfaceConfiguration);
180         assertEquals(interfaceName2, actualInterfaceConfiguration.getInterfaceName());
181         assertNull(actualInterfaceConfiguration.getMtus());
182         assertNull(actualInterfaceConfiguration.getAugmentation(InterfaceConfiguration3.class));
183     }
184 }