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
8 package org.opendaylight.protocol.bgp.rib.spi;
11 * TODO: Remove, instead use Common Rib Support test
13 public class AbstractRIBSupportTest {
14 /* private final ContainerNode ipv4p = ImmutableContainerNodeBuilder.create().withNodeIdentifier(new NodeIdentifier(Ipv4Prefixes.QNAME)).build();
15 private final ContainerNode destination = ImmutableContainerNodeBuilder.create().withNodeIdentifier(new NodeIdentifier(DestinationIpv4.QNAME)).addChild(this.ipv4p).build();
16 private final ChoiceNode choiceNode = ImmutableChoiceNodeBuilder.create().withNodeIdentifier(new NodeIdentifier(DestinationType.QNAME)).addChild(this.destination).build();
17 static ContainerNode dest;
19 private final RIBSupport testSupport = new AbstractRIBSupport(Ipv4RoutesCase.class, Ipv4Routes.class, Ipv4Route.class,
20 Ipv4AddressFamily.class, UnicastSubsequentAddressFamily.class, DestinationIpv4.QNAME) {
22 public ImmutableCollection<Class<? extends DataObject>> cacheableAttributeObjects() {
27 public ImmutableCollection<Class<? extends DataObject>> cacheableNlriObjects() {
33 protected DestinationType buildDestination(@Nonnull final Collection<MapEntryNode> routes) {
39 protected DestinationType buildWithdrawnDestination(@Nonnull final Collection<MapEntryNode> routes) {
44 protected void processDestination(final DOMDataWriteTransaction tx, final YangInstanceIdentifier routesPath, final ContainerNode destination, final ContainerNode attributes, final ApplyRoute applyFunction) {
49 public boolean isComplexRoute() {
55 private DOMDataWriteTransaction tx;
58 public void testRouteAttributesIdentifier() {
59 assertEquals(new NodeIdentifier(QName.create(Ipv4Routes.QNAME, Attributes.QNAME.getLocalName())), this.testSupport.routeAttributesIdentifier());
63 public void testChangedRoutes() {
64 final QName TEST_QNAME = QName.create("urn:opendaylight:params:xml:ns:yang:bgp-inet:test", "2015-03-05", "test");
65 final YangInstanceIdentifier writePath = YangInstanceIdentifier.of(TEST_QNAME);
67 final YangInstanceIdentifier.NodeWithValue nodeIdentifier = new YangInstanceIdentifier.NodeWithValue(Ipv4Route.QNAME, "route");
68 final LeafSetEntryNode<Object> routeEntry = ImmutableLeafSetEntryNodeBuilder.create().withNodeIdentifier(nodeIdentifier).withValue("route").build();
69 final LeafSetNode<Object> route = ImmutableLeafSetNodeBuilder.create().withNodeIdentifier(new NodeIdentifier(Ipv4Route.QNAME)).withChild(routeEntry).build();
70 ContainerNode routes = ImmutableContainerNodeBuilder.create().withNodeIdentifier(new YangInstanceIdentifier.NodeIdentifier(Ipv4Routes.QNAME))
71 .withChild(route).build();
73 final ContainerNode routesContainer = ImmutableContainerNodeBuilder.create().addChild(routes).
74 withNodeIdentifier(new NodeIdentifier(TEST_QNAME)).build();
75 final DataTreeCandidate candidate = DataTreeCandidates.fromNormalizedNode(writePath, routesContainer);
76 final Collection<DataTreeCandidateNode> output = this.testSupport.changedRoutes(candidate.getRootNode());
78 Assert.assertFalse(output.isEmpty());
79 assertEquals(nodeIdentifier.toString(), output.iterator().next().getIdentifier().toString());
84 public void testRoutePath() {
85 final YangInstanceIdentifier routePath = YangInstanceIdentifier.of(Routes.QNAME);
86 final NodeIdentifier routeId = new NodeIdentifier(Ipv4Route.QNAME);
87 final String result = "/(urn:opendaylight:params:xml:ns:yang:bgp-rib?revision=2013-09-25)routes/(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)ipv4-routes/ipv4-route/ipv4-route";
88 assertEquals(result, this.testSupport.routePath(routePath, routeId).toString());
92 public void testDeleteRoutes() {
93 final ContainerNode advertised = ImmutableContainerNodeBuilder.create().addChild(this.choiceNode).withNodeIdentifier(new NodeIdentifier(WithdrawnRoutes.QNAME)).build();
94 final ContainerNode nlri = ImmutableContainerNodeBuilder.create().addChild(advertised).withNodeIdentifier(new NodeIdentifier(Nlri.QNAME)).build();
95 this.testSupport.deleteRoutes(null, null, nlri);
96 assertEquals(dest, this.destination);
100 public void testPutRoutes() {
101 final ContainerNode advertised = ImmutableContainerNodeBuilder.create().addChild(this.choiceNode).withNodeIdentifier(new NodeIdentifier(AdvertizedRoutes.QNAME)).build();
102 final ContainerNode nlri = ImmutableContainerNodeBuilder.create().addChild(advertised).withNodeIdentifier(new NodeIdentifier(Nlri.QNAME)).build();
103 this.testSupport.putRoutes(null, null, nlri, null);
104 assertEquals(dest, this.destination);