Rib support refactoring II
[bgpcep.git] / bgp / linkstate / src / test / java / org / opendaylight / protocol / bgp / linkstate / LinkstateRIBSupportTest.java
1 /*
2  * Copyright (c) 2015 Cisco Systems, Inc. and others.  All rights reserved.
3  *
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
7  */
8 package org.opendaylight.protocol.bgp.linkstate;
9
10 /**
11  * TODO: Remove, instead use Common Rib Support test
12  */
13 public class LinkstateRIBSupportTest {
14 /*
15     private static final Ipv4Address ipv4 = new Ipv4Address("42.42.42.42");
16     private static final NodeIdentifier ROUTES_NODE_ID = new NodeIdentifier(Routes.QNAME);
17     final LinkstateRIBSupport link = LinkstateRIBSupport.getInstance();
18     final List<MapEntryNode> linkList = new ArrayList<>();
19     private List<YangInstanceIdentifier> routes;
20
21     @Mock
22     private DOMDataWriteTransaction tx;
23
24     @Before
25     public void setUp() {
26         MockitoAnnotations.initMocks(this);
27         routes = new ArrayList<>();
28         Mockito.doAnswer(new Answer<Object>() {
29             @Override
30             public Object answer(final InvocationOnMock invocation) throws Throwable {
31                 final Object[] args = invocation.getArguments();
32                 LinkstateRIBSupportTest.this.routes.add((YangInstanceIdentifier) args[1]);
33                 return args[1];
34             }
35         }).when(this.tx).put(Mockito.any(LogicalDatastoreType.class), Mockito.any(YangInstanceIdentifier.class), Mockito.any(NormalizedNode.class));
36
37         Mockito.doAnswer(new Answer<Object>() {
38             @Override
39             public Object answer(final InvocationOnMock invocation) throws Throwable {
40                 final Object[] args = invocation.getArguments();
41                 LinkstateRIBSupportTest.this.routes.remove(args[1]);
42                 return args[1];
43             }
44         }).when(this.tx).delete(Mockito.any(LogicalDatastoreType.class), Mockito.any(YangInstanceIdentifier.class));
45     }
46
47     @Test
48     public void testbuildReach() throws BGPParsingException {
49         final CNextHop hop = new Ipv4NextHopCaseBuilder().setIpv4NextHop(new Ipv4NextHopBuilder().setGlobal(ipv4).build()).build();
50         final MpReachNlri result = link.buildReach(linkList, hop);
51         assertEquals(LinkstateAddressFamily.class, result.getAfi());
52         assertEquals(LinkstateSubsequentAddressFamily.class, result.getSafi());
53         assertEquals(new Ipv4NextHopCaseBuilder().setIpv4NextHop(new Ipv4NextHopBuilder().setGlobal(new Ipv4Address("42.42.42.42")).build()).build(), result.getCNextHop());
54     }
55
56     @Test
57     public void testBuildUnreach() {
58         final MpUnreachNlri result = link.buildUnreach(linkList);
59         assertEquals(LinkstateAddressFamily.class, result.getAfi());
60         assertEquals(LinkstateSubsequentAddressFamily.class, result.getSafi());
61     }
62
63     @Test
64     public void testDestinationRoutes() {
65         final YangInstanceIdentifier yangIdentifier = YangInstanceIdentifier.of(Routes.QNAME);
66
67         final NodeNlriParser nodeParser = new NodeNlriParser();
68         SimpleNlriTypeRegistry.getInstance().registerNlriTypeSerializer(NodeCase.class, nodeParser);
69
70         final DataContainerNodeAttrBuilder<NodeIdentifier, UnkeyedListEntryNode> linkstateBI = ImmutableUnkeyedListEntryNodeBuilder.create();
71         linkstateBI.withNodeIdentifier(new NodeIdentifier(CLinkstateDestination.QNAME));
72
73         final ImmutableLeafNodeBuilder<String> protocolId = new ImmutableLeafNodeBuilder<>();
74         protocolId.withNodeIdentifier(LinkstateNlriParser.PROTOCOL_ID_NID);
75         protocolId.withValue("isis-level2");
76         linkstateBI.addChild(protocolId.build());
77
78         final ImmutableLeafNodeBuilder<BigInteger> identifier = new ImmutableLeafNodeBuilder<>();
79         identifier.withNodeIdentifier(LinkstateNlriParser.IDENTIFIER_NID);
80         identifier.withValue(BigInteger.ONE);
81         linkstateBI.addChild(identifier.build());
82
83         final DataContainerNodeBuilder<NodeIdentifier, ChoiceNode> objectType = Builders.choiceBuilder();
84         objectType.withNodeIdentifier(LinkstateNlriParser.OBJECT_TYPE_NID);
85
86         final DataContainerNodeAttrBuilder<NodeIdentifier, ContainerNode> nodeDescriptors = Builders.containerBuilder();
87         nodeDescriptors.withNodeIdentifier(LinkstateNlriParser.NODE_DESCRIPTORS_NID);
88
89         final ImmutableLeafNodeBuilder<Long> asNumber = new ImmutableLeafNodeBuilder<>();
90         asNumber.withNodeIdentifier(NodeNlriParser.AS_NUMBER_NID);
91         asNumber.withValue(72L);
92         nodeDescriptors.addChild(asNumber.build());
93
94         final ImmutableLeafNodeBuilder<Long> areaID = new ImmutableLeafNodeBuilder<>();
95         areaID.withNodeIdentifier(NodeNlriParser.AREA_NID);
96         areaID.withValue(2697513L);
97         nodeDescriptors.addChild(areaID.build());
98
99         final ImmutableLeafNodeBuilder<Long> domainID = new ImmutableLeafNodeBuilder<>();
100         domainID.withNodeIdentifier(NodeNlriParser.DOMAIN_NID);
101         domainID.withValue(0x28282828L);
102         nodeDescriptors.addChild(domainID.build());
103
104         final DataContainerNodeBuilder<NodeIdentifier, ChoiceNode> crouterId = Builders.choiceBuilder();
105         crouterId.withNodeIdentifier(new NodeIdentifier(CRouterIdentifier.QNAME));
106
107         final DataContainerNodeAttrBuilder<NodeIdentifier, ContainerNode> isisNode = Builders.containerBuilder();
108         isisNode.withNodeIdentifier(NodeNlriParser.ISIS_PSEUDONODE_NID);
109
110         final ImmutableLeafNodeBuilder<byte[]> isoSystemID = new ImmutableLeafNodeBuilder<>();
111         isoSystemID.withNodeIdentifier(NodeNlriParser.ISO_SYSTEM_NID);
112         isoSystemID.withValue(new byte[]{0, 0, 0, 0, 0, (byte) 0x39});
113
114         final DataContainerNodeAttrBuilder<NodeIdentifier, ContainerNode> isisRouter = Builders.containerBuilder();
115         isisRouter.withNodeIdentifier(NodeNlriParser.ISIS_ROUTER_NID);
116         isisRouter.addChild(isoSystemID.build());
117
118         isisNode.addChild(isisRouter.build());
119         isisNode.addChild(Builders.leafBuilder().withNodeIdentifier(NodeNlriParser.PSN_NID).withValue((short) 5).build());
120         crouterId.addChild(isisNode.build());
121
122         nodeDescriptors.addChild(crouterId.build());
123         objectType.addChild(nodeDescriptors.build());
124         linkstateBI.addChild(objectType.build());
125
126         final UnkeyedListNode routes = ImmutableUnkeyedListNodeBuilder.create()
127             .withNodeIdentifier(new NodeIdentifier(CLinkstateDestination.QNAME))
128             .addChild(linkstateBI.build())
129             .build();
130
131         final ContainerNode destination = ImmutableContainerNodeBuilder.create().
132             addChild(routes)
133             .withNodeIdentifier(new NodeIdentifier(CLinkstateDestination.QNAME))
134             .build();
135
136         final ContainerNode attributes = ImmutableContainerNodeBuilder.create()
137             .withNodeIdentifier(new NodeIdentifier(Attributes.QNAME))
138             .build();
139
140         link.putDestinationRoutes(tx, yangIdentifier, destination, attributes, ROUTES_NODE_ID);
141
142         Assert.assertEquals(1, this.routes.size());
143
144         link.deleteDestinationRoutes(tx, yangIdentifier, destination, ROUTES_NODE_ID);
145
146         Assert.assertEquals(0, this.routes.size());
147     }
148 */
149 }