Make Pair class final to ensure immutability

- Follow the Java convention for immutable objects
- Test the immutability by using ImmutableClassChecker

Change-Id: I0514f5b620800f8c0d20d0d130cb0f214a7344c8
diff --git a/src/main/java/net/onrc/onos/core/util/Pair.java b/src/main/java/net/onrc/onos/core/util/Pair.java
index c5ab775..66b60b8 100644
--- a/src/main/java/net/onrc/onos/core/util/Pair.java
+++ b/src/main/java/net/onrc/onos/core/util/Pair.java
@@ -11,7 +11,7 @@
  * @param <F> the type of the first value
  * @param <S> the type type of the second value
  */
-public class Pair<F, S> {
+public final class Pair<F, S> {
     private final F first;        // The first value in the pair
     private final S second;       // The second value in the pair
 
diff --git a/src/test/java/net/onrc/onos/core/util/PairTest.java b/src/test/java/net/onrc/onos/core/util/PairTest.java
new file mode 100644
index 0000000..954b01f
--- /dev/null
+++ b/src/test/java/net/onrc/onos/core/util/PairTest.java
@@ -0,0 +1,19 @@
+package net.onrc.onos.core.util;
+
+import org.junit.Test;
+
+import static net.onrc.onos.core.util.ImmutableClassChecker.assertThatClassIsImmutable;
+
+/**
+ * PairTest class tests the immutability of Pair class when immutable objects are supplied.
+ */
+public class PairTest {
+    /**
+     * Tests Pair class satisfies the guideline for immutable objects
+     * by using ImmutableClassChecker framework.
+     */
+    @Test
+    public void pairClassFollowsGuidelineForImmutableObject() {
+        assertThatClassIsImmutable(Pair.class);
+    }
+}