7ad71302c4ba0c0c4dd17c32d4487c450252107d
[honeycomb.git] / lisp / lisp2vpp / src / test / java / io / fd / honeycomb / lisp / translate / read / InterfaceCustomizerTest.java
1 package io.fd.honeycomb.lisp.translate.read;
2
3 import static org.junit.Assert.assertEquals;
4 import static org.mockito.Mockito.when;
5
6 import com.google.common.collect.ImmutableList;
7 import io.fd.honeycomb.translate.read.ReadFailedException;
8 import io.fd.honeycomb.translate.spi.read.ReaderCustomizer;
9 import io.fd.honeycomb.translate.vpp.util.NamingContext;
10 import io.fd.honeycomb.vpp.test.read.ListReaderCustomizerTest;
11 import java.util.List;
12 import org.junit.Before;
13 import org.junit.Test;
14 import org.mockito.Mockito;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev160520.locator.sets.grouping.LocatorSets;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev160520.locator.sets.grouping.locator.sets.LocatorSet;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev160520.locator.sets.grouping.locator.sets.LocatorSetBuilder;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev160520.locator.sets.grouping.locator.sets.LocatorSetKey;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev160520.locator.sets.grouping.locator.sets.locator.set.Interface;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev160520.locator.sets.grouping.locator.sets.locator.set.InterfaceBuilder;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev160520.locator.sets.grouping.locator.sets.locator.set.InterfaceKey;
22 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
23 import io.fd.vpp.jvpp.core.dto.LispLocatorDetails;
24 import io.fd.vpp.jvpp.core.dto.LispLocatorDetailsReplyDump;
25
26 public class InterfaceCustomizerTest
27         extends ListReaderCustomizerTest<Interface, InterfaceKey, InterfaceBuilder> {
28
29     public InterfaceCustomizerTest() {
30         super(Interface.class, LocatorSetBuilder.class);
31     }
32
33     private InstanceIdentifier<Interface> validId;
34
35     @Before
36     public void init() {
37         validId = InstanceIdentifier.create(LocatorSets.class).child(LocatorSet.class, new LocatorSetKey("loc-set-1"))
38                 .child(Interface.class, new InterfaceKey("interface-1"));
39
40         //mappings
41         defineMappings();
42         //dump data
43         defineDumpData();
44     }
45
46     private void defineDumpData() {
47         final LispLocatorDetailsReplyDump dump = new LispLocatorDetailsReplyDump();
48
49         final LispLocatorDetails detail1 = new LispLocatorDetails();
50         detail1.swIfIndex = 1;
51         detail1.ipAddress = new byte[]{-64, -88, 2, 1};
52         detail1.isIpv6 = 0;
53         detail1.local = 0;
54         detail1.priority = 1;
55         detail1.weight = 2;
56
57         final LispLocatorDetails detail2 = new LispLocatorDetails();
58         detail2.swIfIndex = 2;
59         detail2.ipAddress = new byte[]{-64, -88, 2, 2};
60         detail2.isIpv6 = 0;
61         detail2.local = 0;
62         detail2.priority = 2;
63         detail2.weight = 3;
64
65         dump.lispLocatorDetails = ImmutableList.of(detail1, detail2);
66
67         when(api.lispLocatorDump(Mockito.any())).thenReturn(future(dump));
68     }
69
70     private void defineMappings() {
71         defineMapping(mappingContext, "interface-1", 1, "interface-context");
72         defineMapping(mappingContext, "interface-2", 2, "interface-context");
73         defineMapping(mappingContext, "loc-set-1", 3, "locator-set-context");
74     }
75
76     @Test
77     public void testGetAllIds() throws ReadFailedException {
78
79         final List<InterfaceKey> keys = getCustomizer().getAllIds(validId, ctx);
80
81         assertEquals(2, keys.size());
82         assertEquals("interface-1", keys.get(0).getInterfaceRef());
83         assertEquals("interface-2", keys.get(1).getInterfaceRef());
84     }
85
86     @Test
87     public void testReadCurrentAttributes() throws ReadFailedException {
88         InterfaceBuilder builder = new InterfaceBuilder();
89         getCustomizer().readCurrentAttributes(validId, builder, ctx);
90
91         final Interface iface = builder.build();
92         assertEquals("interface-1", iface.getInterfaceRef());
93         assertEquals("interface-1", iface.getKey().getInterfaceRef());
94
95     }
96
97     @Override
98     protected ReaderCustomizer<Interface, InterfaceBuilder> initCustomizer() {
99         return new InterfaceCustomizer(api, new NamingContext("interface", "interface-context"),
100                 new NamingContext("loc-set", "locator-set-context"));
101     }
102 }