HONEYCOMB-234: update YANG model to support egress ACLs
[honeycomb.git] / v3po / v3po2vpp / src / test / java / io / fd / honeycomb / translate / v3po / interfaces / TapCustomizerTest.java
index 2e65a41..9f914cc 100644 (file)
@@ -23,16 +23,9 @@ import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 
-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.util.NamingContext;
-import java.util.concurrent.CompletableFuture;
-import org.junit.Before;
+import io.fd.honeycomb.translate.vpp.util.NamingContext;
+import io.fd.honeycomb.vpp.test.write.WriterCustomizerTest;
 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;
@@ -43,36 +36,23 @@ 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.interfaces._interface.Tap;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev150105.interfaces._interface.TapBuilder;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.openvpp.jvpp.core.dto.TapConnect;
-import org.openvpp.jvpp.core.dto.TapConnectReply;
-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 {
-
-    @Mock
-    private FutureJVppCore vppApi;
-    @Mock
-    private WriteContext writeContext;
-    @Mock
-    private MappingContext mappingContext;
+import io.fd.vpp.jvpp.core.dto.TapConnect;
+import io.fd.vpp.jvpp.core.dto.TapConnectReply;
+import io.fd.vpp.jvpp.core.dto.TapDelete;
+import io.fd.vpp.jvpp.core.dto.TapDeleteReply;
+import io.fd.vpp.jvpp.core.dto.TapModify;
+import io.fd.vpp.jvpp.core.dto.TapModifyReply;
 
+public class TapCustomizerTest extends WriterCustomizerTest {
+
+    private static final String IFC_TEST_INSTANCE = "ifc-test-instance";
     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", "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
@@ -83,71 +63,59 @@ public class TapCustomizerTest {
 
             @Override
             public Object answer(final InvocationOnMock invocation) throws Throwable {
-                final CompletableFuture<Object> reply = new CompletableFuture<>();
                 final TapConnectReply t = new TapConnectReply();
                 t.swIfIndex = idx++;
-                reply.complete(t);
-                return reply;
+                return future(t);
             }
-        }).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(mappingContext).put(eq(ContextTestUtils.getMappingIid("tap", "test-instance")), eq(
-                ContextTestUtils.getMapping("tap", 0).get()));
-        verify(mappingContext).put(eq(ContextTestUtils.getMappingIid("tap2", "test-instance")), eq(
-                ContextTestUtils.getMapping("tap2", 1).get()));
+        verify(api, times(2)).tapConnect(any(TapConnect.class));
+        verify(mappingContext).put(eq(mappingIid("tap", IFC_TEST_INSTANCE)), eq(
+                mapping("tap", 0).get()));
+        verify(mappingContext).put(eq(mappingIid("tap2", IFC_TEST_INSTANCE)), eq(
+                mapping("tap2", 1).get()));
     }
 
     @Test
     public void testModify() throws Exception {
-        final CompletableFuture<TapConnectReply> reply = new CompletableFuture<>();
         final TapConnectReply t = new TapConnectReply();
         t.swIfIndex = 0;
-        reply.complete(t);
-        doReturn(reply).when(vppApi).tapConnect(any(TapConnect.class));
+        doReturn(future(t)).when(api).tapConnect(any(TapConnect.class));
 
-        final CompletableFuture<TapModifyReply> replyModif = new CompletableFuture<>();
         final TapModifyReply tmodif = new TapModifyReply();
         tmodif.swIfIndex = 0;
-        replyModif.complete(tmodif);
-        doReturn(replyModif).when(vppApi).tapModify(any(TapModify.class));
+        doReturn(future(tmodif)).when(api).tapModify(any(TapModify.class));
 
         tapCustomizer.writeCurrentAttributes(getTapId("tap"), getTapData("tap", "ff:ff:ff:ff:ff:ff"), writeContext);
-        doReturn(ContextTestUtils.getMapping("tap", 1)).when(mappingContext).read(
-                ContextTestUtils.getMappingIid("tap", "test-instance"));
+
+        defineMapping(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", "test-instance")), eq(
-                ContextTestUtils.getMapping("tap", 0).get()));
+        verify(mappingContext).put(eq(mappingIid("tap", IFC_TEST_INSTANCE)), eq(
+                mapping("tap", 0).get()));
     }
 
     @Test
     public void testDelete() throws Exception {
-        final CompletableFuture<TapConnectReply> reply = new CompletableFuture<>();
         final TapConnectReply t = new TapConnectReply();
         t.swIfIndex = 0;
-        reply.complete(t);
-        doReturn(reply).when(vppApi).tapConnect(any(TapConnect.class));
+        doReturn(future(t)).when(api).tapConnect(any(TapConnect.class));
 
-        final CompletableFuture<TapDeleteReply> replyDelete = new CompletableFuture<>();
-        final TapDeleteReply tmodif = new TapDeleteReply();
-        replyDelete.complete(tmodif);
-        doReturn(replyDelete).when(vppApi).tapDelete(any(TapDelete.class));
+        doReturn(future(new TapDeleteReply())).when(api).tapDelete(any(TapDelete.class));
 
         tapCustomizer.writeCurrentAttributes(getTapId("tap"), getTapData("tap", "ff:ff:ff:ff:ff:ff"), writeContext);
-        doReturn(ContextTestUtils.getMapping("tap", 1)).when(mappingContext).read(
-                ContextTestUtils.getMappingIid("tap", "test-instance"));
+        defineMapping(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(mappingContext).delete(eq(ContextTestUtils.getMappingIid("tap", "test-instance")));
+        verify(api).tapConnect(any(TapConnect.class));
+        verify(api).tapDelete(any(TapDelete.class));
+        verify(mappingContext).delete(eq(mappingIid("tap", IFC_TEST_INSTANCE)));
     }
 
     private InstanceIdentifier<Tap> getTapId(final String tap) {