1 package io.fd.honeycomb.lisp.translate.read;
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;
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.vpp.util.NamingContext;
15 import io.fd.vpp.jvpp.VppCallbackException;
16 import org.junit.Test;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev160520.eid.table.grouping.EidTable;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev160520.eid.table.grouping.eid.table.VniTable;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev160520.eid.table.grouping.eid.table.VniTableBuilder;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev160520.eid.table.grouping.eid.table.VniTableKey;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev160520.eid.table.grouping.eid.table.vni.table.BridgeDomainSubtable;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev160520.eid.table.grouping.eid.table.vni.table.BridgeDomainSubtableBuilder;
23 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
25 public class BridgeDomainSubtableCustomizerTest
26 extends SubtableReaderTestCase<BridgeDomainSubtable, BridgeDomainSubtableBuilder> {
28 private InstanceIdentifier<BridgeDomainSubtable> validId;
29 private NamingContext bridgeDomainContext;
31 public BridgeDomainSubtableCustomizerTest() {
32 super(BridgeDomainSubtable.class, VniTableBuilder.class);
36 protected void setUp() throws Exception {
37 bridgeDomainContext = new NamingContext("br", "br-domain-context");
38 validId = InstanceIdentifier.create(EidTable.class).child(VniTable.class, new VniTableKey(expectedVni))
39 .child(BridgeDomainSubtable.class);
41 defineMapping(mappingContext, "br-domain", expectedTableId, "br-domain-context");
45 public void testReadCurrentSuccessfull() throws ReadFailedException {
46 doReturnValidNonEmptyDataOnDump();
47 BridgeDomainSubtableBuilder builder = new BridgeDomainSubtableBuilder();
48 customizer.readCurrentAttributes(validId, builder, ctx);
50 verifyLispEidTableMapDumpCalled(L2);
52 final BridgeDomainSubtable subtable = builder.build();
53 assertNotNull(subtable);
54 assertEquals("br-domain", subtable.getBridgeDomainRef());
59 public void testReadCurrentEmptyDump() throws ReadFailedException {
60 doReturnEmptyDataOnDump();
61 BridgeDomainSubtableBuilder builder = new BridgeDomainSubtableBuilder();
62 customizer.readCurrentAttributes(validId, builder, ctx);
64 verifyLispEidTableMapDumpCalled(L2);
66 final BridgeDomainSubtable subtable = builder.build();
67 assertNotNull(subtable);
68 assertNull(subtable.getBridgeDomainRef());
72 public void testReadCurrentFailed() {
74 BridgeDomainSubtableBuilder builder = new BridgeDomainSubtableBuilder();
76 customizer.readCurrentAttributes(validId, builder, ctx);
77 } catch (ReadFailedException e) {
78 assertTrue(e.getCause() instanceof VppCallbackException);
79 assertNull(builder.getBridgeDomainRef());
80 verifyLispEidTableMapDumpNotCalled();
85 fail("Test should throw ReadFailedException");
89 public void testGetBuilder() {
90 final BridgeDomainSubtableBuilder builder = customizer.getBuilder(validId);
92 assertNotNull(builder);
93 assertNull(builder.getLocalMappings());
94 assertNull(builder.getRemoteMappings());
95 assertNull(builder.getBridgeDomainRef());
99 protected ReaderCustomizer<BridgeDomainSubtable, BridgeDomainSubtableBuilder> initCustomizer() {
100 return new BridgeDomainSubtableCustomizer(api, bridgeDomainContext);