diff --git a/src/test/java/net/onrc/onos/core/util/LinkTupleTest.java b/src/test/java/net/onrc/onos/core/util/LinkTupleTest.java
index 06cce85..290b136 100644
--- a/src/test/java/net/onrc/onos/core/util/LinkTupleTest.java
+++ b/src/test/java/net/onrc/onos/core/util/LinkTupleTest.java
@@ -49,7 +49,7 @@
     /**
      * Tests to confirm constructors input validation.
      */
-    @Test(expected = IllegalArgumentException.class)
+    @Test(expected = NullPointerException.class)
     public void testLinkTupleSwitchPortSwitchPortFailsOnNull1() {
         new LinkTuple(null, DST);
     }
@@ -57,7 +57,7 @@
     /**
      * Tests to confirm constructors input validation.
      */
-    @Test(expected = IllegalArgumentException.class)
+    @Test(expected = NullPointerException.class)
     public void testLinkTupleSwitchPortSwitchPortFailsOnNull2() {
         new LinkTuple(SRC, null);
     }
@@ -79,7 +79,7 @@
     /**
      * Tests to confirm constructors input validation.
      */
-    @Test(expected = IllegalArgumentException.class)
+    @Test(expected = NullPointerException.class)
     public void testLinkTupleDpidPortNumberDpidPortNumberFailOnNull1() {
         new LinkTuple(null, SRC_PORT_NUM, DST_DPID, DST_PORT_NUM);
     }
@@ -87,7 +87,7 @@
     /**
      * Tests to confirm constructors input validation.
      */
-    @Test(expected = IllegalArgumentException.class)
+    @Test(expected = NullPointerException.class)
     public void testLinkTupleDpidPortNumberDpidPortNumberFailOnNull2() {
         new LinkTuple(SRC_DPID, null, DST_DPID, DST_PORT_NUM);
     }
@@ -95,7 +95,7 @@
     /**
      * Tests to confirm constructors input validation.
      */
-    @Test(expected = IllegalArgumentException.class)
+    @Test(expected = NullPointerException.class)
     public void testLinkTupleDpidPortNumberDpidPortNumberFailOnNull3() {
         new LinkTuple(SRC_DPID, SRC_PORT_NUM, null, DST_PORT_NUM);
     }
@@ -103,7 +103,7 @@
     /**
      * Tests to confirm constructors input validation.
      */
-    @Test(expected = IllegalArgumentException.class)
+    @Test(expected = NullPointerException.class)
     public void testLinkTupleDpidPortNumberDpidPortNumberFailOnNull4() {
         new LinkTuple(SRC_DPID, SRC_PORT_NUM, DST_DPID, null);
     }
diff --git a/src/test/java/net/onrc/onos/core/util/SwitchPortTest.java b/src/test/java/net/onrc/onos/core/util/SwitchPortTest.java
index 1c01e8f..2832dc1 100644
--- a/src/test/java/net/onrc/onos/core/util/SwitchPortTest.java
+++ b/src/test/java/net/onrc/onos/core/util/SwitchPortTest.java
@@ -30,7 +30,7 @@
     /**
      * Tests to confirm constructors input validation.
      */
-    @Test(expected = IllegalArgumentException.class)
+    @Test(expected = NullPointerException.class)
     public void testSwitchPortDpidPortNumberFailOnNull1() {
         new SwitchPort(null, PORT_NUM);
     }
@@ -38,7 +38,7 @@
     /**
      * Tests to confirm constructors input validation.
      */
-    @Test(expected = IllegalArgumentException.class)
+    @Test(expected = NullPointerException.class)
     public void testSwitchPortDpidPortNumberFailOnNull2() {
         new SwitchPort(DPID, null);
     }
