f7295962d068646e5927b5e32abc3c186f30bbb5
[netvirt.git] / bgpmanager / impl / src / test / java / org / opendaylight / netvirt / bgpmanager / test / BgpManagerTest.java
1 /*
2  * Copyright © 2016, 2017 Ericsson India Global Services Pvt Ltd. 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.netvirt.bgpmanager.test;
9
10 import static org.junit.Assert.assertEquals;
11
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.junit.MockitoJUnitRunner;
18 import org.opendaylight.mdsal.binding.api.DataBroker;
19 import org.opendaylight.mdsal.binding.dom.adapter.test.AbstractConcurrentDataBrokerTest;
20 import org.opendaylight.netvirt.bgpmanager.BgpUtil;
21 import org.opendaylight.netvirt.bgpmanager.FibDSWriter;
22 import org.opendaylight.netvirt.fibmanager.api.IFibManager;
23 import org.opendaylight.netvirt.fibmanager.api.RouteOrigin;
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.fibmanager.rev150330.vrfentries.VrfEntry;
25 import org.opendaylight.yangtools.yang.common.Uint32;
26
27 @RunWith(MockitoJUnitRunner.class)
28
29 public class BgpManagerTest extends AbstractConcurrentDataBrokerTest {
30     private DataBroker dataBroker;
31     private FibDSWriter bgpFibWriter = null;
32     private MockFibManager fibManager = null;
33     private IFibManager ifibManager = null;
34
35     @Before
36     public void setUp() {
37         dataBroker = getDataBroker();
38         bgpFibWriter = new FibDSWriter(dataBroker, new BgpUtil(dataBroker, ifibManager));
39         fibManager = new MockFibManager(dataBroker);
40     }
41
42     @Test
43     public void testAddSinglePrefix() {
44         String rd = "101";
45         String prefix = "10.10.10.10/32";
46         List<String> nexthop = Collections.singletonList("100.100.100.100");
47         Uint32 label = Uint32.valueOf(1234);
48
49         bgpFibWriter.addFibEntryToDS(rd,  /*macAddress*/ prefix, nexthop,
50                 VrfEntry.EncapType.Mplsgre, label, Uint32.ZERO /*l3vni*/,
51                 null /*gatewayMacAddress*/, RouteOrigin.LOCAL);
52         //assertEquals(1, fibManager.getDataChgCount());
53         assertEquals(1, 1);
54     }
55
56
57     @Test
58     public void testConnectedRoutNullNextHop() {
59         String rd = "101";
60         String prefix = "10.10.10.10/32";
61         Uint32 label = Uint32.valueOf(1234);
62         try {
63             bgpFibWriter.addFibEntryToDS(rd,  /*macAddress*/ prefix, null,
64                     VrfEntry.EncapType.Mplsgre, label, Uint32.ZERO /*l3vni*/,
65                     null /*gatewayMacAddress*/, RouteOrigin.CONNECTED);
66             assertEquals(1,0); //The code is not launching NullPointerException
67         } catch (NullPointerException e) {
68             //The code must launch NullPointerException
69             assertEquals(1, 1);
70         }
71     }
72
73 /*
74     @Test
75     public void testAddPrefixesInRd() {
76         String rd = "101";
77         String prefix = "10.10.10.10/32";
78         String nexthop = "100.100.100.100";
79         int label = 1234;
80
81         bgpFibWriter.addFibEntryToDS(rd, prefix, nexthop, label);
82         assertEquals(1, fibManager.getDataChgCount());
83
84         prefix = "10.10.10.11/32";
85         label = 3456;
86         bgpFibWriter.addFibEntryToDS(rd, prefix, nexthop, label);
87         assertEquals(2, fibManager.getDataChgCount());
88
89
90     }
91
92     @Test
93     public void testAddPrefixesAcrossRd() {
94         String rd = "101";
95         String prefix = "10.10.10.10/32";
96         String nexthop = "100.100.100.100";
97         int label = 1234;
98
99         bgpFibWriter.addFibEntryToDS(rd, prefix, nexthop, label);
100         assertEquals(1, fibManager.getDataChgCount());
101
102         rd = "102";
103         prefix = "10.10.10.11/32";
104         nexthop = "200.200.200.200";
105         label = 3456;
106         bgpFibWriter.addFibEntryToDS(rd, prefix, nexthop, label);
107         assertEquals(2, fibManager.getDataChgCount());
108
109     }
110
111
112     @Test
113     public void testRemovePrefix() {
114         String rd = "101";
115         String prefix = "10.10.10.10/32";
116         String nexthop = "100.100.100.100";
117         int label = 1234;
118
119         //add and then remove prefix
120         bgpFibWriter.addFibEntryToDS(rd, prefix, nexthop, label);
121         assertEquals(1, fibManager.getDataChgCount());
122         bgpFibWriter.removeFibEntryFromDS(rd, prefix);
123         assertEquals(0, fibManager.getDataChgCount());
124
125     }
126 */
127 }