[ONOS-5599] Store meter features into MeterStore

Change-Id: I22f7366b87cad6fc706b6ff7b0ccff1a0e85ad6a
diff --git a/incubator/net/src/test/java/org/onosproject/incubator/net/meter/impl/MeterManagerTest.java b/incubator/net/src/test/java/org/onosproject/incubator/net/meter/impl/MeterManagerTest.java
index 05832c7..a81004f 100644
--- a/incubator/net/src/test/java/org/onosproject/incubator/net/meter/impl/MeterManagerTest.java
+++ b/incubator/net/src/test/java/org/onosproject/incubator/net/meter/impl/MeterManagerTest.java
@@ -35,8 +35,10 @@
 import org.onosproject.net.meter.Band;
 import org.onosproject.net.meter.DefaultBand;
 import org.onosproject.net.meter.DefaultMeter;
+import org.onosproject.net.meter.DefaultMeterFeatures;
 import org.onosproject.net.meter.DefaultMeterRequest;
 import org.onosproject.net.meter.Meter;
+import org.onosproject.net.meter.MeterFeaturesKey;
 import org.onosproject.net.meter.MeterId;
 import org.onosproject.net.meter.MeterOperation;
 import org.onosproject.net.meter.MeterOperations;
@@ -51,13 +53,12 @@
 import org.onosproject.store.service.TestStorageService;
 
 import java.util.Collections;
+import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
 
 import static org.hamcrest.Matchers.is;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertThat;
-import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.*;
 import static org.onosproject.net.NetTestTools.APP_ID;
 import static org.onosproject.net.NetTestTools.did;
 import static org.onosproject.net.NetTestTools.injectEventDispatcher;
@@ -96,6 +97,24 @@
         TestUtils.setField(meterStore, "clusterService", new TestClusterService());
         TestUtils.setField(meterStore, "mastershipService", new TestMastershipService());
         meterStore.activate();
+        meterStore.storeMeterFeatures(DefaultMeterFeatures.builder().forDevice(did("1"))
+                .withMaxMeters(255L)
+                .withBandTypes(new HashSet<>())
+                .withUnits(new HashSet<>())
+                .hasStats(false)
+                .hasBurst(false)
+                .withMaxBands((byte) 0)
+                .withMaxColors((byte) 0)
+                .build());
+        meterStore.storeMeterFeatures(DefaultMeterFeatures.builder().forDevice(did("2"))
+                .withMaxMeters(2)
+                .withBandTypes(new HashSet<>())
+                .withUnits(new HashSet<>())
+                .hasBurst(false)
+                .hasStats(false)
+                .withMaxBands((byte) 0)
+                .withMaxColors((byte) 0)
+                .build());
 
         manager = new MeterManager();
         manager.store = meterStore;
@@ -195,6 +214,14 @@
         assertThat(manager.getMeter(did("2"), MeterId.meterId(1)), is(m2));
     }
 
+    @Test
+    public void testMeterFeatures() {
+        assertEquals(meterStore.getMaxMeters(MeterFeaturesKey.key(did("1"))), 255L);
+        assertEquals(meterStore.getMaxMeters(MeterFeaturesKey.key(did("2"))), 2);
+    }
+
+
+
     public class TestApplicationId extends DefaultApplicationId {
         public TestApplicationId(int id, String name) {
             super(id, name);