--- /dev/null
+package org.opendaylight.vpnservice.test;
+
+import java.math.BigInteger;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Collections;
+import java.util.concurrent.ExecutionException;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+
+import org.mockito.runners.MockitoJUnitRunner;
+import org.opendaylight.bgpmanager.FibDSWriter;
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
+import org.opendaylight.controller.md.sal.binding.test.AbstractDataBrokerTest;
+import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
+
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+
+import static org.junit.Assert.assertEquals;
+
+@RunWith(MockitoJUnitRunner.class)
+
+public class BgpManagerTest extends AbstractDataBrokerTest {
+ DataBroker dataBroker;
+ FibDSWriter bgpFibWriter = null ;
+ MockFibManager fibManager = null ;
+
+ @Before
+ public void setUp() throws Exception {
+ dataBroker = getDataBroker() ;
+ bgpFibWriter = new FibDSWriter(dataBroker);
+ fibManager = new MockFibManager(dataBroker);
+ }
+
+ @Test
+ public void testAddSinglePrefix() {
+ String rd = "101";
+ String prefix = "10.10.10.10/32";
+ String nexthop = "100.100.100.100";
+ int label = 1234;
+
+ bgpFibWriter.addFibEntryToDS(rd, prefix, nexthop, label);
+ assertEquals(1, fibManager.getDataChgCount());
+ }
+
+ @Test
+ public void testAddPrefixesInRd() {
+ String rd = "101";
+ String prefix = "10.10.10.10/32";
+ String nexthop = "100.100.100.100";
+ int label = 1234;
+
+ bgpFibWriter.addFibEntryToDS(rd, prefix, nexthop, label);
+ assertEquals(1, fibManager.getDataChgCount());
+
+ prefix = "10.10.10.11/32";
+ label = 3456;
+ bgpFibWriter.addFibEntryToDS(rd, prefix, nexthop, label);
+ assertEquals(2, fibManager.getDataChgCount());
+
+
+ }
+
+ @Test
+ public void testAddPrefixesAcrossRd() {
+ String rd = "101";
+ String prefix = "10.10.10.10/32";
+ String nexthop = "100.100.100.100";
+ int label = 1234;
+
+ bgpFibWriter.addFibEntryToDS(rd, prefix, nexthop, label);
+ assertEquals(1, fibManager.getDataChgCount());
+
+ rd = "102";
+ prefix = "10.10.10.11/32";
+ nexthop = "200.200.200.200";
+ label = 3456;
+ bgpFibWriter.addFibEntryToDS(rd, prefix, nexthop, label);
+ assertEquals(2, fibManager.getDataChgCount());
+
+ }
+
+
+ @Test
+ public void testRemovePrefix() {
+ String rd = "101";
+ String prefix = "10.10.10.10/32";
+ String nexthop = "100.100.100.100";
+ int label = 1234;
+
+ //add and then remove prefix
+ bgpFibWriter.addFibEntryToDS(rd, prefix, nexthop, label);
+ assertEquals(1, fibManager.getDataChgCount());
+ bgpFibWriter.removeFibEntryFromDS(rd, prefix);
+ assertEquals(0, fibManager.getDataChgCount());
+
+ }
+
+}