X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=interfacemgr%2Finterfacemgr-impl%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fvpnservice%2Finterfacemgr%2Ftest%2FStateInterfaceTest.java;h=1092f7edf72d821e971fb10fdd3ab59db5596b74;hb=c2382c2e8bd50b28003d41bcf1f5129273379f53;hp=4b626cf648f45fe356e7f2bc6494588839514947;hpb=3f9f247593ba113848b29ad81d1a07c5f63e0d26;p=vpnservice.git diff --git a/interfacemgr/interfacemgr-impl/src/test/java/org/opendaylight/vpnservice/interfacemgr/test/StateInterfaceTest.java b/interfacemgr/interfacemgr-impl/src/test/java/org/opendaylight/vpnservice/interfacemgr/test/StateInterfaceTest.java index 4b626cf6..1092f7ed 100644 --- a/interfacemgr/interfacemgr-impl/src/test/java/org/opendaylight/vpnservice/interfacemgr/test/StateInterfaceTest.java +++ b/interfacemgr/interfacemgr-impl/src/test/java/org/opendaylight/vpnservice/interfacemgr/test/StateInterfaceTest.java @@ -48,6 +48,10 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.interfacemgr.met import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.interfacemgr.meta.rev151007._interface.child.info.InterfaceParentEntryBuilder; 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.rev150331.IfTunnel; +import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.interfacemgr.rev150331.TunnelTypeGre; +import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.interfacemgr.rev150331.TunnelTypeVxlan; import org.opendaylight.yangtools.concepts.ListenerRegistration; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.common.RpcResult; @@ -70,15 +74,23 @@ public class StateInterfaceTest { FlowCapableNodeConnector fcNodeConnectorNew = null; Interface vlanInterfaceEnabled = null; Interface vlanInterfaceDisabled = null; + Interface tunnelInterfaceEnabled; + Interface childVlanInterfaceEnabled = null; InterfaceParentEntryKey interfaceParentEntryKey = null; + InterfaceParentEntryKey higherLayerInterfaceParentEntryKey = null; IfIndexInterface IfindexInterface = null; InstanceIdentifier interfaceInstanceIdentifier = null; + InstanceIdentifier childInterfaceInstanceIdentifier= null; + InstanceIdentifier interfaceParentEntryInstanceIdentifier = null; InstanceIdentifier fcNodeConnectorId = null; InstanceIdentifier ifIndexId =null; InstanceIdentifier interfaceStateIdentifier = null; + InstanceIdentifier childInterfaceStateIdentifier = null; InstanceIdentifier interfaceParentEntryIdentifier = null; + InstanceIdentifier higherLevelInterfaceParentEntryIdentifier = null; org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface stateInterface; InterfaceParentEntry interfaceParentEntry; + InterfaceParentEntry higherLayerInterfaceParentEntry; @Mock DataBroker dataBroker; @Mock IdManagerService idManager; @@ -111,26 +123,37 @@ public class StateInterfaceTest { IfindexInterface = InterfaceManagerTestUtil.buildIfIndexInterface(100, InterfaceManagerTestUtil.interfaceName); ifIndexId = InstanceIdentifier.builder(IfIndexesInterfaceMap.class).child(IfIndexInterface.class, new IfIndexInterfaceKey(100)).build(); interfaceInstanceIdentifier = InterfaceManagerCommonUtils.getInterfaceIdentifier(new InterfaceKey(InterfaceManagerTestUtil.interfaceName)); + childInterfaceInstanceIdentifier = InterfaceManagerCommonUtils.getInterfaceIdentifier(new InterfaceKey(InterfaceManagerTestUtil.interfaceName2)); interfaceStateIdentifier = IfmUtil.buildStateInterfaceId(InterfaceManagerTestUtil.interfaceName); + childInterfaceStateIdentifier = IfmUtil.buildStateInterfaceId(InterfaceManagerTestUtil.interfaceName2); vlanInterfaceEnabled = InterfaceManagerTestUtil.buildInterface(InterfaceManagerTestUtil.interfaceName, "Test Vlan Interface1", true, L2vlan.class, BigInteger.valueOf(1)); vlanInterfaceDisabled = InterfaceManagerTestUtil.buildInterface(InterfaceManagerTestUtil.interfaceName, "Test Vlan Interface1", false, L2vlan.class, BigInteger.valueOf(1)); + tunnelInterfaceEnabled = InterfaceManagerTestUtil.buildTunnelInterface(dpId, InterfaceManagerTestUtil.tunnelInterfaceName ,"Test Tunnel Interface", true, TunnelTypeGre.class, "192.168.56.101", "192.168.56.102"); + childVlanInterfaceEnabled = InterfaceManagerTestUtil.buildInterface(InterfaceManagerTestUtil.interfaceName2, "Test Vlan Interface2", true, L2vlan.class, BigInteger.valueOf(1)); interfaceParentEntryKey = new InterfaceParentEntryKey(InterfaceManagerTestUtil.interfaceName); interfaceParentEntryIdentifier = InterfaceMetaUtils.getInterfaceParentEntryIdentifier(interfaceParentEntryKey); + higherLayerInterfaceParentEntryKey = new InterfaceParentEntryKey(InterfaceManagerTestUtil.interfaceName2); + higherLevelInterfaceParentEntryIdentifier= InterfaceMetaUtils.getInterfaceParentEntryIdentifier(higherLayerInterfaceParentEntryKey); 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(); List lowerLayerIfList = new ArrayList<>(); lowerLayerIfList.add(nodeConnectorId.getValue()); ifaceBuilder.setOperStatus(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); + .setLowerLayerIf(lowerLayerIfList).setType(L2vlan.class); ifaceBuilder.setKey(IfmUtil.getStateInterfaceKeyFromName(InterfaceManagerTestUtil.interfaceName)); stateInterface = ifaceBuilder.build(); InterfaceParentEntryBuilder ifaceParentEntryBuilder = new InterfaceParentEntryBuilder(); List ifaceChildEntryList= new ArrayList<>(); + ifaceChildEntryList.add(new InterfaceChildEntryBuilder().setChildInterface(InterfaceManagerTestUtil.interfaceName2).build()); interfaceParentEntry = ifaceParentEntryBuilder.setInterfaceChildEntry(ifaceChildEntryList).build(); + InterfaceParentEntryBuilder higherLayerIfParentEntryBuilder = new InterfaceParentEntryBuilder(); + List ifaceChildEntryListForHigherParent= new ArrayList<>(); + higherLayerInterfaceParentEntry = higherLayerIfParentEntryBuilder.setInterfaceChildEntry(ifaceChildEntryListForHigherParent).build(); + when(dataBroker.newReadOnlyTransaction()).thenReturn(mockReadTx); when(dataBroker.newWriteOnlyTransaction()).thenReturn(mockWriteTx); } @@ -139,15 +162,31 @@ public class StateInterfaceTest { public void testAddStateInterface() { Optional expectedInterface = Optional.of(vlanInterfaceEnabled); AllocateIdOutput expectedId = new AllocateIdOutputBuilder().setIdValue(Long.valueOf("100")).build(); + AllocateIdOutput expectedId2 = new AllocateIdOutputBuilder().setIdValue(Long.valueOf("200")).build(); + OptionalexpectedParentEntry = Optional.of(interfaceParentEntry); + Optional higherLayerParentOptional = Optional.of(higherLayerInterfaceParentEntry); + Optional expectedChildInterface = Optional.of(childVlanInterfaceEnabled); Future> idOutputOptional = RpcResultBuilder.success(expectedId).buildFuture(); + Future> idOutputOptional2 = RpcResultBuilder.success(expectedId).buildFuture(); doReturn(Futures.immediateCheckedFuture(expectedInterface)).when(mockReadTx).read( LogicalDatastoreType.CONFIGURATION, interfaceInstanceIdentifier); + doReturn(Futures.immediateCheckedFuture(expectedParentEntry)).when(mockReadTx).read( + LogicalDatastoreType.CONFIGURATION, interfaceParentEntryIdentifier); + doReturn(Futures.immediateCheckedFuture(higherLayerParentOptional)).when(mockReadTx).read( + LogicalDatastoreType.CONFIGURATION, higherLevelInterfaceParentEntryIdentifier); + doReturn(Futures.immediateCheckedFuture(expectedChildInterface)).when(mockReadTx).read( + LogicalDatastoreType.CONFIGURATION, childInterfaceInstanceIdentifier); + AllocateIdInput getIdInput = new AllocateIdInputBuilder() .setPoolName(IfmConstants.IFM_IDPOOL_NAME) .setIdKey(InterfaceManagerTestUtil.interfaceName).build(); doReturn(idOutputOptional).when(idManager).allocateId(getIdInput); + AllocateIdInput getIdInput2 = new AllocateIdInputBuilder() + .setPoolName(IfmConstants.IFM_IDPOOL_NAME) + .setIdKey(InterfaceManagerTestUtil.interfaceName2).build(); + doReturn(idOutputOptional2).when(idManager).allocateId(getIdInput2); addHelper.addState(dataBroker, idManager, mdsalManager, alivenessMonitorService, nodeConnectorId, InterfaceManagerTestUtil.interfaceName, fcNodeConnectorNew); @@ -156,17 +195,48 @@ public class StateInterfaceTest { verify(mockWriteTx).put(LogicalDatastoreType.OPERATIONAL, interfaceStateIdentifier, stateInterface,true); } + + @Test + public void testAddStateTunnelInterface() { + + Optional expectedInterface = Optional.of(tunnelInterfaceEnabled); + AllocateIdOutput expectedId = new AllocateIdOutputBuilder().setIdValue(Long.valueOf("100")).build(); + + Future> idOutputOptional = RpcResultBuilder.success(expectedId).buildFuture(); + + doReturn(Futures.immediateCheckedFuture(expectedInterface)).when(mockReadTx).read( + LogicalDatastoreType.CONFIGURATION, interfaceInstanceIdentifier); + + AllocateIdInput getIdInput = new AllocateIdInputBuilder() + .setPoolName(IfmConstants.IFM_IDPOOL_NAME) + .setIdKey(InterfaceManagerTestUtil.interfaceName).build(); + doReturn(idOutputOptional).when(idManager).allocateId(getIdInput); + + addHelper.addState(dataBroker, idManager, mdsalManager, alivenessMonitorService, + nodeConnectorId, InterfaceManagerTestUtil.interfaceName, fcNodeConnectorNew); + } + @Test public void testDeleteStateInterface() { Optional expectedStateInterface = Optional.of(stateInterface); Optional expectedIfindexInterface = Optional.of(IfindexInterface); + Optional expectedInterface = Optional.of(vlanInterfaceEnabled); + OptionalexpectedParentEntry = Optional.of(interfaceParentEntry); + Optional higherLayerParentOptional = Optional.of(higherLayerInterfaceParentEntry); + doReturn(Futures.immediateCheckedFuture(expectedIfindexInterface)).when(mockReadTx).read( LogicalDatastoreType.OPERATIONAL, ifIndexId); doReturn(Futures.immediateCheckedFuture(expectedStateInterface)).when(mockReadTx).read( LogicalDatastoreType.OPERATIONAL, interfaceStateIdentifier); - doReturn(Futures.immediateCheckedFuture(Optional.absent())).when(mockReadTx).read( + doReturn(Futures.immediateCheckedFuture(expectedStateInterface)).when(mockReadTx).read( + LogicalDatastoreType.OPERATIONAL, childInterfaceStateIdentifier); + doReturn(Futures.immediateCheckedFuture(expectedInterface)).when(mockReadTx).read( LogicalDatastoreType.CONFIGURATION, interfaceInstanceIdentifier); + doReturn(Futures.immediateCheckedFuture(expectedParentEntry)).when(mockReadTx).read( + LogicalDatastoreType.CONFIGURATION, interfaceParentEntryIdentifier); + doReturn(Futures.immediateCheckedFuture(higherLayerParentOptional)).when(mockReadTx).read( + LogicalDatastoreType.CONFIGURATION, higherLevelInterfaceParentEntryIdentifier); ReleaseIdInput getIdInput = new ReleaseIdInputBuilder() .setPoolName(IfmConstants.IFM_IDPOOL_NAME) @@ -177,32 +247,57 @@ public class StateInterfaceTest { removeHelper.removeState(idManager, mdsalManager, alivenessMonitorService, fcNodeConnectorId, dataBroker, InterfaceManagerTestUtil.interfaceName, fcNodeConnectorNew); verify(mockWriteTx).delete(LogicalDatastoreType.OPERATIONAL, interfaceStateIdentifier); - verify(mockWriteTx).delete(LogicalDatastoreType.OPERATIONAL, ifIndexId); } + + @Test + public void testDeleteStateTunnelInterface() { + Optional + expectedStateInterface = Optional.of(stateInterface); + Optional expectedInterface = Optional.of(tunnelInterfaceEnabled); + + doReturn(Futures.immediateCheckedFuture(expectedStateInterface)).when(mockReadTx).read( + LogicalDatastoreType.OPERATIONAL, interfaceStateIdentifier); + doReturn(Futures.immediateCheckedFuture(expectedInterface)).when(mockReadTx).read( + LogicalDatastoreType.CONFIGURATION, interfaceInstanceIdentifier); + + removeHelper.removeState(idManager, mdsalManager, alivenessMonitorService, fcNodeConnectorId, dataBroker, InterfaceManagerTestUtil.interfaceName, fcNodeConnectorNew); + + } + @Test public void testUpdateStateInterface(){ Optional expectedStateInterface = Optional.of(stateInterface); OptionalexpectedParentEntry = Optional.of(interfaceParentEntry); + Optional expectedInterface = Optional.of(vlanInterfaceEnabled); + Optional expectedChildInterface = Optional.of(childVlanInterfaceEnabled); + Optional higherLayerParentOptional = Optional.of(higherLayerInterfaceParentEntry); doReturn(Futures.immediateCheckedFuture(expectedStateInterface)).when(mockReadTx).read( LogicalDatastoreType.OPERATIONAL, interfaceStateIdentifier); doReturn(Futures.immediateCheckedFuture(expectedParentEntry)).when(mockReadTx).read( LogicalDatastoreType.CONFIGURATION, interfaceParentEntryIdentifier); + doReturn(Futures.immediateCheckedFuture(higherLayerParentOptional)).when(mockReadTx).read( + LogicalDatastoreType.CONFIGURATION, higherLevelInterfaceParentEntryIdentifier); + doReturn(Futures.immediateCheckedFuture(expectedInterface)).when(mockReadTx).read( + LogicalDatastoreType.CONFIGURATION, interfaceInstanceIdentifier); + doReturn(Futures.immediateCheckedFuture(expectedChildInterface)).when(mockReadTx).read( + LogicalDatastoreType.CONFIGURATION, childInterfaceInstanceIdentifier); 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.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")); ifaceBuilder.setKey(IfmUtil.getStateInterfaceKeyFromName(InterfaceManagerTestUtil.interfaceName)); + ifaceBuilder.setOperStatus(OperStatus.Down); stateInterface = ifaceBuilder.build(); FlowCapableNodeConnectorBuilder fcNodeConnectorOldupdate = new FlowCapableNodeConnectorBuilder().setHardwareAddress(MacAddress.getDefaultInstance("AA:AA:AA:AA:AA:AB")); FlowCapableNodeConnectorBuilder fcNodeConnectorNewupdate = new FlowCapableNodeConnectorBuilder().setHardwareAddress(MacAddress.getDefaultInstance("AA:AA:AA:AA:AA:AA")); - StateBuilder b2 = new StateBuilder().setBlocked(true).setLinkDown(true); + StateBuilder b2 = new StateBuilder().setBlocked(true).setLinkDown(false); StateBuilder b3 = new StateBuilder().setBlocked(false).setLinkDown(true); fcNodeConnectorOldupdate.setState(b2.build()); @@ -211,5 +306,6 @@ public class StateInterfaceTest { updateHelper.updateState(fcNodeConnectorId, alivenessMonitorService, dataBroker, InterfaceManagerTestUtil.interfaceName, fcNodeConnectorNewupdate.build(), fcNodeConnectorOldupdate.build()); verify(mockWriteTx).merge(LogicalDatastoreType.OPERATIONAL,interfaceStateIdentifier,stateInterface); + verify(mockWriteTx).merge(LogicalDatastoreType.OPERATIONAL,childInterfaceStateIdentifier,stateInterface); } } \ No newline at end of file