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;
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
@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) {