summaryrefslogtreecommitdiffstats
path: root/lisp/lisp2vpp/src/test/java/io/fd/honeycomb/lisp/translate/read/dump/executor/LocatorDumpExecutorTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/lisp2vpp/src/test/java/io/fd/honeycomb/lisp/translate/read/dump/executor/LocatorDumpExecutorTest.java')
-rw-r--r--lisp/lisp2vpp/src/test/java/io/fd/honeycomb/lisp/translate/read/dump/executor/LocatorDumpExecutorTest.java105
1 files changed, 105 insertions, 0 deletions
diff --git a/lisp/lisp2vpp/src/test/java/io/fd/honeycomb/lisp/translate/read/dump/executor/LocatorDumpExecutorTest.java b/lisp/lisp2vpp/src/test/java/io/fd/honeycomb/lisp/translate/read/dump/executor/LocatorDumpExecutorTest.java
new file mode 100644
index 000000000..efa655bf1
--- /dev/null
+++ b/lisp/lisp2vpp/src/test/java/io/fd/honeycomb/lisp/translate/read/dump/executor/LocatorDumpExecutorTest.java
@@ -0,0 +1,105 @@
+package io.fd.honeycomb.lisp.translate.read.dump.executor;
+
+
+import static io.fd.honeycomb.lisp.translate.read.dump.executor.params.LocatorDumpParams.LocatorDumpParamsBuilder;
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+
+import com.google.common.collect.ImmutableList;
+import io.fd.honeycomb.lisp.translate.read.dump.executor.params.LocatorDumpParams;
+import io.fd.honeycomb.translate.util.read.cache.exceptions.execution.DumpExecutionFailedException;
+import io.fd.honeycomb.translate.util.read.cache.exceptions.execution.i.DumpCallFailedException;
+import io.fd.honeycomb.translate.util.read.cache.exceptions.execution.i.DumpTimeoutException;
+import io.fd.honeycomb.vpp.test.read.JvppDumpExecutorTest;
+import java.util.concurrent.TimeoutException;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Captor;
+import org.mockito.Mockito;
+import org.openvpp.jvpp.core.dto.LispLocatorDetails;
+import org.openvpp.jvpp.core.dto.LispLocatorDetailsReplyDump;
+import org.openvpp.jvpp.core.dto.LispLocatorDump;
+
+
+public class LocatorDumpExecutorTest extends JvppDumpExecutorTest<LocatorDumpExecutor> {
+
+ @Captor
+ private ArgumentCaptor<LispLocatorDump> requestCaptor;
+
+ private LispLocatorDetailsReplyDump validDump;
+
+ @Before
+ public void init() {
+ validDump = new LispLocatorDetailsReplyDump();
+ LispLocatorDetails detail = new LispLocatorDetails();
+
+ detail.swIfIndex = 1;
+ detail.priority = 2;
+ detail.local = 1;
+ detail.weight = 3;
+ detail.isIpv6 = 0;
+ detail.context = 8;
+ detail.ipAddress = new byte[]{-64, -88, 4, 2};
+
+ validDump.lispLocatorDetails = ImmutableList.of(detail);
+ }
+
+ @Test
+ public void testExecuteDumpTimeout() throws Exception {
+ doThrowTimeoutExceptionWhen().lispLocatorDump(Mockito.any());
+ try {
+ getExecutor().executeDump(new LocatorDumpParamsBuilder().build());
+ } catch (Exception e) {
+ assertTrue(e instanceof DumpTimeoutException);
+ assertTrue(e.getCause() instanceof TimeoutException);
+ return;
+ }
+ fail("Test should have thrown exception");
+ }
+
+ @Test(expected = DumpCallFailedException.class)
+ public void testExecuteDumpHalted() throws DumpExecutionFailedException {
+ doThrowFailExceptionWhen().lispLocatorDump(Mockito.any());
+ getExecutor().executeDump(new LocatorDumpParamsBuilder().build());
+ }
+
+ @Test
+ public void testExecuteDump() throws DumpExecutionFailedException {
+ doReturnResponseWhen(validDump).lispLocatorDump(Mockito.any());
+
+ final LocatorDumpParams params = new LocatorDumpParamsBuilder().setLocatorSetIndex(5).build();
+
+ final LispLocatorDetailsReplyDump reply = getExecutor().executeDump(params);
+ verify(api, times(1)).lispLocatorDump(requestCaptor.capture());
+
+ final LispLocatorDump request = requestCaptor.getValue();
+
+ //check passed params
+ assertNotNull(request);
+ assertEquals(5, request.lsIndex);
+
+ //check result
+ assertNotNull(reply);
+ assertEquals(1, reply.lispLocatorDetails.size());
+
+ final LispLocatorDetails details = reply.lispLocatorDetails.get(0);
+ assertEquals(1, details.swIfIndex);
+ assertEquals(2, details.priority);
+ assertEquals(1, details.local);
+ assertEquals(3, details.weight);
+ assertEquals(0, details.isIpv6);
+ assertEquals(8, details.context);
+ assertArrayEquals(new byte[]{-64, -88, 4, 2}, details.ipAddress);
+ }
+
+ @Override
+ protected LocatorDumpExecutor initExecutor() {
+ return new LocatorDumpExecutor(api);
+ }
+} \ No newline at end of file