[SEBA-37] Added 11 Statistics counters for Accounting Server operations

Change-Id: I7dda193129e5dffe62907775aaf8dfdc5b3f1bf1
diff --git a/app/src/test/java/org/opencord/aaa/impl/AaaIntegrationTest.java b/app/src/test/java/org/opencord/aaa/impl/AaaIntegrationTest.java
index 8ded2f8..0275b13 100644
--- a/app/src/test/java/org/opencord/aaa/impl/AaaIntegrationTest.java
+++ b/app/src/test/java/org/opencord/aaa/impl/AaaIntegrationTest.java
@@ -25,6 +25,7 @@
 import org.onosproject.net.config.Config;
 import org.onosproject.net.config.NetworkConfigRegistryAdapter;
 import org.opencord.aaa.AaaConfig;
+import org.opencord.aaa.impl.AaaTestBase.MockCfgService;
 
 import static org.hamcrest.Matchers.is;
 import static org.hamcrest.Matchers.notNullValue;
@@ -60,7 +61,8 @@
         aaa.netCfgService = new TestNetworkConfigRegistry();
         aaa.coreService = new CoreServiceAdapter();
         aaa.packetService = new MockPacketService();
-        aaa.activate();
+        aaa.cfgService = new MockCfgService();
+        aaa.activate(new AaaTestBase.MockComponentContext());
     }
 
     /**
diff --git a/app/src/test/java/org/opencord/aaa/impl/AaaManagerTest.java b/app/src/test/java/org/opencord/aaa/impl/AaaManagerTest.java
index 8827c1a..7303257 100644
--- a/app/src/test/java/org/opencord/aaa/impl/AaaManagerTest.java
+++ b/app/src/test/java/org/opencord/aaa/impl/AaaManagerTest.java
@@ -54,13 +54,13 @@
     static final String BAD_IP_ADDRESS = "198.51.100.0";
 
     private AaaManager aaaManager;
+    private AaaStatisticsManager aaaStatisticsManager;
 
     class AaaManagerWithoutRadiusServer extends AaaManager {
         protected void sendRadiusPacket(RADIUS radiusPacket, InboundPacket inPkt) {
             savePacket(radiusPacket);
         }
     }
-
     /**
      * Mocks the AAAConfig class to force usage of an unroutable address for the
      * RADIUS server.
@@ -92,7 +92,6 @@
 
     public static class TestEventDispatcher extends DefaultEventSinkRegistry
             implements EventDeliveryService {
-
         @Override
         @SuppressWarnings("unchecked")
         public synchronized void post(Event event) {
@@ -136,7 +135,8 @@
         radius.setPayload(eap);
         radius.setAttribute(RADIUSAttribute.RADIUS_ATTR_EAP_MESSAGE,
                             eap.serialize());
-
+        radius.setAttribute(RADIUSAttribute.RADIUS_ATTR_MESSAGE_AUTH,
+                aaaManager.radiusSecret.getBytes());
         return radius;
     }
 
@@ -165,8 +165,13 @@
         aaaManager.packetService = new MockPacketService();
         aaaManager.deviceService = new TestDeviceService();
         aaaManager.sadisService = new MockSadisService();
+        aaaManager.cfgService = new MockCfgService();
+        aaaStatisticsManager = new AaaStatisticsManager();
+        TestUtils.setField(aaaStatisticsManager, "eventDispatcher", new TestEventDispatcher());
+        aaaStatisticsManager.activate();
+        aaaManager.aaaStatisticsManager = this.aaaStatisticsManager;
         TestUtils.setField(aaaManager, "eventDispatcher", new TestEventDispatcher());
-        aaaManager.activate();
+        aaaManager.activate(new AaaTestBase.MockComponentContext());
     }
 
     /**
@@ -174,7 +179,7 @@
      */
     @After
     public void tearDown() {
-        aaaManager.deactivate();
+        aaaManager.deactivate(new AaaTestBase.MockComponentContext());
     }
 
     /**
diff --git a/app/src/test/java/org/opencord/aaa/impl/AaaTestBase.java b/app/src/test/java/org/opencord/aaa/impl/AaaTestBase.java
index 2e21ea3..b49fbc4 100644
--- a/app/src/test/java/org/opencord/aaa/impl/AaaTestBase.java
+++ b/app/src/test/java/org/opencord/aaa/impl/AaaTestBase.java
@@ -23,7 +23,8 @@
 import org.onlab.packet.Ip4Address;
 import org.onlab.packet.MacAddress;
 import org.onlab.packet.VlanId;
-
+import org.onosproject.cfg.ComponentConfigService;
+import org.onosproject.cfg.ConfigProperty;
 import org.onosproject.net.Annotations;
 import org.onosproject.net.device.DeviceServiceAdapter;
 import org.onosproject.net.ConnectPoint;
@@ -42,9 +43,16 @@
 import org.opencord.sadis.BaseInformationService;
 import org.opencord.sadis.SadisService;
 import org.opencord.sadis.SubscriberAndDeviceInformation;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+import org.osgi.service.component.ComponentContext;
+import org.osgi.service.component.ComponentInstance;
 
 import java.nio.ByteBuffer;
 import java.security.MessageDigest;
+import java.util.Dictionary;
+import java.util.Hashtable;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Set;
@@ -100,6 +108,67 @@
             }
         }
     }
+    class MockComponentContext implements ComponentContext {
+
+                @Override
+                public Dictionary<String, Object> getProperties() {
+                        Dictionary<String, Object> cfgDict = new Hashtable<String, Object>();
+                        cfgDict.put("statisticsGenerationEvent", 20);
+                        return cfgDict;
+                }
+
+                @Override
+                public Object locateService(String name) {
+                        // TODO Auto-generated method stub
+                        return null;
+                }
+
+                @Override
+                public Object locateService(String name, ServiceReference reference) {
+                        // TODO Auto-generated method stub
+                        return null;
+                }
+
+                @Override
+                public Object[] locateServices(String name) {
+                        // TODO Auto-generated method stub
+                        return null;
+                }
+
+                @Override
+                public BundleContext getBundleContext() {
+                        // TODO Auto-generated method stub
+                        return null;
+                }
+
+                @Override
+                public Bundle getUsingBundle() {
+                        // TODO Auto-generated method stub
+                        return null;
+                }
+
+                @Override
+                public ComponentInstance getComponentInstance() {
+                        // TODO Auto-generated method stub
+                        return null;
+                }
+
+                @Override
+                public void enableComponent(String name) {
+                        // TODO Auto-generated method stub
+                }
+
+                @Override
+                public void disableComponent(String name) {
+                       // TODO Auto-generated method stub
+                }
+
+                @Override
+                public ServiceReference getServiceReference() {
+                       // TODO Auto-generated method stub
+                       return null;
+                }
+    }
 
     /**
      * Mocks the DeviceService.
@@ -173,6 +242,55 @@
         }
     }
 
+    final class MockCfgService implements ComponentConfigService {
+        @Override
+        public Set<String> getComponentNames() {
+            // TODO Auto-generated method stub
+            return null;
+        }
+
+        @Override
+        public void registerProperties(Class<?> componentClass) {
+            // TODO Auto-generated method stub
+        }
+
+        @Override
+        public void unregisterProperties(Class<?> componentClass, boolean clear) {
+            // TODO Auto-generated method stub
+        }
+
+        @Override
+        public Set<ConfigProperty> getProperties(String componentName) {
+           return null;
+        }
+
+        @Override
+        public void setProperty(String componentName, String name, String value) {
+            // TODO Auto-generated method stub
+        }
+
+        @Override
+        public void preSetProperty(String componentName, String name, String value) {
+            // TODO Auto-generated method stub
+        }
+
+        @Override
+        public void preSetProperty(String componentName, String name, String value, boolean override) {
+            // TODO Auto-generated method stub
+        }
+
+        @Override
+        public void unsetProperty(String componentName, String name) {
+            // TODO Auto-generated method stub
+        }
+
+        @Override
+        public ConfigProperty getProperty(String componentName, String attribute) {
+           return null;
+        }
+
+}
+
     final class MockSubService implements BaseInformationService<SubscriberAndDeviceInformation> {
         private final VlanId clientCtag = VlanId.vlanId((short) 999);
         private final VlanId clientStag = VlanId.vlanId((short) 111);