Add unit test for LISP address to check obj equality & construction

This commit adds various unit tests of LISP addresses in a way to
check object equality and construction.
This commit also makes minor changes to existing LISP address
classes to allow the test cases to pass all unit tests.

Change-Id: Ice9f9634bdd243baaf1eed1539ea8d5808dda01d
diff --git a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispIpv4Address.java b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispIpv4Address.java
index 3a47063..31d607b 100644
--- a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispIpv4Address.java
+++ b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispIpv4Address.java
@@ -17,6 +17,8 @@
 
 import org.onlab.packet.IpAddress;
 
+import java.util.Objects;
+
 import static com.google.common.base.Preconditions.checkArgument;
 
 /**
@@ -33,4 +35,23 @@
         super(address, AddressFamilyIdentifierEnum.IP);
         checkArgument(address.isIp4());
     }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj) {
+            return true;
+        }
+
+        if (obj instanceof LispIpv4Address) {
+            final LispIpv4Address other = (LispIpv4Address) obj;
+            return Objects.equals(this.address, other.address) &&
+                    Objects.equals(this.getAfi(), other.getAfi());
+        }
+        return false;
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(address, getAfi());
+    }
 }