VOL-2901 Unit tests and necessary updates on stats manager
in the scope of VOL-2796

Change-Id: I95d6fd0241d2c54a5a122d58917c6dc45e5abcf7
diff --git a/app/src/main/java/org/opencord/cordmcast/impl/CordMcast.java b/app/src/main/java/org/opencord/cordmcast/impl/CordMcast.java
index f1b9429..d107f05 100644
--- a/app/src/main/java/org/opencord/cordmcast/impl/CordMcast.java
+++ b/app/src/main/java/org/opencord/cordmcast/impl/CordMcast.java
@@ -241,7 +241,7 @@
             log.error("Unable to parse configuration parameter for priority", ne);
             priority = DEFAULT_PRIORITY;
         }
-        cordMcastStatisticsService.setVlanValue(assignedVlan());
+        feedStatsServiceWithVlanConfigValues();
     }
 
     @Deactivate
@@ -256,6 +256,14 @@
         log.info("Stopped");
     }
 
+    /**
+     * Updates the stats service with current VLAN config values.
+     */
+    private void feedStatsServiceWithVlanConfigValues() {
+        cordMcastStatisticsService.setVlanValue(assignedVlan());
+        cordMcastStatisticsService.setInnerVlanValue(assignedInnerVlan());
+    }
+
     public void clearGroups() {
         mcastLock();
         try {
@@ -574,6 +582,7 @@
         if (config.egressInnerVlan() != null) {
             mcastInnerVlan = config.egressInnerVlan();
         }
+        feedStatsServiceWithVlanConfigValues();
     }
 
     private class NextKey {
diff --git a/app/src/main/java/org/opencord/cordmcast/impl/CordMcastStatisticsManager.java b/app/src/main/java/org/opencord/cordmcast/impl/CordMcastStatisticsManager.java
index a5715f4..1044adc 100644
--- a/app/src/main/java/org/opencord/cordmcast/impl/CordMcastStatisticsManager.java
+++ b/app/src/main/java/org/opencord/cordmcast/impl/CordMcastStatisticsManager.java
@@ -78,6 +78,7 @@
     private ScheduledExecutorService executor;
 
     private VlanId vlanId;
+    private VlanId innerVlanId;
 
     @Activate
     public void activate(ComponentContext context) {
@@ -119,7 +120,7 @@
         routes.forEach(route -> {
             mcastData.add(new CordMcastStatistics(route.group(),
                     route.source().isEmpty() ? "*" : route.source().get().toString(),
-                    vlanId));
+                    vlanId, innerVlanId));
         });
         return mcastData;
     }
@@ -129,6 +130,11 @@
         vlanId = vlanValue;
     }
 
+    @Override
+    public void setInnerVlanValue(VlanId innerVlanValue) {
+        innerVlanId = innerVlanValue;
+    }
+
     /**
      * pushing mcast stat data as event.
      */
@@ -141,7 +147,9 @@
                     " | Source: " +
                     (mcastStats.getSourceAddress() != null ? mcastStats.getSourceAddress().toString() : "null") +
                     " | Vlan: " +
-                    (mcastStats.getVlanId() != null ? mcastStats.getVlanId().toString() : "null"));
+                    (mcastStats.getVlanId() != null ? mcastStats.getVlanId().toString() : "null") +
+                    " | InnerVlan: " +
+                    (mcastStats.getInnerVlanId() != null ? mcastStats.getInnerVlanId().toString() : "null"));
         });
         post(new CordMcastStatisticsEvent(CordMcastStatisticsEvent.Type.STATUS_UPDATE, routeList));
     }