HONEYCOMB-154: update revison of models that changed since 16.09
[honeycomb.git] / lisp / lisp2vpp / src / test / java / io / fd / honeycomb / lisp / translate / write / BridgeDomainCustomizerTest.java
1 package io.fd.honeycomb.lisp.translate.write;
2
3 import static org.junit.Assert.assertEquals;
4 import static org.junit.Assert.assertTrue;
5 import static org.junit.Assert.fail;
6
7 import io.fd.honeycomb.lisp.translate.write.trait.SubtableWriterTestCase;
8 import io.fd.honeycomb.translate.vpp.util.NamingContext;
9 import io.fd.honeycomb.translate.write.WriteFailedException;
10 import io.fd.vpp.jvpp.VppCallbackException;
11 import org.junit.Before;
12 import org.junit.Test;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.eid.table.grouping.EidTable;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.eid.table.grouping.eid.table.VniTable;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.eid.table.grouping.eid.table.VniTableKey;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.eid.table.grouping.eid.table.vni.table.BridgeDomainSubtable;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.eid.table.grouping.eid.table.vni.table.BridgeDomainSubtableBuilder;
18 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
19
20 public class BridgeDomainCustomizerTest extends SubtableWriterTestCase {
21
22     private BridgeDomainSubtableCustomizer customizer;
23     private InstanceIdentifier<BridgeDomainSubtable> validId;
24     private BridgeDomainSubtable validData;
25     private NamingContext bridgeDomainContext;
26
27     @Before
28     public void init() {
29         bridgeDomainContext = new NamingContext("br", "bridge-domain-context");
30         customizer = new BridgeDomainSubtableCustomizer(api, bridgeDomainContext);
31         validId = InstanceIdentifier.create(EidTable.class).child(VniTable.class, new VniTableKey(12L))
32                 .child(BridgeDomainSubtable.class);
33         validData = new BridgeDomainSubtableBuilder().setBridgeDomainRef("br-domain").build();
34         defineMapping(mappingContext, "br-domain", 10, "bridge-domain-context");
35     }
36
37     @Test
38     public void testWriteSuccessfull() throws WriteFailedException {
39         whenAddDelEidTableAddDelMapSuccess();
40         customizer.writeCurrentAttributes(validId, validData, writeContext);
41         verifyAddDelEidTableAddDelMapInvokedCorrectly(1, 12, 10, 1);
42     }
43
44     @Test
45     public void testWriteFailed() throws WriteFailedException {
46         whenAddDelEidTableAddDelMapFail();
47
48         try {
49             customizer.writeCurrentAttributes(validId, validData, writeContext);
50         } catch (Exception e) {
51             assertTrue(e instanceof WriteFailedException);
52
53             final WriteFailedException realException = ((WriteFailedException) e);
54             assertEquals(validId, realException.getFailedId());
55             assertTrue(e.getCause() instanceof VppCallbackException);
56             return;
57         }
58
59         fail("Test should throw exception");
60     }
61
62     @Test(expected = UnsupportedOperationException.class)
63     public void testUpdate() throws WriteFailedException {
64         customizer.updateCurrentAttributes(validId, validData, validData, writeContext);
65     }
66
67     @Test
68     public void testDeleteSuccessfull() throws WriteFailedException {
69         whenAddDelEidTableAddDelMapSuccess();
70         customizer.deleteCurrentAttributes(validId, validData, writeContext);
71         verifyAddDelEidTableAddDelMapInvokedCorrectly(0, 12, 10, 1);
72     }
73
74     @Test
75     public void testDeleteFailed() {
76         whenAddDelEidTableAddDelMapFail();
77
78         try {
79             customizer.deleteCurrentAttributes(validId, validData, writeContext);
80         } catch (Exception e) {
81             assertTrue(e instanceof WriteFailedException);
82
83             final WriteFailedException realException = ((WriteFailedException) e);
84             assertEquals(validId, realException.getFailedId());
85             assertTrue(e.getCause() instanceof VppCallbackException);
86             return;
87         }
88
89         fail("Test should throw exception");
90     }
91
92 }