5902028fea25e7924ca506fe494570b407ca14c0
[hc2vpp.git] /
1 package io.fd.honeycomb.lisp.translate.read;
2
3
4 import static io.fd.honeycomb.lisp.translate.read.dump.executor.params.SubtableDumpParams.MapLevel.L2;
5 import static org.junit.Assert.assertEquals;
6 import static org.junit.Assert.assertNotNull;
7 import static org.junit.Assert.assertNull;
8 import static org.junit.Assert.assertTrue;
9 import static org.junit.Assert.fail;
10
11 import io.fd.honeycomb.lisp.translate.read.trait.SubtableReaderTestCase;
12 import io.fd.honeycomb.translate.read.ReadFailedException;
13 import io.fd.honeycomb.translate.spi.read.ReaderCustomizer;
14 import io.fd.honeycomb.translate.util.read.cache.exceptions.execution.i.DumpCallFailedException;
15 import io.fd.honeycomb.translate.vpp.util.NamingContext;
16 import io.fd.vpp.jvpp.VppCallbackException;
17 import org.junit.Test;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev160520.eid.table.grouping.EidTable;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev160520.eid.table.grouping.eid.table.VniTable;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev160520.eid.table.grouping.eid.table.VniTableBuilder;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev160520.eid.table.grouping.eid.table.VniTableKey;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev160520.eid.table.grouping.eid.table.vni.table.BridgeDomainSubtable;
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev160520.eid.table.grouping.eid.table.vni.table.BridgeDomainSubtableBuilder;
24 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
25
26 public class BridgeDomainSubtableCustomizerTest
27         extends SubtableReaderTestCase<BridgeDomainSubtable, BridgeDomainSubtableBuilder> {
28
29     private InstanceIdentifier<BridgeDomainSubtable> validId;
30     private NamingContext bridgeDomainContext;
31
32     public BridgeDomainSubtableCustomizerTest() {
33         super(BridgeDomainSubtable.class, VniTableBuilder.class);
34     }
35
36     @Override
37     protected void setUp() throws Exception {
38         bridgeDomainContext = new NamingContext("br", "br-domain-context");
39         validId = InstanceIdentifier.create(EidTable.class).child(VniTable.class, new VniTableKey(expectedVni))
40                 .child(BridgeDomainSubtable.class);
41
42         defineMapping(mappingContext, "br-domain", expectedTableId, "br-domain-context");
43     }
44
45     @Test
46     public void testReadCurrentSuccessfull() throws ReadFailedException {
47         doReturnValidNonEmptyDataOnDump();
48         BridgeDomainSubtableBuilder builder = new BridgeDomainSubtableBuilder();
49         customizer.readCurrentAttributes(validId, builder, ctx);
50
51         verifyLispEidTableMapDumpCalled(L2);
52
53         final BridgeDomainSubtable subtable = builder.build();
54         assertNotNull(subtable);
55         assertEquals("br-domain", subtable.getBridgeDomainRef());
56     }
57
58
59     @Test
60     public void testReadCurrentEmptyDump() throws ReadFailedException {
61         doReturnEmptyDataOnDump();
62         BridgeDomainSubtableBuilder builder = new BridgeDomainSubtableBuilder();
63         customizer.readCurrentAttributes(validId, builder, ctx);
64
65         verifyLispEidTableMapDumpCalled(L2);
66
67         final BridgeDomainSubtable subtable = builder.build();
68         assertNotNull(subtable);
69         assertNull(subtable.getBridgeDomainRef());
70     }
71
72     @Test
73     public void testReadCurrentFailed() {
74         doThrowOnDump();
75         BridgeDomainSubtableBuilder builder = new BridgeDomainSubtableBuilder();
76         try {
77             customizer.readCurrentAttributes(validId, builder, ctx);
78         } catch (ReadFailedException e) {
79             assertTrue(e.getCause() instanceof DumpCallFailedException);
80             assertTrue(e.getCause().getCause() instanceof VppCallbackException);
81             assertNull(builder.getBridgeDomainRef());
82             verifyLispEidTableMapDumpNotCalled();
83
84             return;
85         }
86
87         fail("Test should throw ReadFailedException");
88     }
89
90     @Test
91     public void testGetBuilder() {
92         final BridgeDomainSubtableBuilder builder = customizer.getBuilder(validId);
93
94         assertNotNull(builder);
95         assertNull(builder.getLocalMappings());
96         assertNull(builder.getRemoteMappings());
97         assertNull(builder.getBridgeDomainRef());
98     }
99
100     @Override
101     protected ReaderCustomizer<BridgeDomainSubtable, BridgeDomainSubtableBuilder> initCustomizer() {
102         return new BridgeDomainSubtableCustomizer(api, bridgeDomainContext);
103     }
104 }