172a89d0aec762a29e75e640e12a5d845d2b7c2a
[hc2vpp.git] /
1 package io.fd.honeycomb.lisp.translate.read.dump.executor;
2
3
4 import static org.junit.Assert.assertArrayEquals;
5 import static org.junit.Assert.assertEquals;
6 import static org.junit.Assert.assertNotNull;
7 import static org.junit.Assert.assertTrue;
8 import static org.junit.Assert.fail;
9
10 import com.google.common.collect.ImmutableList;
11 import io.fd.honeycomb.translate.util.read.cache.EntityDumpExecutor;
12 import io.fd.honeycomb.translate.util.read.cache.exceptions.execution.DumpExecutionFailedException;
13 import io.fd.honeycomb.translate.util.read.cache.exceptions.execution.i.DumpCallFailedException;
14 import io.fd.honeycomb.translate.util.read.cache.exceptions.execution.i.DumpTimeoutException;
15 import io.fd.honeycomb.vpp.test.read.JvppDumpExecutorTest;
16 import java.util.concurrent.TimeoutException;
17 import org.junit.Before;
18 import org.junit.Test;
19 import org.mockito.Mockito;
20 import io.fd.vpp.jvpp.core.dto.LispMapResolverDetails;
21 import io.fd.vpp.jvpp.core.dto.LispMapResolverDetailsReplyDump;
22
23
24 public class MapResolversDumpExecutorTest extends JvppDumpExecutorTest<MapResolversDumpExecutor> {
25
26     private LispMapResolverDetailsReplyDump validDump;
27
28     @Before
29     public void init() {
30         validDump = new LispMapResolverDetailsReplyDump();
31         final LispMapResolverDetails details = new LispMapResolverDetails();
32         details.isIpv6 = 0;
33         details.ipAddress = new byte[]{-64, -88, 5, 4};
34         details.context = 7;
35
36         validDump.lispMapResolverDetails = ImmutableList.of(details);
37     }
38
39     @Test
40     public void testExecuteDumpTimeout() throws Exception {
41         doThrowTimeoutExceptionWhen().lispMapResolverDump(Mockito.any());
42         try {
43             getExecutor().executeDump(EntityDumpExecutor.NO_PARAMS);
44         } catch (Exception e) {
45             assertTrue(e instanceof DumpTimeoutException);
46             assertTrue(e.getCause() instanceof TimeoutException);
47             return;
48         }
49         fail("Test should have thrown exception");
50     }
51
52     @Test(expected = DumpCallFailedException.class)
53     public void testExecuteDumpHalted() throws DumpExecutionFailedException {
54         doThrowFailExceptionWhen().lispMapResolverDump(Mockito.any());
55         getExecutor().executeDump(EntityDumpExecutor.NO_PARAMS);
56     }
57
58     @Test
59     public void testExecuteDump() throws DumpExecutionFailedException {
60         doReturnResponseWhen(validDump).lispMapResolverDump(Mockito.any());
61         final LispMapResolverDetailsReplyDump reply = getExecutor().executeDump(EntityDumpExecutor.NO_PARAMS);
62
63         assertNotNull(reply);
64         assertEquals(1, reply.lispMapResolverDetails.size());
65
66         final LispMapResolverDetails detail = reply.lispMapResolverDetails.get(0);
67         assertEquals(7, detail.context);
68         assertEquals(0, detail.isIpv6);
69         assertArrayEquals(new byte[]{-64, -88, 5, 4}, detail.ipAddress);
70     }
71
72     @Override
73     protected MapResolversDumpExecutor initExecutor() {
74         return new MapResolversDumpExecutor(api);
75     }
76 }