2 * Copyright © 2016, 2017 Ericsson India Global Services Pvt Ltd. 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.netvirt.bgpmanager.test;
10 import static org.junit.Assert.assertEquals;
12 import java.util.Collections;
13 import java.util.List;
14 import org.junit.Before;
15 import org.junit.Test;
16 import org.junit.runner.RunWith;
17 import org.mockito.runners.MockitoJUnitRunner;
18 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
19 import org.opendaylight.controller.md.sal.binding.test.AbstractDataBrokerTest;
20 import org.opendaylight.netvirt.bgpmanager.BgpUtil;
21 import org.opendaylight.netvirt.bgpmanager.FibDSWriter;
22 import org.opendaylight.netvirt.fibmanager.api.RouteOrigin;
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.fibmanager.rev150330.vrfentries.VrfEntry;
25 @RunWith(MockitoJUnitRunner.class)
27 public class BgpManagerTest extends AbstractDataBrokerTest {
28 DataBroker dataBroker;
29 FibDSWriter bgpFibWriter = null;
30 MockFibManager fibManager = null;
33 public void setUp() throws Exception {
34 dataBroker = getDataBroker();
35 bgpFibWriter = new FibDSWriter(dataBroker, new BgpUtil(dataBroker));
36 fibManager = new MockFibManager(dataBroker);
40 public void testAddSinglePrefix() {
42 String prefix = "10.10.10.10/32";
43 List<String> nexthop = Collections.singletonList("100.100.100.100");
46 bgpFibWriter.addFibEntryToDS(rd, /*macAddress*/ prefix, nexthop,
47 VrfEntry.EncapType.Mplsgre, label, 0 /*l3vni*/, null /*gatewayMacAddress*/, RouteOrigin.LOCAL);
48 //assertEquals(1, fibManager.getDataChgCount());
54 public void testConnectedRoutNullNextHop() {
56 String prefix = "10.10.10.10/32";
59 bgpFibWriter.addFibEntryToDS(rd, /*macAddress*/ prefix, null,
60 VrfEntry.EncapType.Mplsgre, label, 0 /*l3vni*/, null /*gatewayMacAddress*/, RouteOrigin.CONNECTED);
61 assertEquals(1,0); //The code is not launching NullPointerException
62 } catch (NullPointerException e) {
63 //The code must launch NullPointerException
70 public void testAddPrefixesInRd() {
72 String prefix = "10.10.10.10/32";
73 String nexthop = "100.100.100.100";
76 bgpFibWriter.addFibEntryToDS(rd, prefix, nexthop, label);
77 assertEquals(1, fibManager.getDataChgCount());
79 prefix = "10.10.10.11/32";
81 bgpFibWriter.addFibEntryToDS(rd, prefix, nexthop, label);
82 assertEquals(2, fibManager.getDataChgCount());
88 public void testAddPrefixesAcrossRd() {
90 String prefix = "10.10.10.10/32";
91 String nexthop = "100.100.100.100";
94 bgpFibWriter.addFibEntryToDS(rd, prefix, nexthop, label);
95 assertEquals(1, fibManager.getDataChgCount());
98 prefix = "10.10.10.11/32";
99 nexthop = "200.200.200.200";
101 bgpFibWriter.addFibEntryToDS(rd, prefix, nexthop, label);
102 assertEquals(2, fibManager.getDataChgCount());
108 public void testRemovePrefix() {
110 String prefix = "10.10.10.10/32";
111 String nexthop = "100.100.100.100";
114 //add and then remove prefix
115 bgpFibWriter.addFibEntryToDS(rd, prefix, nexthop, label);
116 assertEquals(1, fibManager.getDataChgCount());
117 bgpFibWriter.removeFibEntryFromDS(rd, prefix);
118 assertEquals(0, fibManager.getDataChgCount());