/*
- * Copyright (c) 2016 Ericsson India Global Services Pvt Ltd. and others. All rights reserved.
+ * Copyright (c) 2016, 2017 Ericsson India Global Services Pvt Ltd. and others. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
package org.opendaylight.genius.itm.cli;
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+
import com.google.common.base.Optional;
import com.google.common.util.concurrent.Futures;
-import static org.junit.Assert.*;
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
+import java.math.BigInteger;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.DataChangeListener;
import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
-import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker;
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
import org.opendaylight.genius.itm.globals.ITMConstants;
import org.opendaylight.genius.itm.impl.ItmUtils;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefixBuilder;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state
- .InterfaceBuilder;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.InterfaceBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.TunnelMonitoringTypeBase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.TunnelTypeBase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.TunnelTypeGre;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.TunnelTypeVxlan;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.config.rev160406.ItmConfig;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.config.rev160406.TunnelMonitorInterval;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.config.rev160406.TunnelMonitorIntervalBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.config.rev160406.TunnelMonitorParams;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.config.rev160406.TunnelMonitorParamsBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.TunnelList;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.TunnelListBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.TunnelOperStatus;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.tunnel.list.InternalTunnel;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.tunnel.list.InternalTunnelBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.tunnel.list.InternalTunnelKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.tunnels_state.StateTunnelList;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.tunnels_state.StateTunnelListBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.TransportZones;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.TransportZonesBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.TransportZone;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.TransportZoneBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.TransportZoneKey;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.Subnets;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone
- .SubnetsBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.SubnetsBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.SubnetsKey;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.subnets.*;
-import org.opendaylight.yangtools.concepts.ListenerRegistration;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.subnets.DeviceVteps;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.subnets.DeviceVtepsBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.subnets.DeviceVtepsKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.subnets.Vteps;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.subnets.VtepsBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.subnets.VtepsKey;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.ByteArrayOutputStream;
-import java.io.PrintStream;
-import java.math.BigInteger;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import static org.mockito.Matchers.any;
-import static org.mockito.Mockito.*;
-
@RunWith(MockitoJUnitRunner.class)
public class TepCommandHelperTest {
InternalTunnel internalTunnelTest = null;
TunnelList tunnelList = null;
TunnelList tunnelListTest = null;
+ StateTunnelList stateTunnelListTest = null ;
+ StateTunnelList stateTunnelTest = null ;
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface
interfaceTest = null;
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface
List<TransportZone> transportZoneList = new ArrayList<>();
List<TransportZone> transportZoneListNew = new ArrayList<>();
List<InternalTunnel> internalTunnelList = new ArrayList<>();
+ List<StateTunnelList> stateTunnelList = new ArrayList<>() ;
List<String> lowerLayerIfList = new ArrayList<>();
List<InstanceIdentifier> instanceIdentifierList = new ArrayList<>();
java.lang.Class<? extends TunnelTypeBase> tunnelType1 = TunnelTypeVxlan.class;
java.lang.Class<? extends TunnelTypeBase> tunnelType2 = TunnelTypeGre.class;
InstanceIdentifier<TransportZone> transportZoneIdentifier = InstanceIdentifier.builder(TransportZones.class)
- .child(TransportZone.class, new TransportZoneKey(transportZone1)).build();
- InstanceIdentifier<TransportZones> transportZonesIdentifier = InstanceIdentifier.builder(TransportZones.class).build();
- InstanceIdentifier<TunnelMonitorInterval> tunnelMonitorIntervalIdentifier = InstanceIdentifier.builder(TunnelMonitorInterval.class).build();
- InstanceIdentifier<TunnelMonitorParams> tunnelMonitorParamsIdentifier = InstanceIdentifier.builder(TunnelMonitorParams.class).build();
- InstanceIdentifier<Vteps> vtepsIdentifier = InstanceIdentifier.builder(TransportZones.class).child(TransportZone.class, new
- TransportZoneKey(transportZone1))
- .child(Subnets.class, new SubnetsKey(ipPrefixTest)).child(Vteps.class, new VtepsKey(dpId1,portName1)).build();
- InstanceIdentifier<Vteps> vtepsIdentifierNew = InstanceIdentifier.builder(TransportZones.class).child(TransportZone
- .class, new TransportZoneKey(transportZone1))
- .child(Subnets.class, new SubnetsKey(ipPrefixTest)).child(Vteps.class, new VtepsKey(dpId2,portName1)).build();
+ .child(TransportZone.class, new TransportZoneKey(transportZone1)).build();
+ InstanceIdentifier<TransportZones> transportZonesIdentifier =
+ InstanceIdentifier.builder(TransportZones.class).build();
+ InstanceIdentifier<TunnelMonitorInterval> tunnelMonitorIntervalIdentifier =
+ InstanceIdentifier.builder(TunnelMonitorInterval.class).build();
+ InstanceIdentifier<TunnelMonitorParams> tunnelMonitorParamsIdentifier =
+ InstanceIdentifier.builder(TunnelMonitorParams.class).build();
+ InstanceIdentifier<Vteps> vtepsIdentifier = InstanceIdentifier.builder(TransportZones.class)
+ .child(TransportZone.class, new TransportZoneKey(transportZone1))
+ .child(Subnets.class, new SubnetsKey(ipPrefixTest))
+ .child(Vteps.class, new VtepsKey(dpId1,portName1)).build();
+ InstanceIdentifier<Vteps> vtepsIdentifierNew = InstanceIdentifier.builder(TransportZones.class)
+ .child(TransportZone
+ .class, new TransportZoneKey(transportZone1))
+ .child(Subnets.class, new SubnetsKey(ipPrefixTest))
+ .child(Vteps.class, new VtepsKey(dpId2,portName1)).build();
InstanceIdentifier<Subnets> subnetsIdentifier = InstanceIdentifier.builder(TransportZones.class)
- .child(TransportZone.class, new TransportZoneKey(transportZone1)).child(Subnets.class,
- new SubnetsKey(ipPrefixTest)).build();
+ .child(TransportZone.class, new TransportZoneKey(transportZone1))
+ .child(Subnets.class, new SubnetsKey(ipPrefixTest)).build();
InstanceIdentifier<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces
.state.Interface> interfaceIdentifier = ItmUtils.buildStateInterfaceId(tunnelInterfaceName);
InstanceIdentifier<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces
.Interface> interfaceIdentifierNew = ItmUtils.buildId(tunnelInterfaceName);
@Mock DataBroker dataBroker;
- @Mock ListenerRegistration<DataChangeListener> dataChangeListenerRegistration;
+ @Mock ItmConfig itmConfig;
@Mock ReadOnlyTransaction mockReadTx;
@Mock WriteTransaction mockWriteTx;
- @Mock Map<String, Map<SubnetObject, List<Vteps>>> tZones;
+ @Mock Map<String, Map<SubnetObject, List<Vteps>>> tzones;
Optional<TransportZone> optionalTransportZone;
Optional<TransportZones> optionalTransportZones;
TepCommandHelper tepCommandHelper ;
@Before
- public void setUp() throws Exception {
- when(dataBroker.registerDataChangeListener(
- any(LogicalDatastoreType.class),
- any(InstanceIdentifier.class),
- any(DataChangeListener.class),
- any(AsyncDataBroker.DataChangeScope.class)))
- .thenReturn(dataChangeListenerRegistration);
+ public void setUp() {
setupMocks();
optionalTransportZone = Optional.of(transportZone);
.CONFIGURATION,transportZoneIdentifier);
doReturn(Futures.immediateCheckedFuture(optionalTransportZones)).when(mockReadTx).read(LogicalDatastoreType
.CONFIGURATION,transportZonesIdentifier);
- doReturn(Futures.immediateCheckedFuture(optionalTunnelMonitorInterval)).when(mockReadTx).read
- (LogicalDatastoreType.CONFIGURATION,tunnelMonitorIntervalIdentifier);
- doReturn(Futures.immediateCheckedFuture(optionalTunnelMonitorParams)).when(mockReadTx).read
- (LogicalDatastoreType.CONFIGURATION,tunnelMonitorParamsIdentifier);
- doReturn(Futures.immediateCheckedFuture(optionalVteps)).when(mockReadTx).read(LogicalDatastoreType
- .CONFIGURATION,vtepsIdentifier);
- doReturn(Futures.immediateCheckedFuture(optionalSubnets)).when(mockReadTx).read(LogicalDatastoreType
- .CONFIGURATION,subnetsIdentifier);
- doReturn(Futures.immediateCheckedFuture(ifStateOptional)).when(mockReadTx).read(LogicalDatastoreType
- .OPERATIONAL,interfaceIdentifier);
- doReturn(Futures.immediateCheckedFuture(ifStateOptionalNew)).when(mockReadTx).read(LogicalDatastoreType
- .CONFIGURATION,interfaceIdentifierNew);
-
- tepCommandHelper = new TepCommandHelper(dataBroker);
+ doReturn(Futures.immediateCheckedFuture(optionalTunnelMonitorInterval)).when(mockReadTx)
+ .read(LogicalDatastoreType.CONFIGURATION,tunnelMonitorIntervalIdentifier);
+ doReturn(Futures.immediateCheckedFuture(optionalTunnelMonitorParams)).when(mockReadTx)
+ .read(LogicalDatastoreType.CONFIGURATION,tunnelMonitorParamsIdentifier);
+ doReturn(Futures.immediateCheckedFuture(optionalVteps)).when(mockReadTx)
+ .read(LogicalDatastoreType.CONFIGURATION,vtepsIdentifier);
+ doReturn(Futures.immediateCheckedFuture(optionalSubnets)).when(mockReadTx)
+ .read(LogicalDatastoreType.CONFIGURATION,subnetsIdentifier);
+ doReturn(Futures.immediateCheckedFuture(ifStateOptional)).when(mockReadTx)
+ .read(LogicalDatastoreType.OPERATIONAL,interfaceIdentifier);
+ doReturn(Futures.immediateCheckedFuture(ifStateOptionalNew)).when(mockReadTx)
+ .read(LogicalDatastoreType.CONFIGURATION,interfaceIdentifierNew);
+
+ tepCommandHelper = new TepCommandHelper(dataBroker, itmConfig);
}
instanceIdentifierList.add(transportZoneIdentifier);
instanceIdentifierList.add(vtepsIdentifier);
instanceIdentifierList.add(subnetsIdentifier);
- deviceVteps = new DeviceVtepsBuilder().setIpAddress(ipAddress1).setKey(new DeviceVtepsKey(ipAddress1,sourceDevice))
+ deviceVteps = new DeviceVtepsBuilder().setIpAddress(ipAddress1)
+ .setKey(new DeviceVtepsKey(ipAddress1,sourceDevice))
.setNodeId(sourceDevice).setTopologyId(destinationDevice).build();
- vteps = new VtepsBuilder().setPortname(portName1).setDpnId(dpId2).setIpAddress(ipAddress1).setKey(new
- VtepsKey(dpId2,portName1)).build();
+ vteps = new VtepsBuilder().setPortname(portName1).setDpnId(dpId2)
+ .setIpAddress(ipAddress1).setKey(new VtepsKey(dpId2,portName1)).build();
vtepsNew = new VtepsBuilder().setPortname(portName1).setDpnId(dpId1).setIpAddress(ipAddress1).setKey(new
VtepsKey(dpId1,portName1)).build();
vtepsTest = new VtepsBuilder().build();
tunnelMonitorInterval = new TunnelMonitorIntervalBuilder().setInterval(10000).build();
tunnelMonitorParams = new TunnelMonitorParamsBuilder().setEnabled(true).build();
internalTunnelTest = new InternalTunnelBuilder().setSourceDPN(dpId1).setDestinationDPN(dpId2)
- .setTunnelInterfaceName(tunnelInterfaceName).setKey(new InternalTunnelKey(dpId1,dpId2,tunnelType1))
- .setTransportType(tunnelType1).build();
+ .setTunnelInterfaceNames(Collections.singletonList(tunnelInterfaceName))
+ .setKey(new InternalTunnelKey(dpId1, dpId2, tunnelType1)).setTransportType(tunnelType1).build();
internalTunnelList.add(internalTunnelTest);
+ stateTunnelListTest = new StateTunnelListBuilder().setTunnelInterfaceName(tunnelInterfaceName)
+ .setOperState(TunnelOperStatus.Up).build();
+ stateTunnelList.add(stateTunnelListTest);
tunnelList = new TunnelListBuilder().setInternalTunnel(internalTunnelList).build();
tunnelListTest = new TunnelListBuilder().build();
lowerLayerIfList.add(dpId1.toString());
- interfaceTest = new InterfaceBuilder().setOperStatus(Interface.OperStatus.Up).setAdminStatus
- (org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface.AdminStatus.Up)
- .setPhysAddress(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.PhysAddress.getDefaultInstance("AA:AA:AA:AA:AA:AA"))
+ interfaceTest = new InterfaceBuilder().setOperStatus(Interface.OperStatus.Up)
+ .setAdminStatus(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508
+ .interfaces.state.Interface.AdminStatus.Up)
+ .setPhysAddress(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715
+ .PhysAddress.getDefaultInstance("AA:AA:AA:AA:AA:AA"))
.setIfIndex(100).setLowerLayerIf(lowerLayerIfList).setType(L2vlan.class).build();
interfaceTestNew = ItmUtils.buildTunnelInterface(dpId1, tunnelInterfaceName, destinationDevice, enabled,
- TunnelTypeVxlan.class, ipAddress1, ipAddress2, gtwyIp1, vlanId, true, enabled,monitorProtocol, interval);
+ TunnelTypeVxlan.class, ipAddress1, ipAddress2, gtwyIp1, vlanId, true, enabled,monitorProtocol,
+ interval, false, null);
interfaceTestNewCase = ItmUtils.buildTunnelInterface(dpId1, tunnelInterfaceName, destinationDevice, enabled,
- TunnelTypeGre.class, ipAddress1, ipAddress2, gtwyIp1, vlanId, true, enabled, monitorProtocol, interval);
+ TunnelTypeGre.class, ipAddress1, ipAddress2, gtwyIp1, vlanId, true, enabled, monitorProtocol,
+ interval, false, null);
doReturn(mockReadTx).when(dataBroker).newReadOnlyTransaction();
doReturn(mockWriteTx).when(dataBroker).newWriteOnlyTransaction();
doReturn(Futures.immediateCheckedFuture(null)).when(mockWriteTx).submit();
}
@Test
- public void testCreateLocalCacheTzonesEmpty(){
+ public void testCreateLocalCacheTzonesEmpty() {
- tepCommandHelper.createLocalCache(dpId1,portName1,vlanId,tepIp1,subnetMask,gwyIp1,transportZone1);
+ try {
+ tepCommandHelper.createLocalCache(dpId1,portName1,vlanId,tepIp1,subnetMask,gwyIp1,transportZone1, null);
+ } catch (TepException e) {
+ LOG.error(e.getMessage());
+ }
verify(mockReadTx).read(LogicalDatastoreType.CONFIGURATION,transportZoneIdentifier);
}
@Test
- public void testCreateLocalCacheWithoutcheckExistingSubnet(){
+ public void testCreateLocalCacheWithoutcheckExistingSubnet() {
IpAddress gatewayIpObj = new IpAddress("0.0.0.0".toCharArray());
IpPrefix subnetMaskObj = new IpPrefix(subnetMask.toCharArray());
SubnetsKey subnetsKey = new SubnetsKey(subnetMaskObj);
SubnetObject subObCli = new SubnetObject(gatewayIpObj, subnetsKey, subnetMaskObj, vlanId);
- Map<SubnetObject, List<Vteps>> subVtepMapTemp = new HashMap<SubnetObject, List<Vteps>>();
+ Map<SubnetObject, List<Vteps>> subVtepMapTemp = new HashMap<>();
subVtepMapTemp.put(subObCli, vtepsList);
transportZoneNew = new TransportZoneBuilder().setZoneName(transportZone1).setTunnelType(tunnelType2).build();
doReturn(Futures.immediateCheckedFuture(Optional.absent())).when(mockReadTx).read(LogicalDatastoreType
.CONFIGURATION,transportZonesIdentifier);
- tepCommandHelper.createLocalCache(dpId1,portName1,vlanId,tepIp1,subnetMask,gwyIp1,transportZone1);
- tepCommandHelper.createLocalCache(dpId2,portName1,vlanId, tepIp1,subnetMask,gwyIp1, transportZone1);
+ try {
+ tepCommandHelper.createLocalCache(dpId1,portName1,vlanId,tepIp1,subnetMask,gwyIp1,transportZone1, null);
+ tepCommandHelper.createLocalCache(dpId2,portName1,vlanId, tepIp1,subnetMask,gwyIp1, transportZone1, null);
+ } catch (TepException e) {
+ LOG.error(e.getMessage());
+ }
+
verify(mockReadTx, times(2)).read(LogicalDatastoreType.CONFIGURATION,transportZoneIdentifier);
}
@Test
- public void testCreateLocalCacheWithcheckExistingSubnet(){
+ public void testCreateLocalCacheWithcheckExistingSubnet() {
transportZoneNew = new TransportZoneBuilder().setZoneName(transportZone1).setTunnelType(tunnelType2).build();
doReturn(Futures.immediateCheckedFuture(Optional.absent())).when(mockReadTx).read(LogicalDatastoreType
.CONFIGURATION,transportZonesIdentifier);
- tepCommandHelper.createLocalCache(dpId1,portName1,vlanId,tepIp1,subnetMask,gwyIp1,transportZone1);
- tepCommandHelper.createLocalCache(dpId2,portName1,vlanId, tepIp1,subnetMask,gwyIp2, transportZone1);
+
+ try {
+ tepCommandHelper.createLocalCache(dpId1,portName1,vlanId,tepIp1,subnetMask,gwyIp1,transportZone1, null);
+ tepCommandHelper.createLocalCache(dpId2,portName1,vlanId, tepIp1,subnetMask,gwyIp2, transportZone1, null);
+ } catch (TepException e) {
+ LOG.error(e.getMessage());
+ }
verify(mockReadTx, times(2)).read(LogicalDatastoreType.CONFIGURATION,transportZoneIdentifier);
}
+ @SuppressWarnings("checkstyle:IllegalCatch")
@Test
- public void testCreateLocalCacheInvalidIp(){
-
- tepCommandHelper.createLocalCache(dpId1,portName1,vlanId,tepIp3,subnetMask,gwyIp1,transportZone1);
-
- assertEquals("Invalid IpAddress. Expected: 1.0.0.0 to 254.255.255.255" + newline,outContent.toString());
-
+ public void testCreateLocalCacheInvalidIp() {
+
+ String output = null;
+ try {
+ tepCommandHelper.createLocalCache(dpId1, portName1, vlanId, tepIp3, subnetMask, gwyIp1,
+ transportZone1, null);
+ } catch (Exception e) {
+ output = e.getMessage() + newline;
+ }
+ assertEquals("Invalid IpAddress. Expected: 1.0.0.0 to 254.255.255.255" + newline,output);
}
@Test
- public void testCreateLocalCacheGtwyIpNull(){
-
- tepCommandHelper.createLocalCache(dpId1,portName1,vlanId,tepIp1,subnetMask,null,transportZone1);
+ public void testCreateLocalCacheGtwyIpNull() {
+ try {
+ tepCommandHelper.createLocalCache(dpId1,portName1,vlanId,tepIp1,subnetMask,null,transportZone1, null);
+ } catch (TepException e) {
+ LOG.error(e.getMessage());
+ }
LOG.debug("gateway is null");
-
}
@Test
- public void testCreateLocalCacheInvalidSubnetMask(){
+ public void testCreateLocalCacheInvalidSubnetMask() {
- tepCommandHelper.createLocalCache(dpId1,portName1,vlanId,tepIp1,tepIp2,gwyIp1,transportZone1);
+ String output = null;
+ try {
+ tepCommandHelper.createLocalCache(dpId1,portName1,vlanId,tepIp1,tepIp2,gwyIp1,transportZone1, null);
+ } catch (TepException e) {
+ output = e.getMessage() + newline;
+ }
String newline = System.getProperty("line.separator");
- assertEquals("Invalid Subnet Mask. Expected: 0.0.0.0/0 to 255.255.255.255/32" + newline,outContent.toString());
+ assertEquals("Invalid Subnet Mask. Expected: 0.0.0.0/0 to 255.255.255.255/32" + newline,output);
}
@Test
- public void testCreateLocalCacheMismatchIpwithSubnet(){
-
- tepCommandHelper.createLocalCache(dpId1,portName1,vlanId,tepIp4,subnetMask,gwyIp1,transportZone1);
-
- assertEquals("IpAddress and gateWayIp should belong to the subnet provided" + newline,outContent.toString());
-
+ public void testCreateLocalCadcheMismatchIpwithSubnet() {
+
+ String output = null;
+ try {
+ tepCommandHelper.createLocalCache(dpId1, portName1, vlanId, tepIp4, subnetMask, gwyIp1,
+ transportZone1, null);
+ } catch (TepException e) {
+ output = e.getMessage() + newline;
+ }
+ assertEquals("IpAddress and gateWayIp should belong to the subnet provided" + newline,output);
}
@Test
- public void testConfigureTunnelType(){
+ public void testConfigureTunnelType() {
doReturn(Futures.immediateCheckedFuture(Optional.absent())).when(mockReadTx).read(LogicalDatastoreType
.CONFIGURATION,transportZoneIdentifier);
verify(mockReadTx).read(LogicalDatastoreType.CONFIGURATION,transportZoneIdentifier);
verify(mockWriteTx).put(LogicalDatastoreType.CONFIGURATION,transportZonesIdentifier,transportZones,true);
-
}
@Test
- public void testConfigureTunnelMonitorInterval(){
+ public void testConfigureTunnelMonitorInterval() {
TunnelMonitorInterval tunnelMonitor = new TunnelMonitorIntervalBuilder().setInterval(interval).build();
tepCommandHelper.configureTunnelMonitorInterval(interval);
verify(mockReadTx).read(LogicalDatastoreType.CONFIGURATION,tunnelMonitorIntervalIdentifier);
- verify(mockWriteTx).merge(LogicalDatastoreType.CONFIGURATION,tunnelMonitorIntervalIdentifier,tunnelMonitor,true);
-
+ verify(mockWriteTx).merge(LogicalDatastoreType.CONFIGURATION,tunnelMonitorIntervalIdentifier,
+ tunnelMonitor,true);
}
@Test
- public void testConfigureTunnelMonitorParams(){
+ public void testConfigureTunnelMonitorParams() {
- TunnelMonitorParams tunnelMonitor = new TunnelMonitorParamsBuilder().setEnabled(enabled).setMonitorProtocol(monitorProtocol).build();
+ TunnelMonitorParams tunnelMonitor = new TunnelMonitorParamsBuilder().setEnabled(enabled)
+ .setMonitorProtocol(monitorProtocol).build();
tepCommandHelper.configureTunnelMonitorParams(enabled, "BFD");
verify(mockReadTx).read(LogicalDatastoreType.CONFIGURATION,tunnelMonitorParamsIdentifier);
verify(mockWriteTx).merge(LogicalDatastoreType.CONFIGURATION,tunnelMonitorParamsIdentifier,tunnelMonitor,true);
-
}
+ @SuppressWarnings("checkstyle:IllegalCatch")
@Test
- public void testDeleteVtep(){
+ public void testDeleteVtep() {
- tepCommandHelper.deleteVtep(dpId1,portName1,vlanId,tepIp1,subnetMask,gwyIp1,transportZone1);
+ try {
+ tepCommandHelper.deleteVtep(dpId1, portName1, vlanId, tepIp1, subnetMask, gwyIp1, transportZone1, null);
+ } catch (Exception e) {
+ LOG.error(e.getMessage());
+ }
verify(mockReadTx).read(LogicalDatastoreType.CONFIGURATION,vtepsIdentifier);
verify(mockReadTx).read(LogicalDatastoreType.CONFIGURATION,subnetsIdentifier);
}
@Test
- public void testDeleteVtepInvalidIp(){
+ public void testDeleteVtepInvalidIp() {
- tepCommandHelper.deleteVtep(dpId1,portName1,vlanId,tepIp3,subnetMask,gwyIp1,transportZone1);
+ String output = null;
+ try {
+ tepCommandHelper.deleteVtep(dpId1, portName1, vlanId, tepIp3, subnetMask, gwyIp1, transportZone1, null);
+ } catch (TepException e) {
+ output = e.getMessage() + newline;
+ }
String newline = System.getProperty("line.separator");
- assertEquals("Invalid IpAddress. Expected: 1.0.0.0 to 254.255.255.255" + newline,outContent.toString());
+ assertEquals("Invalid IpAddress. Expected: 1.0.0.0 to 254.255.255.255" + newline,output);
}
@Test
- public void testDeleteVtepInvalidSubnetMask(){
+ public void testDeleteVtepInvalidSubnetMask() {
- tepCommandHelper.deleteVtep(dpId1,portName1,vlanId,tepIp1,tepIp1,gwyIp1,transportZone1);
+ String output = null;
+ try {
+ tepCommandHelper.deleteVtep(dpId1, portName1, vlanId, tepIp1, tepIp1, gwyIp1, transportZone1, null);
+ } catch (TepException e) {
+ output = e.getMessage() + newline;
+ }
- assertEquals("Invalid Subnet Mask. Expected: 0.0.0.0/0 to 255.255.255.255/32" + newline,outContent.toString());
+ assertEquals("Invalid Subnet Mask. Expected: 0.0.0.0/0 to 255.255.255.255/32" + newline,output);
}
+ @SuppressWarnings("checkstyle:IllegalCatch")
@Test
- public void testDeleteVtepGatewayIpNull(){
+ public void testDeleteVtepGatewayIpNull() {
- tepCommandHelper.deleteVtep(dpId1,portName1,vlanId,tepIp1,subnetMask,null,transportZone1);
+ try {
+ tepCommandHelper.deleteVtep(dpId1, portName1, vlanId, tepIp1, subnetMask, null, transportZone1, null);
+ } catch (Exception e) {
+ LOG.error(e.getMessage());
+ }
LOG.debug("gateway is null in deleteVtep");
}
+ @SuppressWarnings("checkstyle:IllegalCatch")
@Test
- public void testDeleteVtepIpSubnetMismatch(){
+ public void testDeleteVtepIpSubnetMismatch() {
- tepCommandHelper.deleteVtep(dpId1,portName1,vlanId,tepIp4,subnetMask,gwyIp1,transportZone1);
+ String output = null;
+ try {
+ tepCommandHelper.deleteVtep(dpId1, portName1, vlanId, tepIp4, subnetMask, gwyIp1, transportZone1, null);
+ } catch (Exception e) {
+ output = e.getMessage() + newline;
+ }
- assertEquals("IpAddress and gateWayIp should belong to the subnet provided" + newline,outContent.toString());
+ assertEquals("IpAddress and gateWayIp should belong to the subnet provided" + newline,output);
}
@Test
- public void testBuildTepsTunnelTypeVxlan(){
+ public void testBuildTepsTunnelTypeVxlan() {
- tepCommandHelper.createLocalCache(dpId1,portName1,vlanId,tepIp1,subnetMask,gwyIp1,transportZone1);
+ try {
+ tepCommandHelper.createLocalCache(dpId1,portName1,vlanId,tepIp1,subnetMask,gwyIp1,transportZone1, null);
+ } catch (TepException e) {
+ LOG.error(e.getMessage());
+ }
tepCommandHelper.buildTeps();
verify(mockReadTx, times(2)).read(LogicalDatastoreType.CONFIGURATION,transportZoneIdentifier);
}
@Test
- public void testBuildTepsTunnelTypeGre(){
+ public void testBuildTepsTunnelTypeGre() {
optionalTransportZone = Optional.of(transportZoneNew);
doReturn(Futures.immediateCheckedFuture(optionalTransportZone)).when(mockReadTx).read(LogicalDatastoreType
.CONFIGURATION,transportZoneIdentifier);
- tepCommandHelper.createLocalCache(dpId1,portName1,vlanId,tepIp1,subnetMask,gwyIp1,transportZone1);
+ try {
+ tepCommandHelper.createLocalCache(dpId1,portName1,vlanId,tepIp1,subnetMask,gwyIp1,transportZone1, null);
+ } catch (TepException e) {
+ LOG.error(e.getMessage());
+ }
tepCommandHelper.buildTeps();
verify(mockReadTx, times(2)).read(LogicalDatastoreType.CONFIGURATION,transportZoneIdentifier);
@Test
- public void testBuildTepsTransportZoneAbsent(){
+ public void testBuildTepsTransportZoneAbsent() throws TepException {
optionalTransportZone = Optional.absent();
doReturn(Futures.immediateCheckedFuture(optionalTransportZone)).when(mockReadTx).read(LogicalDatastoreType
.CONFIGURATION,transportZoneIdentifier);
- tepCommandHelper.createLocalCache(dpId1,portName1,vlanId,tepIp1,subnetMask,gwyIp1,transportZone1);
+ tepCommandHelper.createLocalCache(dpId1,portName1,vlanId,tepIp1,subnetMask,gwyIp1,transportZone1, null);
tepCommandHelper.buildTeps();
verify(mockReadTx, times(2)).read(LogicalDatastoreType.CONFIGURATION,transportZoneIdentifier);
}
@Test
- public void testShowTepsWithTransportZone(){
+ public void testShowTepsWithTransportZone() {
- tepCommandHelper.showTeps(enabled,interval);
+ try {
+ tepCommandHelper.showTeps(enabled, interval, null);
+ } catch (TepException e) {
+ LOG.error(e.getMessage());
+ }
verify(mockReadTx).read(LogicalDatastoreType.CONFIGURATION,transportZonesIdentifier);
}
@Test
- public void testShowTepsWithoutTransportZone(){
+ public void testShowTepsWithoutTransportZone() {
optionalTransportZones = Optional.of(transportZonesNew);
doReturn(Futures.immediateCheckedFuture(optionalTransportZones)).when(mockReadTx).read(LogicalDatastoreType
.CONFIGURATION,transportZonesIdentifier);
- tepCommandHelper.showTeps(enabled,interval);
+ String output = null;
+ try {
+ tepCommandHelper.showTeps(enabled, interval, null);
+ } catch (TepException e) {
+ output = e.getMessage() + newline;
+ }
verify(mockReadTx).read(LogicalDatastoreType.CONFIGURATION,transportZonesIdentifier);
- assertEquals("No teps configured" + newline,outContent.toString());
+ assertEquals("No teps configured" + newline,output);
}
@Test
- public void testDeleteOnCommit(){
+ public void testDeleteOnCommit() {
transportZoneList.add(transportZone);
transportZoneList.add(transportZoneNew);
doReturn(Futures.immediateCheckedFuture(optionalTransportZones)).when(mockReadTx).read(LogicalDatastoreType
.CONFIGURATION,transportZonesIdentifier);
- tepCommandHelper.deleteVtep(dpId1,portName1,vlanId,tepIp1,subnetMask,gwyIp1,transportZone1);
+ try {
+ tepCommandHelper.deleteVtep(dpId1, portName1, vlanId, tepIp1, subnetMask, gwyIp1, transportZone1, null);
+ } catch (TepException e) {
+ LOG.error(e.getMessage());
+ }
tepCommandHelper.deleteOnCommit();
verify(mockReadTx).read(LogicalDatastoreType.CONFIGURATION,transportZonesIdentifier);
}
@Test
- public void testShowStateTunnelTypeVxlan(){
-
- tepCommandHelper.showState(tunnelList,enabled);
-
- verify(mockReadTx).read(LogicalDatastoreType.OPERATIONAL,interfaceIdentifier);
- verify(mockReadTx).read(LogicalDatastoreType.CONFIGURATION,interfaceIdentifierNew);
-
- }
-
- @Test
- public void testShowStateTunnelTypeGre(){
-
- Optional<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface>
- ifStateOptionalNew = Optional.of(interfaceTestNewCase);
-
- doReturn(Futures.immediateCheckedFuture(ifStateOptionalNew)).when(mockReadTx).read(LogicalDatastoreType
- .CONFIGURATION,interfaceIdentifierNew);
-
- tepCommandHelper.showState(tunnelList,enabled);
-
- verify(mockReadTx).read(LogicalDatastoreType.OPERATIONAL,interfaceIdentifier);
- verify(mockReadTx).read(LogicalDatastoreType.CONFIGURATION,interfaceIdentifierNew);
-
- }
-
- @Test
- public void testShowStateTunnelAbsent(){
-
- tepCommandHelper.showState(tunnelListTest, enabled);
-
- assertEquals("No Internal Tunnels Exist" + newline,outContent.toString());
-
- }
-
- @Test
- public void testGetTransportZone(){
+ public void testGetTransportZone() {
tepCommandHelper.getTransportZone(transportZone1);
}
@Test
- public void testIsInCache(){
+ public void testIsInCache() {
- tepCommandHelper.createLocalCache(dpId1,portName1,vlanId,tepIp1,subnetMask,gwyIp1,transportZone1);
- tepCommandHelper.isInCache(dpId1,portName1,vlanId,tepIp1,subnetMask,gwyIp1,transportZone1);
+ try {
+ tepCommandHelper.createLocalCache(dpId1,portName1,vlanId,tepIp1,subnetMask,gwyIp1,transportZone1, null);
+ } catch (TepException e) {
+ LOG.error(e.getMessage());
+ }
+ tepCommandHelper.isInCache(dpId1,portName1,vlanId,tepIp1,subnetMask,gwyIp1,transportZone1, null);
verify(mockReadTx).read(LogicalDatastoreType.CONFIGURATION,transportZoneIdentifier);
}
@Test
- public void testValidateForDuplicates(){
+ public void testValidateForDuplicates() {
- tepCommandHelper.createLocalCache(dpId1,portName1,vlanId,tepIp1,subnetMask,gwyIp1,transportZone1);
+ try {
+ tepCommandHelper.createLocalCache(dpId1,portName1,vlanId,tepIp1,subnetMask,gwyIp1,transportZone1, null);
+ } catch (TepException e) {
+ LOG.error(e.getMessage());
+ }
tepCommandHelper.validateForDuplicates(vtepsTest,transportZone1);
verify(mockReadTx, times(2)).read(LogicalDatastoreType.CONFIGURATION,transportZonesIdentifier);
}
@Test
- public void testCheckTepPerTzPerDpn(){
+ public void testCheckTepPerTzPerDpn() {
- tepCommandHelper.createLocalCache(dpId1,portName1,vlanId,tepIp1,subnetMask,gwyIp1,transportZone1);
+ try {
+ tepCommandHelper.createLocalCache(dpId1,portName1,vlanId,tepIp1,subnetMask,gwyIp1,transportZone1, null);
+ } catch (TepException e) {
+ LOG.error(e.getMessage());
+ }
tepCommandHelper.checkTepPerTzPerDpn(transportZone1,dpId2);
verify(mockReadTx, times(2)).read(LogicalDatastoreType.CONFIGURATION,transportZoneIdentifier);