2 * Copyright (c) 2016 Cisco Systems Inc and others. All rights reserved.
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
8 package org.opendaylight.unimgr.mef.nrp.cisco.xr.common.helper;
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;
24 import java.util.List;
26 import static org.junit.Assert.*;
29 * @author krzysztof.bijakowski@amartus.com
31 public class InterfaceHelperTest {
34 public void testGetInterfaceName() {
36 String interfaceName = "GigabitEthernet0/0/1";
38 TpId tp = Mockito.mock(TpId.class);
39 Mockito.when(tp.getValue()).thenReturn(interfaceName);
41 FcPort port = Mockito.mock(FcPort.class);
42 Mockito.when(port.getTp()).thenReturn(tp);
44 InterfaceName expected = new InterfaceName(interfaceName);
47 InterfaceName actual = InterfaceHelper.getInterfaceName(port);
50 assertEquals(expected, actual);
54 public void testGetInterfaceNameSplit() {
56 String interfaceName = "xxxxxxxx:GigabitEthernet0/0/1";
58 TpId tp = Mockito.mock(TpId.class);
59 Mockito.when(tp.getValue()).thenReturn(interfaceName);
61 FcPort port = Mockito.mock(FcPort.class);
62 Mockito.when(port.getTp()).thenReturn(tp);
64 InterfaceName expected = new InterfaceName("GigabitEthernet0/0/1");
67 InterfaceName actual = InterfaceHelper.getInterfaceName(port);
70 assertEquals(expected, actual);
74 public void testBuildSingle() {
76 String interfaceNameValue = "GigabitEthernet0/0/1";
77 InterfaceName interfaceName = new InterfaceName(interfaceNameValue);
78 Optional<Mtus> mtus = Optional.empty();
79 boolean setL2Transport = false;
81 InterfaceHelper interfaceHelper = new InterfaceHelper();
84 interfaceHelper.addInterface(interfaceName, mtus, setL2Transport);
85 InterfaceConfigurations actual = interfaceHelper.build();
88 assertNotNull(actual);
90 List<InterfaceConfiguration> actualInterfaceConfigurationList = actual.getInterfaceConfiguration();
91 assertNotNull(actualInterfaceConfigurationList);
92 assertEquals(1, actualInterfaceConfigurationList.size());
94 InterfaceConfiguration actualInterfaceConfiguration = actualInterfaceConfigurationList.get(0);
96 assertNotNull(actualInterfaceConfiguration);
97 assertEquals(interfaceName, actualInterfaceConfiguration.getInterfaceName());
98 assertNull(actualInterfaceConfiguration.getMtus());
99 assertNull(actualInterfaceConfiguration.getAugmentation(InterfaceConfiguration3.class));
103 public void testBuildSingleMtuL2() {
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;
112 InterfaceHelper interfaceHelper = new InterfaceHelper();
115 interfaceHelper.addInterface(interfaceName, mtus, setL2Transport);
116 InterfaceConfigurations actual = interfaceHelper.build();
119 assertNotNull(actual);
121 List<InterfaceConfiguration> actualInterfaceConfigurationList = actual.getInterfaceConfiguration();
122 assertNotNull(actualInterfaceConfigurationList);
123 assertEquals(1, actualInterfaceConfigurationList.size());
125 InterfaceConfiguration actualInterfaceConfiguration = actualInterfaceConfigurationList.get(0);
127 assertNotNull(actualInterfaceConfiguration);
128 assertEquals(interfaceName, actualInterfaceConfiguration.getInterfaceName());
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());
140 InterfaceConfiguration3 l2Configuration = actualInterfaceConfiguration.getAugmentation(InterfaceConfiguration3.class);
141 assertNotNull(l2Configuration);
142 assertNotNull(l2Configuration.getL2Transport());
143 assertTrue(l2Configuration.getL2Transport().isEnabled());
147 public void testBuildMultiple() {
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;
156 InterfaceHelper interfaceHelper = new InterfaceHelper();
159 interfaceHelper.addInterface(interfaceName1, mtus, setL2Transport);
160 interfaceHelper.addInterface(interfaceName2, mtus, setL2Transport);
161 InterfaceConfigurations actual = interfaceHelper.build();
164 assertNotNull(actual);
166 List<InterfaceConfiguration> actualInterfaceConfigurationList = actual.getInterfaceConfiguration();
167 assertNotNull(actualInterfaceConfigurationList);
168 assertEquals(2, actualInterfaceConfigurationList.size());
170 InterfaceConfiguration actualInterfaceConfiguration = actualInterfaceConfigurationList.get(0);
172 assertNotNull(actualInterfaceConfiguration);
173 assertEquals(interfaceName1, actualInterfaceConfiguration.getInterfaceName());
174 assertNull(actualInterfaceConfiguration.getMtus());
175 assertNull(actualInterfaceConfiguration.getAugmentation(InterfaceConfiguration3.class));
177 actualInterfaceConfiguration = actualInterfaceConfigurationList.get(1);
179 assertNotNull(actualInterfaceConfiguration);
180 assertEquals(interfaceName2, actualInterfaceConfiguration.getInterfaceName());
181 assertNull(actualInterfaceConfiguration.getMtus());
182 assertNull(actualInterfaceConfiguration.getAugmentation(InterfaceConfiguration3.class));