HONEYCOMB-154: update revison of models that changed since 16.09
[honeycomb.git] / lisp / lisp2vpp / src / test / java / io / fd / honeycomb / lisp / translate / read / VniTableCustomizerTest.java
1 package io.fd.honeycomb.lisp.translate.read;
2
3
4 import static org.junit.Assert.assertEquals;
5 import static org.junit.Assert.assertNotNull;
6 import static org.junit.Assert.assertTrue;
7 import static org.junit.Assert.fail;
8 import static org.mockito.Mockito.when;
9
10 import com.google.common.collect.ImmutableList;
11 import io.fd.honeycomb.translate.read.ReadFailedException;
12 import io.fd.honeycomb.translate.spi.read.ReaderCustomizer;
13 import io.fd.honeycomb.vpp.test.read.ListReaderCustomizerTest;
14 import io.fd.vpp.jvpp.VppCallbackException;
15 import io.fd.vpp.jvpp.core.dto.LispEidTableVniDetails;
16 import io.fd.vpp.jvpp.core.dto.LispEidTableVniDetailsReplyDump;
17 import java.util.List;
18 import java.util.concurrent.CompletableFuture;
19 import org.junit.Before;
20 import org.junit.Test;
21 import org.mockito.Mockito;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.eid.table.grouping.EidTable;
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.eid.table.grouping.EidTableBuilder;
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.eid.table.grouping.eid.table.VniTable;
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.eid.table.grouping.eid.table.VniTableBuilder;
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.eid.table.grouping.eid.table.VniTableKey;
27 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
28
29 public class VniTableCustomizerTest extends ListReaderCustomizerTest<VniTable, VniTableKey, VniTableBuilder> {
30
31     private InstanceIdentifier<VniTable> validId;
32
33     public VniTableCustomizerTest() {
34         super(VniTable.class, EidTableBuilder.class);
35     }
36
37     @Before
38     public void init() {
39         validId = InstanceIdentifier.create(EidTable.class).child(VniTable.class, new VniTableKey(12L));
40     }
41
42     @Test
43     public void testReadAllSuccessfull() throws ReadFailedException {
44         whenLispEidTableVniDumpReturnValid();
45         final List<VniTableKey> keys = getCustomizer().getAllIds(validId, ctx);
46
47         assertNotNull(keys);
48         assertEquals(3, keys.size());
49         assertTrue(keys.contains(new VniTableKey(12L)));
50         assertTrue(keys.contains(new VniTableKey(14L)));
51         assertTrue(keys.contains(new VniTableKey(16L)));
52     }
53
54     @Test
55     public void testReadAllFailed() {
56         whenLispEidTableVniDumpThrowException();
57         try {
58             getCustomizer().getAllIds(validId, ctx);
59         } catch (ReadFailedException e) {
60             assertTrue(e.getCause() instanceof VppCallbackException);
61             return;
62         }
63
64         fail("Test should have thrown ReadFailedException");
65     }
66
67     @Test
68     public void testReadAttributes() throws ReadFailedException {
69         whenLispEidTableVniDumpReturnValid();
70         VniTableBuilder builder = new VniTableBuilder();
71
72         customizer.readCurrentAttributes(validId, builder, ctx);
73
74         final VniTable table = builder.build();
75         assertNotNull(table);
76         assertEquals(12L, table.getVirtualNetworkIdentifier().longValue());
77     }
78
79     private void whenLispEidTableVniDumpReturnValid() {
80
81         LispEidTableVniDetailsReplyDump dump = new LispEidTableVniDetailsReplyDump();
82         LispEidTableVniDetails details1 = new LispEidTableVniDetails();
83         details1.vni = 14;
84
85         LispEidTableVniDetails details2 = new LispEidTableVniDetails();
86         details2.vni = 12;
87
88         LispEidTableVniDetails details3 = new LispEidTableVniDetails();
89         details3.vni = 16;
90
91         dump.lispEidTableVniDetails = ImmutableList.of(details1, details2, details3);
92
93         when(api.lispEidTableVniDump(Mockito.any())).thenReturn(CompletableFuture.completedFuture(dump));
94     }
95
96     private void whenLispEidTableVniDumpThrowException() {
97         when(api.lispEidTableVniDump(Mockito.any()))
98                 .thenReturn(failedFuture());
99     }
100
101     @Override
102     protected ReaderCustomizer<VniTable, VniTableBuilder> initCustomizer() {
103         return new VniTableCustomizer(api);
104     }
105 }