X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=interfacemgr%2Finterfacemgr-impl%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fvpnservice%2Finterfacemgr%2Ftest%2FTunnelInterfaceConfigurationTest.java;h=172d1935810543acbf5688deaefc1ad1cf0bbdd3;hb=9c0e16907ffb4d6c79ea397885f9dfed738dc848;hp=24fa511b148224ad6523b29f9621bdef20e16523;hpb=b85d01b8ab1f2fb41b1515da53f1be1472b14335;p=vpnservice.git diff --git a/interfacemgr/interfacemgr-impl/src/test/java/org/opendaylight/vpnservice/interfacemgr/test/TunnelInterfaceConfigurationTest.java b/interfacemgr/interfacemgr-impl/src/test/java/org/opendaylight/vpnservice/interfacemgr/test/TunnelInterfaceConfigurationTest.java index 24fa511b..172d1935 100644 --- a/interfacemgr/interfacemgr-impl/src/test/java/org/opendaylight/vpnservice/interfacemgr/test/TunnelInterfaceConfigurationTest.java +++ b/interfacemgr/interfacemgr-impl/src/test/java/org/opendaylight/vpnservice/interfacemgr/test/TunnelInterfaceConfigurationTest.java @@ -21,18 +21,21 @@ 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.DataChangeScope; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; -import org.opendaylight.idmanager.IdManager; import org.opendaylight.vpnservice.interfacemgr.IfmUtil; import org.opendaylight.vpnservice.interfacemgr.commons.InterfaceMetaUtils; import org.opendaylight.vpnservice.interfacemgr.renderer.ovs.confighelpers.OvsInterfaceConfigAddHelper; import org.opendaylight.vpnservice.interfacemgr.renderer.ovs.confighelpers.OvsInterfaceConfigRemoveHelper; +import org.opendaylight.vpnservice.interfacemgr.renderer.ovs.confighelpers.OvsInterfaceConfigUpdateHelper; +import org.opendaylight.vpnservice.mdsalutil.interfaces.IMdsalApiManager; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface.OperStatus; +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.inventory.rev130819.NodeConnectorId; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnector; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeGre; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbBridgeAugmentation; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbBridgeRef; +import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.alivenessmonitor.rev150629.AlivenessMonitorService; import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.idmanager.rev150403.IdManagerService; import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.interfacemgr.meta.rev151007.bridge._interface.info.BridgeEntry; import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.interfacemgr.meta.rev151007.bridge._interface.info.BridgeEntryKey; @@ -84,12 +87,15 @@ public class TunnelInterfaceConfigurationTest { @Mock DataBroker dataBroker; @Mock IdManagerService idManager; + @Mock AlivenessMonitorService alivenessMonitorService; @Mock ListenerRegistration dataChangeListenerRegistration; @Mock ReadOnlyTransaction mockReadTx; @Mock WriteTransaction mockWriteTx; - + @Mock + IMdsalApiManager mdsalApiManager; OvsInterfaceConfigAddHelper addHelper; OvsInterfaceConfigRemoveHelper removeHelper; + OvsInterfaceConfigUpdateHelper updateHelper; @Before public void setUp() throws Exception { @@ -156,7 +162,8 @@ public class TunnelInterfaceConfigurationTest { doReturn(Futures.immediateCheckedFuture(Optional.absent())).when(mockReadTx).read( LogicalDatastoreType.OPERATIONAL, dpnBridgeEntryIid); - addHelper.addConfiguration(dataBroker, parentRefs, tunnelInterfaceEnabled, idManager); + addHelper.addConfiguration(dataBroker, parentRefs, tunnelInterfaceEnabled, idManager, + alivenessMonitorService, mdsalApiManager); //Add some verifications verify(mockWriteTx).put(LogicalDatastoreType.CONFIGURATION, bridgeInterfaceEntryInstanceIdentifier, bridgeInterfaceEntry, true); @@ -166,13 +173,15 @@ public class TunnelInterfaceConfigurationTest { public void testAddGreInterfaceWhenSwitchIsConnected() { Optional expectedBridgeRefEntry = Optional.of(bridgeRefEntry); Optional expectedOvsdbBridgeAugmentation = Optional.of(ovsdbBridgeAugmentation); - + doReturn(Futures.immediateCheckedFuture(Optional.absent())).when(mockReadTx).read( + LogicalDatastoreType.OPERATIONAL, interfaceStateIdentifier); doReturn(Futures.immediateCheckedFuture(expectedBridgeRefEntry)).when(mockReadTx).read( LogicalDatastoreType.OPERATIONAL, dpnBridgeEntryIid); doReturn(Futures.immediateCheckedFuture(expectedOvsdbBridgeAugmentation)).when(mockReadTx).read( LogicalDatastoreType.OPERATIONAL, ovsdbBridgeAugmentationInstanceIdentifier); - addHelper.addConfiguration(dataBroker, parentRefs, tunnelInterfaceEnabled, idManager); + addHelper.addConfiguration(dataBroker, parentRefs, tunnelInterfaceEnabled, idManager, + alivenessMonitorService, mdsalApiManager); //Add some verifications verify(mockWriteTx).put(LogicalDatastoreType.CONFIGURATION, bridgeInterfaceEntryInstanceIdentifier , @@ -186,20 +195,66 @@ public class TunnelInterfaceConfigurationTest { public void testDeleteGreInterfaceWhenSwitchIsConnected() { Optional expectedBridgeRefEntry = Optional.of(bridgeRefEntry); Optional expectedBridgeEntry = Optional.of(bridgeEntry); + Optional expectedInterfaceState = Optional.of(stateInterface); doReturn(Futures.immediateCheckedFuture(expectedBridgeRefEntry)).when(mockReadTx).read( LogicalDatastoreType.OPERATIONAL, dpnBridgeEntryIid); doReturn(Futures.immediateCheckedFuture(expectedBridgeEntry)).when(mockReadTx).read( LogicalDatastoreType.CONFIGURATION, bridgeEntryIid); + doReturn(Futures.immediateCheckedFuture(expectedInterfaceState)).when(mockReadTx).read( + LogicalDatastoreType.OPERATIONAL, interfaceStateIdentifier); org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.InterfaceBuilder ifaceBuilder = new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.InterfaceBuilder(); ifaceBuilder.setOperStatus(OperStatus.Down); ifaceBuilder.setKey(IfmUtil.getStateInterfaceKeyFromName(tunnelInterfaceEnabled.getName())); stateInterface = ifaceBuilder.build(); - removeHelper.removeConfiguration(dataBroker, tunnelInterfaceEnabled, idManager, parentRefs); + removeHelper.removeConfiguration(dataBroker, alivenessMonitorService, tunnelInterfaceEnabled, idManager, + mdsalApiManager, parentRefs); //Add some verifications verify(mockWriteTx).delete(LogicalDatastoreType.CONFIGURATION, bridgeEntryIid); verify(mockWriteTx).delete(LogicalDatastoreType.CONFIGURATION, terminationPointInstanceIdentifier); } + + + @Test + public void testUpdateAdminStateForGreInterface() { + Optional + expectedStateInterface = Optional.of(stateInterface); + doReturn(Futures.immediateCheckedFuture(expectedStateInterface)).when(mockReadTx).read( + LogicalDatastoreType.OPERATIONAL, interfaceStateIdentifier); + + updateHelper.updateConfiguration(dataBroker, alivenessMonitorService, idManager, mdsalApiManager, + tunnelInterfaceDisabled,tunnelInterfaceEnabled); + + //verify whether operational data store is updated with the new oper state. + InterfaceBuilder ifaceBuilder = new InterfaceBuilder(); + ifaceBuilder.setOperStatus(OperStatus.Down); + ifaceBuilder.setKey(IfmUtil.getStateInterfaceKeyFromName(stateInterface.getName())); + + verify(mockWriteTx).merge(LogicalDatastoreType.OPERATIONAL, interfaceStateIdentifier, + ifaceBuilder.build()); + } + @Test + public void testEnableAdminStateForGreInterface() { + Optional + expectedStateInterface = Optional.of(stateInterface); + OptionalexpectedNodeConnector = Optional.of(nodeConnector); + + doReturn(Futures.immediateCheckedFuture(expectedNodeConnector)).when(mockReadTx).read( + LogicalDatastoreType.OPERATIONAL, nodeConnectorInstanceIdentifier); + doReturn(Futures.immediateCheckedFuture(expectedStateInterface)).when(mockReadTx).read( + LogicalDatastoreType.OPERATIONAL, interfaceStateIdentifier); + + updateHelper.updateConfiguration(dataBroker, alivenessMonitorService, idManager, mdsalApiManager, + tunnelInterfaceEnabled,tunnelInterfaceDisabled); + + //verify whether operational data store is updated with the new oper state. + InterfaceBuilder ifaceBuilder = new InterfaceBuilder(); + ifaceBuilder.setOperStatus(OperStatus.Down); + ifaceBuilder.setKey(IfmUtil.getStateInterfaceKeyFromName(stateInterface.getName())); + + verify(mockWriteTx).merge(LogicalDatastoreType.OPERATIONAL, interfaceStateIdentifier, + ifaceBuilder.build()); + } }