HONEYCOMB-154: update revison of models that changed since 16.09
[honeycomb.git] / lisp / lisp2vpp / src / test / java / io / fd / honeycomb / lisp / translate / read / BridgeDomainSubtableCustomizerTest.java
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.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.rev161214.eid.table.grouping.EidTable;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.eid.table.grouping.eid.table.VniTable;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.eid.table.grouping.eid.table.VniTableBuilder;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.eid.table.grouping.eid.table.VniTableKey;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.eid.table.grouping.eid.table.vni.table.BridgeDomainSubtable;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.eid.table.grouping.eid.table.vni.table.BridgeDomainSubtableBuilder;
23 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
24
25 public class BridgeDomainSubtableCustomizerTest
26         extends SubtableReaderTestCase<BridgeDomainSubtable, BridgeDomainSubtableBuilder> {
27
28     private InstanceIdentifier<BridgeDomainSubtable> validId;
29     private NamingContext bridgeDomainContext;
30
31     public BridgeDomainSubtableCustomizerTest() {
32         super(BridgeDomainSubtable.class, VniTableBuilder.class);
33     }
34
35     @Override
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);
40
41         defineMapping(mappingContext, "br-domain", expectedTableId, "br-domain-context");
42     }
43
44     @Test
45     public void testReadCurrentSuccessfull() throws ReadFailedException {
46         doReturnValidNonEmptyDataOnDump();
47         BridgeDomainSubtableBuilder builder = new BridgeDomainSubtableBuilder();
48         customizer.readCurrentAttributes(validId, builder, ctx);
49
50         verifyLispEidTableMapDumpCalled(L2);
51
52         final BridgeDomainSubtable subtable = builder.build();
53         assertNotNull(subtable);
54         assertEquals("br-domain", subtable.getBridgeDomainRef());
55     }
56
57
58     @Test
59     public void testReadCurrentEmptyDump() throws ReadFailedException {
60         doReturnEmptyDataOnDump();
61         BridgeDomainSubtableBuilder builder = new BridgeDomainSubtableBuilder();
62         customizer.readCurrentAttributes(validId, builder, ctx);
63
64         verifyLispEidTableMapDumpCalled(L2);
65
66         final BridgeDomainSubtable subtable = builder.build();
67         assertNotNull(subtable);
68         assertNull(subtable.getBridgeDomainRef());
69     }
70
71     @Test
72     public void testReadCurrentFailed() {
73         doThrowOnDump();
74         BridgeDomainSubtableBuilder builder = new BridgeDomainSubtableBuilder();
75         try {
76             customizer.readCurrentAttributes(validId, builder, ctx);
77         } catch (ReadFailedException e) {
78             assertTrue(e.getCause() instanceof VppCallbackException);
79             assertNull(builder.getBridgeDomainRef());
80             verifyLispEidTableMapDumpNotCalled();
81
82             return;
83         }
84
85         fail("Test should throw ReadFailedException");
86     }
87
88     @Test
89     public void testGetBuilder() {
90         final BridgeDomainSubtableBuilder builder = customizer.getBuilder(validId);
91
92         assertNotNull(builder);
93         assertNull(builder.getLocalMappings());
94         assertNull(builder.getRemoteMappings());
95         assertNull(builder.getBridgeDomainRef());
96     }
97
98     @Override
99     protected ReaderCustomizer<BridgeDomainSubtable, BridgeDomainSubtableBuilder> initCustomizer() {
100         return new BridgeDomainSubtableCustomizer(api, bridgeDomainContext);
101     }
102 }