Initial implementation of managing IPs for kubevirt spawned VMIs

Change-Id: I68127e1fe42a142765e7696d8ce80de16d3d94a9
diff --git a/apps/kubevirt-networking/api/src/test/java/org/onosproject/kubevirtnetworking/api/DefaultKubevirtNetworkTest.java b/apps/kubevirt-networking/api/src/test/java/org/onosproject/kubevirtnetworking/api/DefaultKubevirtNetworkTest.java
index 32ca958..1b39db8 100644
--- a/apps/kubevirt-networking/api/src/test/java/org/onosproject/kubevirtnetworking/api/DefaultKubevirtNetworkTest.java
+++ b/apps/kubevirt-networking/api/src/test/java/org/onosproject/kubevirtnetworking/api/DefaultKubevirtNetworkTest.java
@@ -22,6 +22,7 @@
 import org.onlab.packet.IpAddress;
 
 import static junit.framework.TestCase.assertEquals;
+import static junit.framework.TestCase.assertTrue;
 import static org.onlab.junit.ImmutableClassChecker.assertThatClassIsImmutable;
 import static org.onosproject.kubevirtnetworking.api.KubevirtNetwork.Type.FLAT;
 import static org.onosproject.kubevirtnetworking.api.KubevirtNetwork.Type.VXLAN;
@@ -128,4 +129,31 @@
         assertEquals(CIDR_1, network.cidr());
         assertEquals(new KubevirtIpPool(IP_POOL_START_1, IP_POOL_END_1), network.ipPool());
     }
+
+    /**
+     * Test IP address initialization.
+     */
+    @Test
+    public void testIpInitialization() {
+        KubevirtIpPool ipPool1 = network1.ipPool();
+        assertEquals(101, ipPool1.availableIps().size());
+        assertEquals(0, ipPool1.allocatedIps().size());
+    }
+
+    /**
+     * Test IP address allocation.
+     */
+    @Test
+    public void testIpAllocationAndRelease() throws Exception {
+        KubevirtIpPool ipPool1 = network1.ipPool();
+        IpAddress ip = ipPool1.allocateIp();
+        assertEquals(100, ipPool1.availableIps().size());
+        assertEquals(1, ipPool1.allocatedIps().size());
+        assertEquals(IpAddress.valueOf("10.10.10.100"), ip);
+
+        ipPool1.releaseIp(ip);
+        assertEquals(101, ipPool1.availableIps().size());
+        assertEquals(0, ipPool1.allocatedIps().size());
+        assertTrue(ipPool1.availableIps().contains(ip));
+    }
 }