HONEYCOMB-154: update revison of models that changed since 16.09
[honeycomb.git] / lisp / lisp2vpp / src / test / java / io / fd / honeycomb / lisp / translate / read / LocalMappingCustomizerTest.java
1 package io.fd.honeycomb.lisp.translate.read;
2
3 import static io.fd.honeycomb.lisp.translate.read.dump.executor.params.MappingsDumpParams.EidType.IPV4;
4 import static org.junit.Assert.assertEquals;
5 import static org.junit.Assert.assertNotNull;
6 import static org.mockito.Matchers.any;
7 import static org.mockito.Mockito.when;
8
9 import com.google.common.collect.ImmutableList;
10 import io.fd.honeycomb.lisp.context.util.EidMappingContext;
11 import io.fd.honeycomb.lisp.translate.read.dump.executor.params.MappingsDumpParams;
12 import io.fd.honeycomb.lisp.translate.util.EidTranslator;
13 import io.fd.honeycomb.translate.MappingContext;
14 import io.fd.honeycomb.translate.spi.read.ReaderCustomizer;
15 import io.fd.honeycomb.translate.vpp.util.NamingContext;
16 import io.fd.honeycomb.vpp.test.read.ListReaderCustomizerTest;
17 import java.util.List;
18 import org.junit.Test;
19 import org.mockito.Mock;
20 import org.opendaylight.yang.gen.v1.urn.honeycomb.params.xml.ns.yang.eid.mapping.context.rev160801.contexts.eid.mapping.context.mappings.mapping.EidBuilder;
21 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
22 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.Ipv4;
23 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.Ipv4Builder;
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.MappingId;
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.dp.subtable.grouping.LocalMappings;
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.dp.subtable.grouping.LocalMappingsBuilder;
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.dp.subtable.grouping.local.mappings.LocalMapping;
28 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.dp.subtable.grouping.local.mappings.LocalMappingBuilder;
29 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.dp.subtable.grouping.local.mappings.LocalMappingKey;
30 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.dp.subtable.grouping.local.mappings.local.mapping.Eid;
31 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.eid.table.grouping.EidTable;
32 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.eid.table.grouping.eid.table.VniTable;
33 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.eid.table.grouping.eid.table.VniTableKey;
34 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.eid.table.grouping.eid.table.vni.table.BridgeDomainSubtable;
35 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev161214.eid.table.grouping.eid.table.vni.table.VrfSubtable;
36 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
37 import io.fd.vpp.jvpp.core.dto.LispEidTableDetails;
38 import io.fd.vpp.jvpp.core.dto.LispEidTableDetailsReplyDump;
39
40 public class LocalMappingCustomizerTest extends
41         ListReaderCustomizerTest<LocalMapping, LocalMappingKey, LocalMappingBuilder> implements EidTranslator {
42
43     private static final Ipv4
44             EID_ADDRESS = new Ipv4Builder().setIpv4(new Ipv4Address("192.168.2.1")).build();
45
46     @Mock
47     private EidMappingContext localMappingContext;
48
49     private InstanceIdentifier<LocalMapping> emptyIdentifier;
50     private InstanceIdentifier<LocalMapping> validIdentifier;
51
52     public LocalMappingCustomizerTest() {
53         super(LocalMapping.class, LocalMappingsBuilder.class);
54     }
55
56
57     public void setUp() {
58         emptyIdentifier = InstanceIdentifier.create(EidTable.class)
59                 .child(VniTable.class, new VniTableKey(12L))
60                 .child(VrfSubtable.class)
61                 .child(LocalMappings.class)
62                 .child(LocalMapping.class);
63
64         validIdentifier = InstanceIdentifier.create(EidTable.class)
65                 .child(VniTable.class, new VniTableKey(12L))
66                 .child(VrfSubtable.class)
67                 .child(LocalMappings.class)
68                 .child(LocalMapping.class, new LocalMappingKey(new MappingId("local-mapping")));
69
70         defineDumpData();
71         defineMappings();
72     }
73
74     private void defineDumpData() {
75         LispEidTableDetailsReplyDump replyDump = new LispEidTableDetailsReplyDump();
76         LispEidTableDetails detail = new LispEidTableDetails();
77         detail.action = 0;
78         detail.authoritative = 1;
79         detail.context = 4;
80         detail.eid = new byte[]{-64, -88, 2, 1};
81         detail.eidPrefixLen = 32;
82         detail.eidType = (byte) IPV4.getValue();
83         detail.isLocal = 1;
84         detail.locatorSetIndex = 1;
85         detail.ttl = 7;
86         detail.vni = 12;
87
88         replyDump.lispEidTableDetails = ImmutableList.of(detail);
89         when(api.lispEidTableDump(any())).thenReturn(future(replyDump));
90     }
91
92     private void defineMappings() {
93         //eid mapping
94
95         when(localMappingContext.getId(any(Eid.class), any(MappingContext.class)))
96                 .thenReturn(new MappingId("local-mapping"));
97         when(localMappingContext.containsEid(new MappingId("local-mapping"), mappingContext)).thenReturn(true);
98         when(localMappingContext.getEid(new MappingId("local-mapping"), mappingContext)).thenReturn(new EidBuilder()
99                 .setAddress(EID_ADDRESS).build());
100         //naming context for locator
101         defineMapping(mappingContext, "loc-set", 1, "locator-set-context");
102     }
103
104     @Test
105     public void readCurrentAttributes() throws Exception {
106         LocalMappingBuilder builder = new LocalMappingBuilder();
107         getCustomizer().readCurrentAttributes(validIdentifier, builder, ctx);
108
109         final LocalMapping mapping = builder.build();
110
111         assertNotNull(mapping);
112         assertEquals(true, compareAddresses(EID_ADDRESS, mapping.getEid().getAddress()));
113         assertEquals("loc-set", mapping.getLocatorSet());
114     }
115
116     @Test
117     public void getAllIds() throws Exception {
118         final List<LocalMappingKey> keys = getCustomizer().getAllIds(emptyIdentifier, ctx);
119
120         assertEquals(1, keys.size());
121         assertEquals("local-mapping", keys.get(0).getId().getValue());
122     }
123
124     @Override
125     protected ReaderCustomizer<LocalMapping, LocalMappingBuilder> initCustomizer() {
126         return new LocalMappingCustomizer(api, new NamingContext("loc", "locator-set-context"), localMappingContext);
127     }
128 }