BUG-3840 : introduced Supported tables
[bgpcep.git] / bgp / rib-spi / src / test / java / org / opendaylight / protocol / bgp / rib / spi / RibSupportUtilsTest.java
1 package org.opendaylight.protocol.bgp.rib.spi;
2
3 import static org.junit.Assert.assertEquals;
4 import static org.junit.Assert.assertFalse;
5 import static org.junit.Assert.assertTrue;
6 import java.lang.reflect.Constructor;
7 import java.lang.reflect.InvocationTargetException;
8 import java.util.Map;
9 import org.junit.Test;
10 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev130925.bgp.rib.rib.peer.SupportedTables;
11 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev130925.rib.Tables;
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev130925.rib.TablesKey;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.AddressFamily;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.Ipv4AddressFamily;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.SubsequentAddressFamily;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.UnicastSubsequentAddressFamily;
17 import org.opendaylight.yangtools.yang.binding.util.BindingReflections;
18 import org.opendaylight.yangtools.yang.common.QName;
19 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
20
21 public class RibSupportUtilsTest {
22
23     @Test(expected=UnsupportedOperationException.class)
24     public void testPrivateConstructor() throws Throwable {
25         final Constructor<RibSupportUtils> c = RibSupportUtils.class.getDeclaredConstructor(null);
26         c.setAccessible(true);
27         try {
28             c.newInstance();
29         } catch (final InvocationTargetException e) {
30             throw e.getCause();
31         }
32     }
33
34     @Test
35     public void testYangTablesKey() {
36         final Class<? extends AddressFamily> afi = Ipv4AddressFamily.class;
37         final Class<? extends SubsequentAddressFamily> safi = UnicastSubsequentAddressFamily.class;
38         final TablesKey k = new TablesKey(afi, safi);
39         final NodeIdentifierWithPredicates p = RibSupportUtils.toYangTablesKey(k);
40         final Map<QName, Object> m = p.getKeyValues();
41         assertFalse(m.isEmpty());
42         assertEquals(Tables.QNAME, p.getNodeType());
43         assertTrue(m.containsValue(BindingReflections.findQName(afi)));
44         assertTrue(m.containsValue(BindingReflections.findQName(safi)));
45     }
46
47     @Test
48     public void testYangKey() {
49         final Class<? extends AddressFamily> afi = Ipv4AddressFamily.class;
50         final Class<? extends SubsequentAddressFamily> safi = UnicastSubsequentAddressFamily.class;
51         final TablesKey k = new TablesKey(afi, safi);
52         final NodeIdentifierWithPredicates p = RibSupportUtils.toYangKey(SupportedTables.QNAME, k);
53         final Map<QName, Object> m = p.getKeyValues();
54         assertFalse(m.isEmpty());
55         assertEquals(SupportedTables.QNAME, p.getNodeType());
56         assertTrue(m.containsValue(BindingReflections.findQName(afi)));
57         assertTrue(m.containsValue(BindingReflections.findQName(safi)));
58     }
59 }