2 * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.protocol.bgp.rib.spi;
11 import static org.junit.Assert.assertEquals;
12 import static org.junit.Assert.assertFalse;
13 import static org.junit.Assert.assertTrue;
15 import com.google.common.collect.ImmutableMap;
17 import org.junit.Test;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev171207.PathId;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev171207.bgp.rib.rib.peer.SupportedTables;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev171207.rib.Tables;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev171207.rib.TablesKey;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.AddressFamily;
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.Ipv4AddressFamily;
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.SubsequentAddressFamily;
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.UnicastSubsequentAddressFamily;
26 import org.opendaylight.yangtools.yang.binding.util.BindingReflections;
27 import org.opendaylight.yangtools.yang.common.QName;
28 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
30 public class RibSupportUtilsTest {
31 private static final NodeIdentifierWithPredicates NII;
32 private static final NodeIdentifierWithPredicates NII_PATH;
33 private static final Class<? extends AddressFamily> AFI = Ipv4AddressFamily.class;
34 private static final Class<? extends SubsequentAddressFamily> SAFI = UnicastSubsequentAddressFamily.class;
35 private static final TablesKey TABLE_KEY = new TablesKey(Ipv4AddressFamily.class,
36 UnicastSubsequentAddressFamily.class);
37 private static final PathId PATH_ID = new PathId(10L);
40 final QName afi = QName.create("urn:opendaylight:params:xml:ns:yang:bgp-rib?revision=2017-12-07",
42 final QName safi = QName.create("urn:opendaylight:params:xml:ns:yang:bgp-rib?revision=2017-12-07",
44 NII = new NodeIdentifierWithPredicates(SupportedTables.QNAME, ImmutableMap.of(afi, Ipv4AddressFamily.QNAME,
45 safi, UnicastSubsequentAddressFamily.QNAME));
46 NII_PATH = new NodeIdentifierWithPredicates(SupportedTables.QNAME,
48 QName.create("urn:opendaylight:params:xml:ns:yang:bgp-multiprotocol?revision=2017-12-07",
49 "afi"), Ipv4AddressFamily.QNAME,
50 QName.create("urn:opendaylight:params:xml:ns:yang:bgp-multiprotocol?revision=2017-12-07",
51 "safi"), UnicastSubsequentAddressFamily.QNAME)
56 public void testYangTablesKey() {
57 final NodeIdentifierWithPredicates p = RibSupportUtils.toYangTablesKey(TABLE_KEY);
58 final Map<QName, Object> m = p.getKeyValues();
59 assertFalse(m.isEmpty());
60 assertEquals(Tables.QNAME, p.getNodeType());
61 assertTrue(m.containsValue(BindingReflections.findQName(AFI)));
62 assertTrue(m.containsValue(BindingReflections.findQName(SAFI)));
66 public void testYangKey() {
67 final NodeIdentifierWithPredicates p = RibSupportUtils.toYangKey(SupportedTables.QNAME, TABLE_KEY);
68 final Map<QName, Object> m = p.getKeyValues();
69 assertFalse(m.isEmpty());
70 assertEquals(SupportedTables.QNAME, p.getNodeType());
71 assertTrue(m.containsValue(BindingReflections.findQName(AFI)));
72 assertTrue(m.containsValue(BindingReflections.findQName(SAFI)));
76 public void toYangPathKey() {
77 final NodeIdentifierWithPredicates result = RibSupportUtils.toYangPathKey(SupportedTables.QNAME, AFI, SAFI);
78 assertEquals(NII_PATH.toString(), result.toString());
83 public void toYangKey() {
84 final NodeIdentifierWithPredicates result = RibSupportUtils.toYangKey(SupportedTables.QNAME, TABLE_KEY);
85 assertEquals(NII.toString(), result.toString());