X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=interfacemgr%2Finterfacemgr-impl%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fvpnservice%2Finterfacemgr%2Ftest%2FVlanInterfaceConfigurationTest.java;h=0f61af1ff96a848cf5983b8233cc91c0faf0c253;hb=6e60a68cb870f5b237ce26a95d1ae78c233b4029;hp=4b7adb0f5bd69e251119bba4abef7042d65d2b8d;hpb=00bba75836165a4ae7a90d8d12ba06512b0d6821;p=vpnservice.git diff --git a/interfacemgr/interfacemgr-impl/src/test/java/org/opendaylight/vpnservice/interfacemgr/test/VlanInterfaceConfigurationTest.java b/interfacemgr/interfacemgr-impl/src/test/java/org/opendaylight/vpnservice/interfacemgr/test/VlanInterfaceConfigurationTest.java index 4b7adb0f..0f61af1f 100644 --- a/interfacemgr/interfacemgr-impl/src/test/java/org/opendaylight/vpnservice/interfacemgr/test/VlanInterfaceConfigurationTest.java +++ b/interfacemgr/interfacemgr-impl/src/test/java/org/opendaylight/vpnservice/interfacemgr/test/VlanInterfaceConfigurationTest.java @@ -13,6 +13,7 @@ import static org.mockito.Mockito.*; import com.google.common.base.Optional; import com.google.common.util.concurrent.Futures; +import com.google.common.util.concurrent.ListenableFuture; import java.math.BigInteger; @@ -31,26 +32,42 @@ import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker.DataCh 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.mdsalutil.interfaces.IMdsalApiManager; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana._if.type.rev140508.L2vlan; 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.opendaylight.inventory.rev130819.NodeConnectorId; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnector; +import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.alivenessmonitor.rev150629.AlivenessMonitorService; +import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.idmanager.rev150403.AllocateIdInput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.idmanager.rev150403.AllocateIdOutput; +import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.idmanager.rev150403.AllocateIdOutputBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.interfacemgr.meta.rev151007._interface.child.info.InterfaceParentEntry; +import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.interfacemgr.meta.rev151007._interface.child.info.InterfaceParentEntryKey; +import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.interfacemgr.meta.rev151007._interface.child.info._interface.parent.entry.InterfaceChildEntry; +import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.interfacemgr.meta.rev151007._interface.child.info._interface.parent.entry.InterfaceChildEntryBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.interfacemgr.meta.rev151007._interface.child.info._interface.parent.entry.InterfaceChildEntryKey; +import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.interfacemgr.rev150331.ParentRefs; import org.opendaylight.yangtools.concepts.ListenerRegistration; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.yang.common.RpcResult; +import org.opendaylight.yangtools.yang.common.RpcResultBuilder; @RunWith(MockitoJUnitRunner.class) public class VlanInterfaceConfigurationTest { @Mock DataBroker dataBroker; + @Mock + AlivenessMonitorService alivenessMonitorService; @Mock IdManager idManager; @Mock ListenerRegistration dataChangeListenerRegistration; @Mock ReadOnlyTransaction mockReadTx; @Mock WriteTransaction mockWriteTx; - + @Mock IMdsalApiManager mdsalApiManager; OvsInterfaceConfigAddHelper addHelper; OvsInterfaceConfigRemoveHelper removeHelper; @@ -60,6 +77,9 @@ public class VlanInterfaceConfigurationTest { Interface vlanInterfaceDisabled; InstanceIdentifier interfaceInstanceIdentifier; InstanceIdentifier nodeConnectorInstanceIdentifier; + InstanceIdentifier interfaceParentEntryIdentifier = null; + InterfaceChildEntry interfaceChildEntry = null; + InstanceIdentifier interfaceChildEntryInstanceIdentifier; InstanceIdentifier interfaceStateIdentifier; org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface stateInterface; @@ -87,10 +107,21 @@ public class VlanInterfaceConfigurationTest { nodeConnectorInstanceIdentifier = InterfaceManagerTestUtil.getNcIdent("openflow:1", nodeConnectorId); interfaceStateIdentifier = IfmUtil.buildStateInterfaceId(vlanInterfaceEnabled.getName()); stateInterface = InterfaceManagerTestUtil.buildStateInterface(InterfaceManagerTestUtil.interfaceName, nodeConnectorId); - + AllocateIdOutput output = new AllocateIdOutputBuilder().setIdValue((long)1).build(); + RpcResultBuilder allocateIdRpcBuilder = RpcResultBuilder.success(); + allocateIdRpcBuilder.withResult(output); + ListenableFuture> future = Futures.immediateFuture(allocateIdRpcBuilder.build()); + interfaceParentEntryIdentifier = InterfaceMetaUtils.getInterfaceParentEntryIdentifier( + new InterfaceParentEntryKey(InterfaceManagerTestUtil.interfaceName)); + interfaceChildEntryInstanceIdentifier = InterfaceMetaUtils.getInterfaceChildEntryIdentifier(new InterfaceParentEntryKey("s1-eth1"), + new InterfaceChildEntryKey(vlanInterfaceEnabled.getName())); + interfaceChildEntry = new InterfaceChildEntryBuilder().setKey(new InterfaceChildEntryKey(vlanInterfaceEnabled.getName())). + setChildInterface(vlanInterfaceEnabled.getName()).build(); // Setup mocks when(dataBroker.newReadOnlyTransaction()).thenReturn(mockReadTx); when(dataBroker.newWriteOnlyTransaction()).thenReturn(mockWriteTx); + + when(idManager.allocateId(any(AllocateIdInput.class))).thenReturn(future); } @Test @@ -102,8 +133,11 @@ public class VlanInterfaceConfigurationTest { LogicalDatastoreType.CONFIGURATION, interfaceInstanceIdentifier); doReturn(Futures.immediateCheckedFuture(Optional.absent())).when(mockReadTx).read( LogicalDatastoreType.OPERATIONAL, interfaceStateIdentifier); + doReturn(Futures.immediateCheckedFuture(Optional.absent())).when(mockReadTx).read( + LogicalDatastoreType.CONFIGURATION, interfaceParentEntryIdentifier); - addHelper.addConfiguration(dataBroker, null, vlanInterfaceEnabled, idManager); + addHelper.addConfiguration(dataBroker, vlanInterfaceEnabled.getAugmentation(ParentRefs.class), vlanInterfaceEnabled, idManager, + alivenessMonitorService, mdsalApiManager); //Nothing to verify, since when switch is not connected we don't do any datastore operation @@ -112,14 +146,18 @@ public class VlanInterfaceConfigurationTest { @Test public void testAddVlanInterfaceWhenSwitchIsConnected() { Optional expectedInterface = Optional.of(vlanInterfaceEnabled); - Optional expectedStateInterface = Optional.of(stateInterface); + Optional + expectedStateInterface = Optional.of(stateInterface); doReturn(Futures.immediateCheckedFuture(expectedInterface)).when(mockReadTx).read( LogicalDatastoreType.CONFIGURATION, interfaceInstanceIdentifier); doReturn(Futures.immediateCheckedFuture(expectedStateInterface)).when(mockReadTx).read( LogicalDatastoreType.OPERATIONAL, interfaceStateIdentifier); + doReturn(Futures.immediateCheckedFuture(Optional.absent())).when(mockReadTx).read( + LogicalDatastoreType.CONFIGURATION, interfaceParentEntryIdentifier); - addHelper.addConfiguration(dataBroker, null, vlanInterfaceEnabled, idManager); + addHelper.addConfiguration(dataBroker, vlanInterfaceEnabled.getAugmentation(ParentRefs.class), vlanInterfaceEnabled, idManager, + alivenessMonitorService, mdsalApiManager); //Nothing to verify, since when adminstate is enabled and switch opstate is already up, //we don't do any datastore operation @@ -135,16 +173,20 @@ public class VlanInterfaceConfigurationTest { LogicalDatastoreType.CONFIGURATION, interfaceInstanceIdentifier); doReturn(Futures.immediateCheckedFuture(expectedStateInterface)).when(mockReadTx).read( LogicalDatastoreType.OPERATIONAL, interfaceStateIdentifier); + doReturn(Futures.immediateCheckedFuture(Optional.absent())).when(mockReadTx).read( + LogicalDatastoreType.CONFIGURATION, interfaceParentEntryIdentifier); 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(vlanInterfaceEnabled.getName())); + ifaceBuilder.setType(L2vlan.class); stateInterface = ifaceBuilder.build(); - addHelper.addConfiguration(dataBroker, null, vlanInterfaceDisabled, idManager); + addHelper.addConfiguration(dataBroker, vlanInterfaceDisabled.getAugmentation(ParentRefs.class), vlanInterfaceDisabled, idManager, + alivenessMonitorService, mdsalApiManager); //verification - verify(mockWriteTx).merge(LogicalDatastoreType.OPERATIONAL, interfaceStateIdentifier, stateInterface); + verify(mockWriteTx).put(LogicalDatastoreType.CONFIGURATION, interfaceChildEntryInstanceIdentifier, interfaceChildEntry, true); } @Test @@ -158,15 +200,13 @@ public class VlanInterfaceConfigurationTest { LogicalDatastoreType.OPERATIONAL, nodeConnectorInstanceIdentifier); doReturn(Futures.immediateCheckedFuture(expectedStateIf)).when(mockReadTx).read( LogicalDatastoreType.OPERATIONAL, interfaceStateIdentifier); + doReturn(Futures.immediateCheckedFuture(Optional.absent())).when(mockReadTx).read( + LogicalDatastoreType.CONFIGURATION, interfaceParentEntryIdentifier); - 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(vlanInterfaceEnabled.getName())); - stateInterface = ifaceBuilder.build(); - - removeHelper.removeConfiguration(dataBroker, vlanInterfaceEnabled, idManager, null); + removeHelper.removeConfiguration(dataBroker,alivenessMonitorService, vlanInterfaceEnabled, idManager, + mdsalApiManager, vlanInterfaceEnabled.getAugmentation(ParentRefs.class)); //verification - verify(mockWriteTx).merge(LogicalDatastoreType.OPERATIONAL, interfaceStateIdentifier, stateInterface); + verify(mockWriteTx).delete(LogicalDatastoreType.OPERATIONAL, interfaceStateIdentifier); } }