Initial implementation of SNAT functionality.

Change-Id: I9094755c6d25a62e527976b9bf275d7c1e2a3f86
diff --git a/apps/kubevirt-networking/app/src/test/java/org/onosproject/kubevirtnetworking/codec/KubevirtRouterCodecTest.java b/apps/kubevirt-networking/app/src/test/java/org/onosproject/kubevirtnetworking/codec/KubevirtRouterCodecTest.java
index f2b2470..3af305c 100644
--- a/apps/kubevirt-networking/app/src/test/java/org/onosproject/kubevirtnetworking/codec/KubevirtRouterCodecTest.java
+++ b/apps/kubevirt-networking/app/src/test/java/org/onosproject/kubevirtnetworking/codec/KubevirtRouterCodecTest.java
@@ -83,6 +83,7 @@
                 .internal(ImmutableSet.of("vlan-1"))
                 .external(ImmutableMap.of("10.10.10.20", "flat-1"))
                 .peerRouter(peerRouter)
+                .electedGateway("gatewayNode")
                 .build();
 
         ObjectNode routerJson = kubevirtRouterCodec.encode(router, context);
@@ -96,10 +97,13 @@
         assertEquals("router-1", router.name());
         assertEquals("Example Virtual Router", router.description());
         assertTrue(router.enableSnat());
+        assertEquals("192.168.10.5",
+                router.external().keySet().stream().findAny().orElse(null));
         assertEquals("external-network", router.external().get("192.168.10.5"));
         assertTrue(router.internal().contains("vxlan-network-1"));
         assertTrue(router.internal().contains("vxlan-network-2"));
         assertEquals("192.168.10.1", router.peerRouter().ipAddress().toString());
+        assertEquals("gatewayNode", router.electedGateway());
     }
 
     private KubevirtRouter getKubevirtRouter(String resourceName) throws IOException {
diff --git a/apps/kubevirt-networking/app/src/test/resources/org/onosproject/kubevirtnetworking/codec/KubevirtRouter.json b/apps/kubevirt-networking/app/src/test/resources/org/onosproject/kubevirtnetworking/codec/KubevirtRouter.json
index 44fd556..14e60ec 100644
--- a/apps/kubevirt-networking/app/src/test/resources/org/onosproject/kubevirtnetworking/codec/KubevirtRouter.json
+++ b/apps/kubevirt-networking/app/src/test/resources/org/onosproject/kubevirtnetworking/codec/KubevirtRouter.json
@@ -12,5 +12,6 @@
   ],
   "peerRouter": {
     "ip": "192.168.10.1"
-  }
+  },
+  "gateway": "gatewayNode"
 }
\ No newline at end of file