BUG-5032: BGP Operational State
[bgpcep.git] / bgp / rib-impl / src / test / java / org / opendaylight / protocol / bgp / rib / impl / stats / rib / impl / BGPRenderStatsImplTest.java
index e95f5948d9926db228b0a8186be9258e61b1226c..efb32ed6d782f0c35187e340f8de6979cb8dcb41 100644 (file)
@@ -9,13 +9,19 @@
 package org.opendaylight.protocol.bgp.rib.impl.stats.rib.impl;
 
 import static org.junit.Assert.assertEquals;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.doReturn;
 
-import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
-import java.util.concurrent.atomic.LongAdder;
+import org.junit.Before;
 import org.junit.Test;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.opendaylight.controller.config.api.IdentityAttributeRef;
 import org.opendaylight.controller.config.yang.bgp.rib.impl.BgpRenderState;
 import org.opendaylight.controller.config.yang.bgp.rib.impl.LocRibRouteTable;
+import org.opendaylight.protocol.bgp.rib.spi.state.BGPRIBState;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.AsNumber;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.ZeroBasedCounter32;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev130925.RibId;
@@ -31,10 +37,20 @@ public class BGPRenderStatsImplTest {
     private static final ClusterIdentifier CLUSTER_ID = new ClusterIdentifier("192.168.1.2");
     private static final AsNumber AS = new AsNumber(0x10L);
     private static final ZeroBasedCounter32 COUTER = new ZeroBasedCounter32(0L);
+    private static final ZeroBasedCounter32 COUTER_ONE_ROUTE = new ZeroBasedCounter32(1L);
+    private final TablesKey tk = new TablesKey(Ipv4AddressFamily.class, UnicastSubsequentAddressFamily.class);
 
+    @Mock
+    private BGPRIBState bgpGlobalState;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+    }
     @Test
     public void getBgpRenderState() throws Exception {
-        final BGPRenderStatsImpl render = new BGPRenderStatsImpl(BGP_ID, RIB_ID, AS, CLUSTER_ID);
+        final BGPRenderStatsImpl render = new BGPRenderStatsImpl(BGP_ID, RIB_ID, AS, CLUSTER_ID, this.bgpGlobalState,
+            Collections.singleton(this.tk));
 
         final BgpRenderState renderStateExpected = new BgpRenderState();
         renderStateExpected.setRibId(RIB_ID);
@@ -43,20 +59,23 @@ public class BGPRenderStatsImplTest {
         renderStateExpected.setLocalAs(AS);
         renderStateExpected.setConfiguredPeerCount(COUTER);
         renderStateExpected.setConnectedPeerCount(COUTER);
-        final List<LocRibRouteTable> locRibRouteTableList = new ArrayList<>();
+        final LocRibRouteTable locRibTable = new LocRibRouteTable();
+        locRibTable.setAfi(new IdentityAttributeRef(Ipv4AddressFamily.QNAME.toString()));
+        locRibTable.setSafi(new IdentityAttributeRef(UnicastSubsequentAddressFamily.QNAME.toString()));
+        locRibTable.setRoutesCount(COUTER);
+        final List<LocRibRouteTable> locRibRouteTableList = Collections.singletonList(locRibTable);
         renderStateExpected.setLocRibRouteTable(locRibRouteTableList);
         renderStateExpected.setLocRibRoutesCount(COUTER);
+        doReturn(0L).when(this.bgpGlobalState).getPathCount(eq(this.tk));
 
         assertEquals(renderStateExpected, render.getBgpRenderState());
-        LongAdder counter = render.getLocRibRouteCounter().init(new TablesKey(Ipv4AddressFamily.class,
-            UnicastSubsequentAddressFamily.class));
-        counter.increment();
-        assertEquals(1L, counter.longValue());
-        counter = render.getConfiguredPeerCounter();
-        counter.increment();
-        assertEquals(1L, counter.longValue());
-        counter = render.getConnectedPeerCounter();
-        counter.increment();
-        assertEquals(1L, counter.longValue());
+        doReturn(1L).when(this.bgpGlobalState).getPathCount(eq(this.tk));
+        locRibTable.setRoutesCount(COUTER_ONE_ROUTE);
+        renderStateExpected.setLocRibRoutesCount(COUTER_ONE_ROUTE);
+        assertEquals(renderStateExpected, render.getBgpRenderState());
+        render.getConfiguredPeerCounter().increment();
+        assertEquals(1L, render.getConfiguredPeerCounter().longValue());
+        render.getConnectedPeerCounter().increment();
+        assertEquals(1L, render.getConnectedPeerCounter().longValue());
     }
 }
\ No newline at end of file