From e7a0775b21c2ea6b7bb8efb63b5384df26e27fbb Mon Sep 17 00:00:00 2001 From: Marek Gradzki Date: Fri, 23 Sep 2016 07:21:11 +0200 Subject: HONEYCOMB-116: utility for stubbing jvpp methods - introduces FutureProducer (inspired by https://gerrit.fd.io/r/#/c/2650/) - updates unit tests for v3po and lisp Change-Id: I56488bb1dcd6fcaf6821a58f99b528677e095662 Signed-off-by: Marek Gradzki --- .../v3po/interfacesstate/AclCustomizerTest.java | 7 ++----- .../v3po/interfacesstate/GreCustomizerTest.java | 10 ++-------- .../interfacesstate/InterfaceCustomizerTest.java | 22 ++++++++++++++------- .../v3po/interfacesstate/L2CustomizerTest.java | 13 +++--------- .../SubInterfaceCustomizerTest.java | 12 ++++++++--- .../v3po/interfacesstate/VxlanCustomizerTest.java | 12 ++--------- .../interfacesstate/VxlanGpeCustomizerTest.java | 12 ++--------- .../ip/Ipv4AddressCustomizerTest.java | 23 ++++------------------ 8 files changed, 39 insertions(+), 72 deletions(-) (limited to 'v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfacesstate') diff --git a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfacesstate/AclCustomizerTest.java b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfacesstate/AclCustomizerTest.java index d7f4cdd8d..b2a76c5c0 100644 --- a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfacesstate/AclCustomizerTest.java +++ b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfacesstate/AclCustomizerTest.java @@ -23,10 +23,9 @@ import static org.mockito.Mockito.verify; import io.fd.honeycomb.translate.spi.read.ReaderCustomizer; import io.fd.honeycomb.translate.v3po.test.ContextTestUtils; -import io.fd.honeycomb.vpp.test.read.ReaderCustomizerTest; import io.fd.honeycomb.translate.v3po.util.NamingContext; import io.fd.honeycomb.translate.v3po.vppclassifier.VppClassifierContextManager; -import java.util.concurrent.CompletableFuture; +import io.fd.honeycomb.vpp.test.read.ReaderCustomizerTest; import org.junit.Test; import org.mockito.Mock; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.InterfacesState; @@ -89,13 +88,11 @@ public class AclCustomizerTest extends ReaderCustomizerTest { final InstanceIdentifier id = getAclId(IF_NAME); final AclBuilder builder = mock(AclBuilder.class); - final CompletableFuture replyFuture = new CompletableFuture<>(); final ClassifyTableByInterfaceReply reply = new ClassifyTableByInterfaceReply(); reply.l2TableId = TABLE_INDEX; reply.ip4TableId = ~0; reply.ip6TableId = ~0; - replyFuture.complete(reply); - doReturn(replyFuture).when(api).classifyTableByInterface(any(ClassifyTableByInterface.class)); + doReturn(future(reply)).when(api).classifyTableByInterface(any(ClassifyTableByInterface.class)); doReturn(TABLE_NAME).when(classifyTableContext).getTableName(TABLE_INDEX, mappingContext); diff --git a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfacesstate/GreCustomizerTest.java b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfacesstate/GreCustomizerTest.java index 9545a926a..0728a5a2a 100644 --- a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfacesstate/GreCustomizerTest.java +++ b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfacesstate/GreCustomizerTest.java @@ -27,13 +27,12 @@ import static org.mockito.Mockito.verifyZeroInteractions; import com.google.common.collect.Lists; import io.fd.honeycomb.translate.spi.read.ReaderCustomizer; import io.fd.honeycomb.translate.v3po.test.ContextTestUtils; -import io.fd.honeycomb.vpp.test.read.ReaderCustomizerTest; import io.fd.honeycomb.translate.v3po.util.NamingContext; +import io.fd.honeycomb.vpp.test.read.ReaderCustomizerTest; import java.net.InetAddress; import java.net.UnknownHostException; import java.util.HashMap; import java.util.Map; -import java.util.concurrent.CompletableFuture; import org.junit.Test; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.InterfacesState; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface; @@ -74,9 +73,6 @@ public class GreCustomizerTest extends ReaderCustomizerTest { map.put(0, v); cache.put(InterfaceCustomizer.DUMPED_IFCS_CONTEXT_KEY, map); - final CompletableFuture greTunnelDetailsReplyDumpCompletionStage = - new CompletableFuture<>(); - final GreTunnelDetailsReplyDump value = new GreTunnelDetailsReplyDump(); final GreTunnelDetails greTunnelDetails = new GreTunnelDetails(); greTunnelDetails.isIpv6 = 0; @@ -84,11 +80,9 @@ public class GreCustomizerTest extends ReaderCustomizerTest { greTunnelDetails.srcAddress = InetAddress.getByName("1.2.3.5").getAddress(); greTunnelDetails.outerFibId = 55; greTunnelDetails.swIfIndex = 0; - value.greTunnelDetails = Lists.newArrayList(greTunnelDetails); - greTunnelDetailsReplyDumpCompletionStage.complete(value); - doReturn(greTunnelDetailsReplyDumpCompletionStage).when(api).greTunnelDump(any(GreTunnelDump.class)); + doReturn(future(value)).when(api).greTunnelDump(any(GreTunnelDump.class)); } @Test diff --git a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfacesstate/InterfaceCustomizerTest.java b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfacesstate/InterfaceCustomizerTest.java index b6ef0ece5..acc407bd3 100644 --- a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfacesstate/InterfaceCustomizerTest.java +++ b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfacesstate/InterfaceCustomizerTest.java @@ -18,18 +18,19 @@ package io.fd.honeycomb.translate.v3po.interfacesstate; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; +import static org.mockito.Matchers.any; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyZeroInteractions; +import static org.mockito.Mockito.when; import io.fd.honeycomb.translate.spi.read.ReaderCustomizer; import io.fd.honeycomb.translate.v3po.DisabledInterfacesManager; import io.fd.honeycomb.translate.v3po.test.ContextTestUtils; -import io.fd.honeycomb.translate.v3po.test.InterfaceTestUtils; -import io.fd.honeycomb.vpp.test.read.ListReaderCustomizerTest; import io.fd.honeycomb.translate.v3po.util.NamingContext; +import io.fd.honeycomb.vpp.test.read.ListReaderCustomizerTest; import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -44,6 +45,7 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces. import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.openvpp.jvpp.VppInvocationException; import org.openvpp.jvpp.core.dto.SwInterfaceDetails; +import org.openvpp.jvpp.core.dto.SwInterfaceDetailsReplyDump; import org.openvpp.jvpp.core.dto.SwInterfaceDump; public class InterfaceCustomizerTest extends @@ -86,6 +88,12 @@ public class InterfaceCustomizerTest extends verify(builder).setInterface(value); } + public void whenSwInterfaceDumpThenReturn(final List interfaceList) { + final SwInterfaceDetailsReplyDump reply = new SwInterfaceDetailsReplyDump(); + reply.swInterfaceDetails = interfaceList; + when(api.swInterfaceDump(any(SwInterfaceDump.class))).thenReturn(future(reply)); + } + private void verifySwInterfaceDumpWasInvoked(final int nameFilterValid, final String ifaceName, final int dumpIfcsInvocationCount) throws VppInvocationException { @@ -114,7 +122,7 @@ public class InterfaceCustomizerTest extends iface.l2AddressLength = 6; iface.l2Address = new byte[iface.l2AddressLength]; final List interfaceList = Collections.singletonList(iface); - InterfaceTestUtils.whenSwInterfaceDumpThenReturn(api, interfaceList); + whenSwInterfaceDumpThenReturn(interfaceList); getCustomizer().readCurrentAttributes(id, builder, ctx); @@ -129,7 +137,7 @@ public class InterfaceCustomizerTest extends .child(Interface.class, new InterfaceKey(ifaceName)); final InterfaceBuilder builder = getCustomizer().getBuilder(id); - InterfaceTestUtils.whenSwInterfaceDumpThenReturn(api, Collections.emptyList()); + whenSwInterfaceDumpThenReturn(Collections.emptyList()); try { getCustomizer().readCurrentAttributes(id, builder, ctx); @@ -153,7 +161,7 @@ public class InterfaceCustomizerTest extends iface.supSwIfIndex = 1; iface.subId = 1; final List interfaceList = Collections.singletonList(iface); - InterfaceTestUtils.whenSwInterfaceDumpThenReturn(api, interfaceList); + whenSwInterfaceDumpThenReturn(interfaceList); getCustomizer().readCurrentAttributes(id, builder, ctx); @@ -177,7 +185,7 @@ public class InterfaceCustomizerTest extends swSubIf1.subId = 1; swSubIf1.supSwIfIndex = 1; swSubIf1.interfaceName = SUB_IFACE_NAME.getBytes(); - InterfaceTestUtils.whenSwInterfaceDumpThenReturn(api, Arrays.asList(swIf0, swIf1, swSubIf1)); + whenSwInterfaceDumpThenReturn(Arrays.asList(swIf0, swIf1, swSubIf1)); final List expectedIds = Arrays.asList(new InterfaceKey(IFACE0_NAME), new InterfaceKey( IFACE1_NAME)); @@ -202,7 +210,7 @@ public class InterfaceCustomizerTest extends final SwInterfaceDetails swIf1 = new SwInterfaceDetails(); swIf1.swIfIndex = 1; swIf1.interfaceName = IFACE1_NAME.getBytes(); - InterfaceTestUtils.whenSwInterfaceDumpThenReturn(api, Arrays.asList(swIf0, swIf1)); + whenSwInterfaceDumpThenReturn(Arrays.asList(swIf0, swIf1)); final List expectedIds = Arrays.asList(new InterfaceKey(IFACE0_NAME)); final List actualIds = getCustomizer().getAllIds(id, ctx); diff --git a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfacesstate/L2CustomizerTest.java b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfacesstate/L2CustomizerTest.java index 729a13ef4..29f0d0eb7 100644 --- a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfacesstate/L2CustomizerTest.java +++ b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfacesstate/L2CustomizerTest.java @@ -23,14 +23,12 @@ import static org.mockito.Mockito.when; import io.fd.honeycomb.translate.spi.read.ReaderCustomizer; import io.fd.honeycomb.translate.v3po.test.ContextTestUtils; -import io.fd.honeycomb.vpp.test.read.ReaderCustomizerTest; import io.fd.honeycomb.translate.v3po.util.NamingContext; +import io.fd.honeycomb.vpp.test.read.ReaderCustomizerTest; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.ExecutionException; import org.junit.Test; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.InterfacesState; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface; @@ -42,7 +40,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev150105.l2.base.attributes.Interconnection; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev150105.l2.base.attributes.interconnection.BridgeBasedBuilder; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import org.openvpp.jvpp.VppInvocationException; import org.openvpp.jvpp.core.dto.BridgeDomainDetails; import org.openvpp.jvpp.core.dto.BridgeDomainDetailsReplyDump; import org.openvpp.jvpp.core.dto.BridgeDomainDump; @@ -86,15 +83,11 @@ public class L2CustomizerTest extends ReaderCustomizerTest { } private void whenBridgeDomainSwIfDumpThenReturn(final List bdSwIfList, - final List bridgeDomainDetailses) - throws ExecutionException, InterruptedException, VppInvocationException { + final List bridgeDomainDetailses) { final BridgeDomainDetailsReplyDump reply = new BridgeDomainDetailsReplyDump(); reply.bridgeDomainSwIfDetails = bdSwIfList; reply.bridgeDomainDetails = bridgeDomainDetailses; - - final CompletableFuture replyFuture = new CompletableFuture<>(); - replyFuture.complete(reply); - when(api.bridgeDomainSwIfDump(any(BridgeDomainDump.class))).thenReturn(replyFuture); + when(api.bridgeDomainSwIfDump(any(BridgeDomainDump.class))).thenReturn(future(reply)); } diff --git a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfacesstate/SubInterfaceCustomizerTest.java b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfacesstate/SubInterfaceCustomizerTest.java index ec1baebe2..0d0a2cc83 100644 --- a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfacesstate/SubInterfaceCustomizerTest.java +++ b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfacesstate/SubInterfaceCustomizerTest.java @@ -18,15 +18,16 @@ package io.fd.honeycomb.translate.v3po.interfacesstate; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; +import static org.mockito.Matchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; import io.fd.honeycomb.translate.read.ReadFailedException; import io.fd.honeycomb.translate.spi.read.ReaderCustomizer; import io.fd.honeycomb.translate.v3po.test.ContextTestUtils; -import io.fd.honeycomb.translate.v3po.test.InterfaceTestUtils; -import io.fd.honeycomb.vpp.test.read.ListReaderCustomizerTest; import io.fd.honeycomb.translate.v3po.util.NamingContext; +import io.fd.honeycomb.vpp.test.read.ListReaderCustomizerTest; import java.util.Collections; import java.util.HashMap; import java.util.List; @@ -47,6 +48,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.vlan import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.vlan.rev150527.sub._interface.base.attributes.Tags; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.openvpp.jvpp.core.dto.SwInterfaceDetails; +import org.openvpp.jvpp.core.dto.SwInterfaceDetailsReplyDump; +import org.openvpp.jvpp.core.dto.SwInterfaceDump; public class SubInterfaceCustomizerTest extends ListReaderCustomizerTest { @@ -130,7 +133,10 @@ public class SubInterfaceCustomizerTest extends iface.subId = VLAN_IF_ID; iface.supSwIfIndex = SUPER_IF_INDEX; final List ifaces = Collections.singletonList(iface); - InterfaceTestUtils.whenSwInterfaceDumpThenReturn(api, ifaces); + + final SwInterfaceDetailsReplyDump reply = new SwInterfaceDetailsReplyDump(); + reply.swInterfaceDetails = ifaces; + when(api.swInterfaceDump(any(SwInterfaceDump.class))).thenReturn(future(reply)); final List allIds = getCustomizer().getAllIds(getSubInterfaceId(SUPER_IF_NAME, VLAN_IF_ID), ctx); diff --git a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfacesstate/VxlanCustomizerTest.java b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfacesstate/VxlanCustomizerTest.java index 40c1e5e69..e71441333 100644 --- a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfacesstate/VxlanCustomizerTest.java +++ b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfacesstate/VxlanCustomizerTest.java @@ -27,13 +27,12 @@ import static org.mockito.Mockito.verifyZeroInteractions; import com.google.common.collect.Lists; import io.fd.honeycomb.translate.spi.read.ReaderCustomizer; import io.fd.honeycomb.translate.v3po.test.ContextTestUtils; -import io.fd.honeycomb.vpp.test.read.ReaderCustomizerTest; import io.fd.honeycomb.translate.v3po.util.NamingContext; +import io.fd.honeycomb.vpp.test.read.ReaderCustomizerTest; import java.net.InetAddress; import java.net.UnknownHostException; import java.util.HashMap; import java.util.Map; -import java.util.concurrent.CompletableFuture; import org.junit.Test; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.InterfacesState; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface; @@ -74,9 +73,6 @@ public class VxlanCustomizerTest extends ReaderCustomizerTest vxlanTunnelDetailsReplyDumpCompletionStage = - new CompletableFuture<>(); - final VxlanTunnelDetailsReplyDump value = new VxlanTunnelDetailsReplyDump(); final VxlanTunnelDetails vxlanTunnelDetails = new VxlanTunnelDetails(); vxlanTunnelDetails.isIpv6 = 0; @@ -86,12 +82,8 @@ public class VxlanCustomizerTest extends ReaderCustomizerTest vxlanGpeTunnelDetailsReplyDumpCompletionStage = - new CompletableFuture<>(); - final VxlanGpeTunnelDetailsReplyDump value = new VxlanGpeTunnelDetailsReplyDump(); final VxlanGpeTunnelDetails vxlanGpeTunnelDetails = new VxlanGpeTunnelDetails(); vxlanGpeTunnelDetails.isIpv6 = 0; @@ -87,12 +83,8 @@ public class VxlanGpeCustomizerTest extends ReaderCustomizerTest future = new CompletableFuture<>(); - future.complete(reply); - CompletableFuture future2 = new CompletableFuture<>(); - future2.complete(reply2); - - when(api.ipAddressDump(Mockito.any(IpAddressDump.class))).thenReturn(future).thenReturn(future2); + when(api.ipAddressDump(Mockito.any(IpAddressDump.class))).thenReturn(future(reply)).thenReturn(future(reply2)); when(ctx.getModificationCache()).thenReturn(cache); final InstanceIdentifier
id = getId("192.168.2.1", IFACE_NAME); @@ -179,14 +173,9 @@ public class Ipv4AddressCustomizerTest extends ListReaderCustomizerTest future = new CompletableFuture<>(); - future.complete(reply); - - when(api.ipAddressDump(Mockito.any(IpAddressDump.class))).thenReturn(future); + when(api.ipAddressDump(Mockito.any(IpAddressDump.class))).thenReturn(future(reply)); when(ctx.getModificationCache()).thenReturn(cache); - final AddressBuilder builder = new AddressBuilder(); final InstanceIdentifier
id = getId("192.168.2.1", IFACE_NAME); @@ -246,11 +235,7 @@ public class Ipv4AddressCustomizerTest extends ListReaderCustomizerTest future = new CompletableFuture<>(); - future.complete(reply); - - when(api.ipAddressDump(Mockito.any(IpAddressDump.class))).thenReturn(future); + when(api.ipAddressDump(Mockito.any(IpAddressDump.class))).thenReturn(future(reply)); when(ctx.getModificationCache()).thenReturn(cache); final InstanceIdentifier
id = getId("192.168.2.1", IFACE_NAME); -- cgit 1.2.3-korg