From a4928d560b31df507472b17ac641c3f242d17b3a Mon Sep 17 00:00:00 2001 From: Marek Gradzki Date: Thu, 22 Sep 2016 13:17:00 +0200 Subject: HONEYCOMB-116: base classes for testing customizers - adds base class for testing writers - moves base classes to vpp-translate-test, subproject of vpp-common Change-Id: Ia42e2be3a95a33866d1996dd42a9bd1773b970a7 Signed-off-by: Marek Gradzki --- .../v3po/interfaces/AclCustomizerTest.java | 15 ++---- .../v3po/interfaces/GreCustomizerTest.java | 28 ++--------- .../v3po/interfaces/ProxyArpCustomizerTest.java | 57 ++++++++++++---------- .../v3po/interfaces/RewriteCustomizerTest.java | 20 ++------ .../interfaces/SubInterfaceCustomizerTest.java | 21 ++------ .../v3po/interfaces/TapCustomizerTest.java | 48 ++++++------------ .../v3po/interfaces/VhostUserCustomizerTest.java | 51 ++++++------------- .../v3po/interfaces/VxlanCustomizerTest.java | 17 ++----- .../v3po/interfaces/VxlanGpeCustomizerTest.java | 25 ++-------- .../interfaces/ip/Ipv4AddressCustomizerTest.java | 21 ++------ .../interfaces/ip/Ipv4NeighbourCustomizerTest.java | 40 +++------------ .../ip/subnet/validation/SubnetValidatorTest.java | 2 - 12 files changed, 91 insertions(+), 254 deletions(-) (limited to 'v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces') diff --git a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces/AclCustomizerTest.java b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces/AclCustomizerTest.java index f3cee8127..75999e5a4 100644 --- a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces/AclCustomizerTest.java +++ b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces/AclCustomizerTest.java @@ -24,16 +24,14 @@ import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.verify; import static org.mockito.MockitoAnnotations.initMocks; -import io.fd.honeycomb.translate.MappingContext; import io.fd.honeycomb.translate.v3po.test.ContextTestUtils; import io.fd.honeycomb.translate.v3po.test.TestHelperUtils; +import io.fd.honeycomb.vpp.test.write.WriterCustomizerTest; import io.fd.honeycomb.translate.v3po.util.NamingContext; import io.fd.honeycomb.translate.v3po.vppclassifier.VppClassifierContextManager; -import io.fd.honeycomb.translate.write.WriteContext; import io.fd.honeycomb.translate.write.WriteFailedException; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; -import org.junit.Before; import org.junit.Test; import org.mockito.ArgumentCaptor; import org.mockito.Mock; @@ -50,16 +48,9 @@ import org.openvpp.jvpp.VppBaseCallException; import org.openvpp.jvpp.core.dto.InputAclSetInterface; import org.openvpp.jvpp.core.dto.InputAclSetInterfaceReply; import org.openvpp.jvpp.core.dto.L2InterfaceVlanTagRewriteReply; -import org.openvpp.jvpp.core.future.FutureJVppCore; -public class AclCustomizerTest { +public class AclCustomizerTest extends WriterCustomizerTest { - @Mock - private FutureJVppCore api; - @Mock - private WriteContext writeContext; - @Mock - private MappingContext mappingContext; @Mock private VppClassifierContextManager classifyTableContext; @@ -73,7 +64,7 @@ public class AclCustomizerTest { private static final int ACL_TABLE_INDEX = 0; private static final String ACL_TABLE_NAME = "table0"; - @Before + @Override public void setUp() throws Exception { initMocks(this); interfaceContext = new NamingContext("generatedInterfaceName", IFC_TEST_INSTANCE); diff --git a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces/GreCustomizerTest.java b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces/GreCustomizerTest.java index 8eaf2397a..cf92ab91f 100644 --- a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces/GreCustomizerTest.java +++ b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces/GreCustomizerTest.java @@ -32,24 +32,19 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import static org.mockito.MockitoAnnotations.initMocks; import com.google.common.net.InetAddresses; -import io.fd.honeycomb.translate.MappingContext; -import io.fd.honeycomb.translate.ModificationCache; import io.fd.honeycomb.translate.v3po.test.TestHelperUtils; +import io.fd.honeycomb.vpp.test.write.WriterCustomizerTest; import io.fd.honeycomb.translate.v3po.util.NamingContext; -import io.fd.honeycomb.translate.write.WriteContext; import io.fd.honeycomb.translate.write.WriteFailedException; import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletionStage; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; -import org.junit.Before; import org.junit.Test; import org.mockito.ArgumentCaptor; -import org.mockito.Mock; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.Interfaces; @@ -63,9 +58,8 @@ import org.openvpp.jvpp.VppBaseCallException; import org.openvpp.jvpp.VppInvocationException; import org.openvpp.jvpp.core.dto.GreAddDelTunnel; import org.openvpp.jvpp.core.dto.GreAddDelTunnelReply; -import org.openvpp.jvpp.core.future.FutureJVppCore; -public class GreCustomizerTest { +public class GreCustomizerTest extends WriterCustomizerTest { private static final String IFC_TEST_INSTANCE = "ifc-test-instance"; private final String IFACE_NAME = "eth0"; @@ -75,27 +69,13 @@ public class GreCustomizerTest { private static final byte ADD_GRE = 1; private static final byte DEL_GRE = 0; - @Mock - private FutureJVppCore api; - @Mock - private WriteContext writeContext; - @Mock - private MappingContext mappingContext; - private GreCustomizer customizer; - @Before + @Override public void setUp() throws Exception { - initMocks(this); InterfaceTypeTestUtils.setupWriteContext(writeContext, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev150105.GreTunnel.class); - // TODO HONEYCOMB-116 create base class for tests using vppApi - NamingContext namingContext = new NamingContext("generateInterfaceNAme", IFC_TEST_INSTANCE); - final ModificationCache toBeReturned = new ModificationCache(); - doReturn(toBeReturned).when(writeContext).getModificationCache(); - doReturn(mappingContext).when(writeContext).getMappingContext(); - - customizer = new GreCustomizer(api, namingContext); + customizer = new GreCustomizer(api, new NamingContext("generateInterfaceNAme", IFC_TEST_INSTANCE)); } private void whenGreAddDelTunnelThenSuccess() diff --git a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces/ProxyArpCustomizerTest.java b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces/ProxyArpCustomizerTest.java index 3748a9738..caac8a37b 100644 --- a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces/ProxyArpCustomizerTest.java +++ b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces/ProxyArpCustomizerTest.java @@ -16,34 +16,37 @@ package io.fd.honeycomb.translate.v3po.interfaces; -import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.mock; -import io.fd.honeycomb.translate.MappingContext; +import io.fd.honeycomb.vpp.test.write.WriterCustomizerTest; import io.fd.honeycomb.translate.v3po.util.NamingContext; -import io.fd.honeycomb.translate.write.WriteContext; -import org.junit.Before; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; -import org.openvpp.jvpp.core.future.FutureJVppCore; - -public class ProxyArpCustomizerTest { - - @Mock - private FutureJVppCore vppApi; - @Mock - private WriteContext writeContext; - @Mock - private MappingContext mappingContext; - - private ProxyArpCustomizer proxyArpCustomizer; - private NamingContext namingContext; - - @Before - protected void setUp() throws Exception { - MockitoAnnotations.initMocks(this); - namingContext = new NamingContext("generatedSubInterfaceName", "test-instance"); - doReturn(mappingContext).when(writeContext).getMappingContext(); - - proxyArpCustomizer = new ProxyArpCustomizer(vppApi, namingContext); +import io.fd.honeycomb.translate.write.WriteFailedException; +import org.junit.Test; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.Interfaces; +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.InterfaceKey; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev150105.VppInterfaceAugmentation; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev150105.interfaces._interface.ProxyArp; +import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; + +public class ProxyArpCustomizerTest extends WriterCustomizerTest { + + private ProxyArpCustomizer customizer; + + @Override + public void setUp() throws Exception { + customizer = new ProxyArpCustomizer(api, new NamingContext("generatedSubInterfaceName", "test-instance")); + } + + @Test(expected = WriteFailedException.UpdateFailedException.class) + public void testUpdate() throws Exception { + final ProxyArp dataBefore = mock(ProxyArp.class); + final ProxyArp dataAfter = mock(ProxyArp.class); + customizer.updateCurrentAttributes(getProxyArpId("eth0"), dataBefore, dataAfter, writeContext); + } + + private InstanceIdentifier getProxyArpId(final String eth0) { + return InstanceIdentifier.create(Interfaces.class).child(Interface.class, new InterfaceKey(eth0)).augmentation( + VppInterfaceAugmentation.class).child(ProxyArp.class); } } diff --git a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces/RewriteCustomizerTest.java b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces/RewriteCustomizerTest.java index 73c0dc76b..366d9429e 100644 --- a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces/RewriteCustomizerTest.java +++ b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces/RewriteCustomizerTest.java @@ -22,22 +22,18 @@ import static org.junit.Assert.fail; import static org.mockito.Matchers.any; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.verify; -import static org.mockito.MockitoAnnotations.initMocks; -import io.fd.honeycomb.translate.MappingContext; import io.fd.honeycomb.translate.v3po.test.ContextTestUtils; import io.fd.honeycomb.translate.v3po.test.TestHelperUtils; +import io.fd.honeycomb.vpp.test.write.WriterCustomizerTest; import io.fd.honeycomb.translate.v3po.util.NamingContext; import io.fd.honeycomb.translate.v3po.util.TagRewriteOperation; -import io.fd.honeycomb.translate.write.WriteContext; import io.fd.honeycomb.translate.write.WriteFailedException; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; import org.junit.Assert; -import org.junit.Before; import org.junit.Test; import org.mockito.ArgumentCaptor; -import org.mockito.Mock; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.Interfaces; 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.InterfaceKey; @@ -54,16 +50,8 @@ import org.openvpp.jvpp.VppBaseCallException; import org.openvpp.jvpp.VppInvocationException; import org.openvpp.jvpp.core.dto.L2InterfaceVlanTagRewrite; import org.openvpp.jvpp.core.dto.L2InterfaceVlanTagRewriteReply; -import org.openvpp.jvpp.core.future.FutureJVppCore; -public class RewriteCustomizerTest { - - @Mock - private FutureJVppCore api; - @Mock - private WriteContext writeContext; - @Mock - private MappingContext mappingContext; +public class RewriteCustomizerTest extends WriterCustomizerTest { private NamingContext namingContext; private RewriteCustomizer customizer; @@ -75,11 +63,9 @@ public class RewriteCustomizerTest { private static final int VLAN_IF_INDEX = 11; private InstanceIdentifier VLAN_IID; - @Before + @Override public void setUp() throws Exception { - initMocks(this); namingContext = new NamingContext("generatedSubInterfaceName", IFC_TEST_INSTANCE); - doReturn(mappingContext).when(writeContext).getMappingContext(); customizer = new RewriteCustomizer(api, namingContext); VLAN_IID = getVlanTagRewriteId(IF_NAME, VLAN_IF_ID); ContextTestUtils.mockMapping(mappingContext, VLAN_IF_NAME, VLAN_IF_INDEX, IFC_TEST_INSTANCE); diff --git a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces/SubInterfaceCustomizerTest.java b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces/SubInterfaceCustomizerTest.java index 1a1028197..c370a97ea 100644 --- a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces/SubInterfaceCustomizerTest.java +++ b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces/SubInterfaceCustomizerTest.java @@ -24,22 +24,18 @@ import static org.mockito.Matchers.eq; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; -import static org.mockito.MockitoAnnotations.initMocks; -import io.fd.honeycomb.translate.MappingContext; import io.fd.honeycomb.translate.v3po.test.ContextTestUtils; import io.fd.honeycomb.translate.v3po.test.TestHelperUtils; +import io.fd.honeycomb.vpp.test.write.WriterCustomizerTest; import io.fd.honeycomb.translate.v3po.util.NamingContext; -import io.fd.honeycomb.translate.write.WriteContext; import io.fd.honeycomb.translate.write.WriteFailedException; import java.util.Arrays; import java.util.List; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; -import org.junit.Before; import org.junit.Test; import org.mockito.ArgumentCaptor; -import org.mockito.Mock; import org.opendaylight.yang.gen.v1.urn.ieee.params.xml.ns.yang.dot1q.types.rev150626.CVlan; import org.opendaylight.yang.gen.v1.urn.ieee.params.xml.ns.yang.dot1q.types.rev150626.Dot1qTagVlanType; import org.opendaylight.yang.gen.v1.urn.ieee.params.xml.ns.yang.dot1q.types.rev150626.Dot1qVlanId; @@ -68,16 +64,8 @@ import org.openvpp.jvpp.core.dto.CreateSubif; import org.openvpp.jvpp.core.dto.CreateSubifReply; import org.openvpp.jvpp.core.dto.SwInterfaceSetFlags; import org.openvpp.jvpp.core.dto.SwInterfaceSetFlagsReply; -import org.openvpp.jvpp.core.future.FutureJVppCore; -public class SubInterfaceCustomizerTest { - - @Mock - private FutureJVppCore api; - @Mock - private WriteContext writeContext; - @Mock - private MappingContext mappingContext; +public class SubInterfaceCustomizerTest extends WriterCustomizerTest { private NamingContext namingContext; private SubInterfaceCustomizer customizer; @@ -102,12 +90,9 @@ public class SubInterfaceCustomizerTest { CTAG_ANY = generateTag((short) 1, CVlan.class, new Dot1qTag.VlanId(Dot1qTag.VlanId.Enumeration.Any)); } - @Before + @Override public void setUp() throws Exception { - initMocks(this); namingContext = new NamingContext("generatedSubInterfaceName", IFC_TEST_INSTANCE); - doReturn(mappingContext).when(writeContext).getMappingContext(); - // TODO HONEYCOMB-116 create base class for tests using vppApi customizer = new SubInterfaceCustomizer(api, namingContext); ContextTestUtils.mockMapping(mappingContext, SUB_IFACE_NAME, SUBIF_INDEX, IFC_TEST_INSTANCE); ContextTestUtils.mockMapping(mappingContext, SUPER_IF_NAME, SUPER_IF_ID, IFC_TEST_INSTANCE); diff --git a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces/TapCustomizerTest.java b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces/TapCustomizerTest.java index 9bf86c537..fedc59e79 100644 --- a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces/TapCustomizerTest.java +++ b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces/TapCustomizerTest.java @@ -23,16 +23,11 @@ import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; -import io.fd.honeycomb.translate.MappingContext; -import io.fd.honeycomb.translate.ModificationCache; import io.fd.honeycomb.translate.v3po.test.ContextTestUtils; +import io.fd.honeycomb.vpp.test.write.WriterCustomizerTest; import io.fd.honeycomb.translate.v3po.util.NamingContext; -import io.fd.honeycomb.translate.write.WriteContext; import java.util.concurrent.CompletableFuture; -import org.junit.Before; import org.junit.Test; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.Interfaces; @@ -49,32 +44,17 @@ import org.openvpp.jvpp.core.dto.TapDelete; import org.openvpp.jvpp.core.dto.TapDeleteReply; import org.openvpp.jvpp.core.dto.TapModify; import org.openvpp.jvpp.core.dto.TapModifyReply; -import org.openvpp.jvpp.core.future.FutureJVppCore; -public class TapCustomizerTest { +public class TapCustomizerTest extends WriterCustomizerTest { private static final String IFC_TEST_INSTANCE = "ifc-test-instance"; - - @Mock - private FutureJVppCore vppApi; - @Mock - private WriteContext writeContext; - @Mock - private MappingContext mappingContext; - private TapCustomizer tapCustomizer; - @Before + @Override public void setUp() throws Exception { - MockitoAnnotations.initMocks(this); InterfaceTypeTestUtils.setupWriteContext(writeContext, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev150105.Tap.class); - final NamingContext ctx = new NamingContext("ifcintest", IFC_TEST_INSTANCE); - final ModificationCache toBeReturned = new ModificationCache(); - doReturn(toBeReturned).when(writeContext).getModificationCache(); - doReturn(mappingContext).when(writeContext).getMappingContext(); - - tapCustomizer = new TapCustomizer(vppApi, ctx); + tapCustomizer = new TapCustomizer(api, new NamingContext("ifcintest", IFC_TEST_INSTANCE)); } @Test @@ -91,12 +71,12 @@ public class TapCustomizerTest { reply.complete(t); return reply; } - }).when(vppApi).tapConnect(any(TapConnect.class)); + }).when(api).tapConnect(any(TapConnect.class)); tapCustomizer.writeCurrentAttributes(getTapId("tap"), getTapData("tap", "ff:ff:ff:ff:ff:ff"), writeContext); tapCustomizer.writeCurrentAttributes(getTapId("tap2"), getTapData("tap2", "ff:ff:ff:ff:ff:ff"), writeContext); - verify(vppApi, times(2)).tapConnect(any(TapConnect.class)); + verify(api, times(2)).tapConnect(any(TapConnect.class)); verify(mappingContext).put(eq(ContextTestUtils.getMappingIid("tap", IFC_TEST_INSTANCE)), eq( ContextTestUtils.getMapping("tap", 0).get())); verify(mappingContext).put(eq(ContextTestUtils.getMappingIid("tap2", IFC_TEST_INSTANCE)), eq( @@ -109,21 +89,21 @@ public class TapCustomizerTest { final TapConnectReply t = new TapConnectReply(); t.swIfIndex = 0; reply.complete(t); - doReturn(reply).when(vppApi).tapConnect(any(TapConnect.class)); + doReturn(reply).when(api).tapConnect(any(TapConnect.class)); final CompletableFuture replyModif = new CompletableFuture<>(); final TapModifyReply tmodif = new TapModifyReply(); tmodif.swIfIndex = 0; replyModif.complete(tmodif); - doReturn(replyModif).when(vppApi).tapModify(any(TapModify.class)); + doReturn(replyModif).when(api).tapModify(any(TapModify.class)); tapCustomizer.writeCurrentAttributes(getTapId("tap"), getTapData("tap", "ff:ff:ff:ff:ff:ff"), writeContext); ContextTestUtils.mockMapping(mappingContext, "tap", 1, IFC_TEST_INSTANCE); tapCustomizer.updateCurrentAttributes(getTapId("tap"), getTapData("tap", "ff:ff:ff:ff:ff:ff"), getTapData("tap", "ff:ff:ff:ff:ff:f1"), writeContext); - verify(vppApi).tapConnect(any(TapConnect.class)); - verify(vppApi).tapModify(any(TapModify.class)); + verify(api).tapConnect(any(TapConnect.class)); + verify(api).tapModify(any(TapModify.class)); verify(mappingContext).put(eq(ContextTestUtils.getMappingIid("tap", IFC_TEST_INSTANCE)), eq( ContextTestUtils.getMapping("tap", 0).get())); @@ -135,19 +115,19 @@ public class TapCustomizerTest { final TapConnectReply t = new TapConnectReply(); t.swIfIndex = 0; reply.complete(t); - doReturn(reply).when(vppApi).tapConnect(any(TapConnect.class)); + doReturn(reply).when(api).tapConnect(any(TapConnect.class)); final CompletableFuture replyDelete = new CompletableFuture<>(); final TapDeleteReply tmodif = new TapDeleteReply(); replyDelete.complete(tmodif); - doReturn(replyDelete).when(vppApi).tapDelete(any(TapDelete.class)); + doReturn(replyDelete).when(api).tapDelete(any(TapDelete.class)); tapCustomizer.writeCurrentAttributes(getTapId("tap"), getTapData("tap", "ff:ff:ff:ff:ff:ff"), writeContext); ContextTestUtils.mockMapping(mappingContext, "tap", 1, IFC_TEST_INSTANCE); tapCustomizer.deleteCurrentAttributes(getTapId("tap"), getTapData("tap", "ff:ff:ff:ff:ff:ff"), writeContext); - verify(vppApi).tapConnect(any(TapConnect.class)); - verify(vppApi).tapDelete(any(TapDelete.class)); + verify(api).tapConnect(any(TapConnect.class)); + verify(api).tapDelete(any(TapDelete.class)); verify(mappingContext).delete(eq(ContextTestUtils.getMappingIid("tap", IFC_TEST_INSTANCE))); } diff --git a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces/VhostUserCustomizerTest.java b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces/VhostUserCustomizerTest.java index f3963e669..1d2fb609d 100644 --- a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces/VhostUserCustomizerTest.java +++ b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces/VhostUserCustomizerTest.java @@ -30,13 +30,10 @@ 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 static org.mockito.MockitoAnnotations.initMocks; import io.fd.honeycomb.translate.v3po.test.ContextTestUtils; -import io.fd.honeycomb.translate.write.WriteContext; -import io.fd.honeycomb.translate.MappingContext; -import io.fd.honeycomb.translate.ModificationCache; import io.fd.honeycomb.translate.v3po.test.TestHelperUtils; +import io.fd.honeycomb.vpp.test.write.WriterCustomizerTest; import io.fd.honeycomb.translate.v3po.util.NamingContext; import io.fd.honeycomb.translate.v3po.util.TranslateUtils; import io.fd.honeycomb.translate.write.WriteFailedException; @@ -45,10 +42,8 @@ import java.util.concurrent.CompletionStage; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; -import org.junit.Before; import org.junit.Test; import org.mockito.ArgumentCaptor; -import org.mockito.Mock; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.Interfaces; 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.InterfaceKey; @@ -65,36 +60,21 @@ import org.openvpp.jvpp.core.dto.DeleteVhostUserIf; import org.openvpp.jvpp.core.dto.DeleteVhostUserIfReply; import org.openvpp.jvpp.core.dto.ModifyVhostUserIf; import org.openvpp.jvpp.core.dto.ModifyVhostUserIfReply; -import org.openvpp.jvpp.core.future.FutureJVppCore; -public class VhostUserCustomizerTest { - - @Mock - private FutureJVppCore api; - @Mock - private WriteContext writeContext; - @Mock - private MappingContext mappingContext; +public class VhostUserCustomizerTest extends WriterCustomizerTest { private VhostUserCustomizer customizer; private static final int IFACE_ID = 1; private static final String IFACE_NAME = "eth0"; private static final InstanceIdentifier ID = - InstanceIdentifier.create(Interfaces.class).child(Interface.class, new InterfaceKey(IFACE_NAME)) - .augmentation(VppInterfaceAugmentation.class).child(VhostUser.class); + InstanceIdentifier.create(Interfaces.class).child(Interface.class, new InterfaceKey(IFACE_NAME)) + .augmentation(VppInterfaceAugmentation.class).child(VhostUser.class); - @Before + @Override public void setUp() throws Exception { - initMocks(this); InterfaceTypeTestUtils.setupWriteContext(writeContext, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev150105.VhostUser.class); - final NamingContext namingContext = new NamingContext("generatedInterfaceName", "test-instance"); - final ModificationCache toBeReturned = new ModificationCache(); - doReturn(toBeReturned).when(writeContext).getModificationCache(); - doReturn(mappingContext).when(writeContext).getMappingContext(); - - // TODO HONEYCOMB-116 create base class for tests using vppApi - customizer = new VhostUserCustomizer(api, namingContext); + customizer = new VhostUserCustomizer(api, new NamingContext("generatedInterfaceName", "test-instance")); } private void whenCreateVhostUserIfThenSuccess() @@ -111,9 +91,9 @@ public class VhostUserCustomizerTest { * Failure response send */ private void whenCreateVhostUserIfThenFailure() - throws ExecutionException, InterruptedException, VppInvocationException { + throws ExecutionException, InterruptedException, VppInvocationException { doReturn(TestHelperUtils.createFutureException()).when(api) - .createVhostUserIf(any(CreateVhostUserIf.class)); + .createVhostUserIf(any(CreateVhostUserIf.class)); } private void whenModifyVhostUserIfThenSuccess() @@ -130,9 +110,9 @@ public class VhostUserCustomizerTest { * Failure response send */ private void whenModifyVhostUserIfThenFailure() - throws ExecutionException, InterruptedException, VppInvocationException { + throws ExecutionException, InterruptedException, VppInvocationException { doReturn(TestHelperUtils.createFutureException()).when(api) - .modifyVhostUserIf(any(ModifyVhostUserIf.class)); + .modifyVhostUserIf(any(ModifyVhostUserIf.class)); } private void whenDeleteVhostUserIfThenSuccess() @@ -149,12 +129,13 @@ public class VhostUserCustomizerTest { * Failure response send */ private void whenDeleteVhostUserIfThenFailure() - throws ExecutionException, InterruptedException, VppInvocationException { + throws ExecutionException, InterruptedException, VppInvocationException { doReturn(TestHelperUtils.createFutureException()).when(api) - .deleteVhostUserIf(any(DeleteVhostUserIf.class)); + .deleteVhostUserIf(any(DeleteVhostUserIf.class)); } - private CreateVhostUserIf verifyCreateVhostUserIfWasInvoked(final VhostUser vhostUser) throws VppInvocationException { + private CreateVhostUserIf verifyCreateVhostUserIfWasInvoked(final VhostUser vhostUser) + throws VppInvocationException { ArgumentCaptor argumentCaptor = ArgumentCaptor.forClass(CreateVhostUserIf.class); verify(api).createVhostUserIf(argumentCaptor.capture()); final CreateVhostUserIf actual = argumentCaptor.getValue(); @@ -169,7 +150,7 @@ public class VhostUserCustomizerTest { } private ModifyVhostUserIf verifyModifyVhostUserIfWasInvoked(final VhostUser vhostUser, final int swIfIndex) - throws VppInvocationException { + throws VppInvocationException { ArgumentCaptor argumentCaptor = ArgumentCaptor.forClass(ModifyVhostUserIf.class); verify(api).modifyVhostUserIf(argumentCaptor.capture()); final ModifyVhostUserIf actual = argumentCaptor.getValue(); @@ -206,7 +187,7 @@ public class VhostUserCustomizerTest { customizer.writeCurrentAttributes(ID, vhostUser, writeContext); verifyCreateVhostUserIfWasInvoked(vhostUser); verify(mappingContext).put(eq(ContextTestUtils.getMappingIid(IFACE_NAME, "test-instance")), eq( - ContextTestUtils.getMapping(IFACE_NAME, 0).get())); + ContextTestUtils.getMapping(IFACE_NAME, 0).get())); } @Test diff --git a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces/VxlanCustomizerTest.java b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces/VxlanCustomizerTest.java index 695c2ff3a..d9678621b 100644 --- a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces/VxlanCustomizerTest.java +++ b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces/VxlanCustomizerTest.java @@ -30,23 +30,20 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import static org.mockito.MockitoAnnotations.initMocks; import com.google.common.net.InetAddresses; -import io.fd.honeycomb.translate.MappingContext; import io.fd.honeycomb.translate.ModificationCache; import io.fd.honeycomb.translate.v3po.DisabledInterfacesManager; import io.fd.honeycomb.translate.v3po.test.ContextTestUtils; import io.fd.honeycomb.translate.v3po.test.TestHelperUtils; +import io.fd.honeycomb.vpp.test.write.WriterCustomizerTest; import io.fd.honeycomb.translate.v3po.util.NamingContext; -import io.fd.honeycomb.translate.write.WriteContext; import io.fd.honeycomb.translate.write.WriteFailedException; import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletionStage; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; -import org.junit.Before; import org.junit.Test; import org.mockito.ArgumentCaptor; import org.mockito.Mock; @@ -64,19 +61,12 @@ import org.openvpp.jvpp.VppBaseCallException; import org.openvpp.jvpp.VppInvocationException; import org.openvpp.jvpp.core.dto.VxlanAddDelTunnel; import org.openvpp.jvpp.core.dto.VxlanAddDelTunnelReply; -import org.openvpp.jvpp.core.future.FutureJVppCore; -public class VxlanCustomizerTest { +public class VxlanCustomizerTest extends WriterCustomizerTest { private static final byte ADD_VXLAN = 1; private static final byte DEL_VXLAN = 0; - @Mock - private FutureJVppCore api; - @Mock - private WriteContext writeContext; - @Mock - private MappingContext mappingContext; @Mock private DisabledInterfacesManager disableContext; @@ -84,9 +74,8 @@ public class VxlanCustomizerTest { private String ifaceName; private InstanceIdentifier id; - @Before + @Override public void setUp() throws Exception { - initMocks(this); InterfaceTypeTestUtils.setupWriteContext(writeContext, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev150105.VxlanTunnel.class); // TODO HONEYCOMB-116 create base class for tests using vppApi diff --git a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces/VxlanGpeCustomizerTest.java b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces/VxlanGpeCustomizerTest.java index 07e050ec6..9d6adff6f 100644 --- a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces/VxlanGpeCustomizerTest.java +++ b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces/VxlanGpeCustomizerTest.java @@ -30,23 +30,19 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import static org.mockito.MockitoAnnotations.initMocks; import com.google.common.net.InetAddresses; -import io.fd.honeycomb.translate.MappingContext; -import io.fd.honeycomb.translate.ModificationCache; import io.fd.honeycomb.translate.v3po.DisabledInterfacesManager; import io.fd.honeycomb.translate.v3po.test.ContextTestUtils; import io.fd.honeycomb.translate.v3po.test.TestHelperUtils; +import io.fd.honeycomb.vpp.test.write.WriterCustomizerTest; import io.fd.honeycomb.translate.v3po.util.NamingContext; -import io.fd.honeycomb.translate.write.WriteContext; import io.fd.honeycomb.translate.write.WriteFailedException; import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletionStage; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; -import org.junit.Before; import org.junit.Test; import org.mockito.ArgumentCaptor; import org.mockito.Mock; @@ -65,19 +61,12 @@ import org.openvpp.jvpp.VppBaseCallException; import org.openvpp.jvpp.core.dto.VxlanAddDelTunnelReply; import org.openvpp.jvpp.core.dto.VxlanGpeAddDelTunnel; import org.openvpp.jvpp.core.dto.VxlanGpeAddDelTunnelReply; -import org.openvpp.jvpp.core.future.FutureJVppCore; -public class VxlanGpeCustomizerTest { +public class VxlanGpeCustomizerTest extends WriterCustomizerTest { private static final byte ADD_VXLAN_GPE = 1; private static final byte DEL_VXLAN_GPE = 0; - @Mock - private FutureJVppCore api; - @Mock - private WriteContext writeContext; - @Mock - private MappingContext mappingContext; @Mock private DisabledInterfacesManager interfaceDisableContext; @@ -85,17 +74,11 @@ public class VxlanGpeCustomizerTest { private String ifaceName; private InstanceIdentifier id; - @Before + @Override public void setUp() throws Exception { - initMocks(this); InterfaceTypeTestUtils.setupWriteContext(writeContext, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev150105.VxlanGpeTunnel.class); - // TODO HONEYCOMB-116 create base class for tests using vppApi - NamingContext namingContext = new NamingContext("generateInterfaceNAme", "test-instance"); - final ModificationCache toBeReturned = new ModificationCache(); - doReturn(toBeReturned).when(writeContext).getModificationCache(); - doReturn(mappingContext).when(writeContext).getMappingContext(); - + NamingContext namingContext = new NamingContext("generateInterfaceName", "test-instance"); customizer = new VxlanGpeCustomizer(api, namingContext, interfaceDisableContext); ifaceName = "elth0"; diff --git a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces/ip/Ipv4AddressCustomizerTest.java b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces/ip/Ipv4AddressCustomizerTest.java index a358512e1..f3c9e79f7 100644 --- a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces/ip/Ipv4AddressCustomizerTest.java +++ b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces/ip/Ipv4AddressCustomizerTest.java @@ -28,17 +28,14 @@ import static org.mockito.Mockito.doThrow; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import static org.mockito.MockitoAnnotations.initMocks; import com.google.common.base.Optional; -import io.fd.honeycomb.translate.MappingContext; -import io.fd.honeycomb.translate.ModificationCache; import io.fd.honeycomb.translate.v3po.interfaces.ip.subnet.validation.SubnetValidationException; import io.fd.honeycomb.translate.v3po.interfaces.ip.subnet.validation.SubnetValidator; import io.fd.honeycomb.translate.v3po.test.ContextTestUtils; import io.fd.honeycomb.translate.v3po.test.TestHelperUtils; +import io.fd.honeycomb.vpp.test.write.WriterCustomizerTest; import io.fd.honeycomb.translate.v3po.util.NamingContext; -import io.fd.honeycomb.translate.write.WriteContext; import io.fd.honeycomb.translate.write.WriteFailedException; import java.util.Arrays; import java.util.Collections; @@ -72,9 +69,8 @@ import org.openvpp.jvpp.VppInvocationException; import org.openvpp.jvpp.core.dto.IpAddressDetailsReplyDump; import org.openvpp.jvpp.core.dto.SwInterfaceAddDelAddress; import org.openvpp.jvpp.core.dto.SwInterfaceAddDelAddressReply; -import org.openvpp.jvpp.core.future.FutureJVppCore; -public class Ipv4AddressCustomizerTest { +public class Ipv4AddressCustomizerTest extends WriterCustomizerTest { private static final String IFC_CTX_NAME = "ifc-test-instance"; private static final String IFACE_NAME = "eth0"; @@ -83,28 +79,17 @@ public class Ipv4AddressCustomizerTest { @Captor private ArgumentCaptor> addressesCaptor; - @Mock - private WriteContext writeContext; - @Mock - private MappingContext mappingContext; - @Mock - private FutureJVppCore api; @Mock private SubnetValidator subnetValidator; private NamingContext interfaceContext; private Ipv4AddressCustomizer customizer; - private ModificationCache cache; @Before public void setUp() throws Exception { - initMocks(this); - doReturn(mappingContext).when(writeContext).getMappingContext(); - interfaceContext = new NamingContext("generatedlIfaceName", IFC_CTX_NAME); + interfaceContext = new NamingContext("generatedIfaceName", IFC_CTX_NAME); customizer = new Ipv4AddressCustomizer(api, interfaceContext, subnetValidator); - cache = new ModificationCache(); - when(writeContext.getModificationCache()).thenReturn(cache); CompletableFuture future = new CompletableFuture(); future.complete(new IpAddressDetailsReplyDump()); diff --git a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces/ip/Ipv4NeighbourCustomizerTest.java b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces/ip/Ipv4NeighbourCustomizerTest.java index d7f9c0c1c..dcde0b43d 100644 --- a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces/ip/Ipv4NeighbourCustomizerTest.java +++ b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces/ip/Ipv4NeighbourCustomizerTest.java @@ -22,20 +22,16 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import com.google.common.io.BaseEncoding; -import io.fd.honeycomb.translate.MappingContext; import io.fd.honeycomb.translate.v3po.test.ContextTestUtils; +import io.fd.honeycomb.vpp.test.write.WriterCustomizerTest; import io.fd.honeycomb.translate.v3po.util.NamingContext; import io.fd.honeycomb.translate.v3po.util.TranslateUtils; -import io.fd.honeycomb.translate.write.WriteContext; import io.fd.honeycomb.translate.write.WriteFailedException; import java.util.concurrent.CompletableFuture; import org.junit.Before; import org.junit.Test; import org.mockito.ArgumentCaptor; -import org.mockito.Mock; import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; -import org.opendaylight.yang.gen.v1.urn.honeycomb.params.xml.ns.yang.naming.context.rev160513.contexts.naming.context.mappings.Mapping; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4AddressNoZone; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.Interfaces; @@ -49,45 +45,25 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types. import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.openvpp.jvpp.core.dto.IpNeighborAddDel; import org.openvpp.jvpp.core.dto.IpNeighborAddDelReply; -import org.openvpp.jvpp.core.future.FutureJVppCore; -public class Ipv4NeighbourCustomizerTest { +public class Ipv4NeighbourCustomizerTest extends WriterCustomizerTest { private static final String IFC_CTX_NAME = "ifc-test-instance"; private static final String IFACE_NAME = "parent"; private static final int IFACE_ID = 5; - @Mock - private FutureJVppCore jvpp; - - @Mock - private WriteContext context; - - @Mock - private MappingContext mappingContext; - - @Mock - private Mapping mapping; - private ArgumentCaptor requestCaptor; private Ipv4NeighbourCustomizer customizer; - private NamingContext namingContext; - @Before public void init() { - MockitoAnnotations.initMocks(this); - when(context.getMappingContext()).thenReturn(mappingContext); - - namingContext = new NamingContext("prefix", IFC_CTX_NAME); ContextTestUtils.mockMapping(mappingContext, IFACE_NAME, IFACE_ID, IFC_CTX_NAME); - - customizer = new Ipv4NeighbourCustomizer(jvpp,namingContext); + customizer = new Ipv4NeighbourCustomizer(api, new NamingContext("prefix", IFC_CTX_NAME)); requestCaptor = ArgumentCaptor.forClass(IpNeighborAddDel.class); CompletableFuture future = new CompletableFuture<>(); future.complete(new IpNeighborAddDelReply()); - when(jvpp.ipNeighborAddDel(Mockito.any(IpNeighborAddDel.class))).thenReturn(future); + when(api.ipNeighborAddDel(Mockito.any(IpNeighborAddDel.class))).thenReturn(future); } @Test @@ -103,9 +79,9 @@ public class Ipv4NeighbourCustomizerTest { Neighbor data = new NeighborBuilder().setIp(noZoneIp).setLinkLayerAddress(mac).build(); - customizer.writeCurrentAttributes(id, data, context); + customizer.writeCurrentAttributes(id, data, writeContext); - verify(jvpp, times(1)).ipNeighborAddDel(requestCaptor.capture()); + verify(api, times(1)).ipNeighborAddDel(requestCaptor.capture()); IpNeighborAddDel request = requestCaptor.getValue(); @@ -129,9 +105,9 @@ public class Ipv4NeighbourCustomizerTest { Neighbor data = new NeighborBuilder().setIp(noZoneIp).setLinkLayerAddress(mac).build(); - customizer.deleteCurrentAttributes(id, data, context); + customizer.deleteCurrentAttributes(id, data, writeContext); - verify(jvpp, times(1)).ipNeighborAddDel(requestCaptor.capture()); + verify(api, times(1)).ipNeighborAddDel(requestCaptor.capture()); IpNeighborAddDel request = requestCaptor.getValue(); diff --git a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces/ip/subnet/validation/SubnetValidatorTest.java b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces/ip/subnet/validation/SubnetValidatorTest.java index 3a29a191a..7c3088f99 100644 --- a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces/ip/subnet/validation/SubnetValidatorTest.java +++ b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/interfaces/ip/subnet/validation/SubnetValidatorTest.java @@ -21,7 +21,6 @@ import com.google.common.collect.Lists; import java.util.List; import org.junit.Before; import org.junit.Test; -import org.mockito.MockitoAnnotations; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ip.rev140616.interfaces._interface.ipv4.Address; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ip.rev140616.interfaces._interface.ipv4.AddressBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.ip.rev140616.interfaces._interface.ipv4.address.subnet.NetmaskBuilder; @@ -34,7 +33,6 @@ public class SubnetValidatorTest { @Before public void init() { - MockitoAnnotations.initMocks(this); subnetValidator = new SubnetValidator(); } -- cgit 1.2.3-korg