ONOS-4085, ONOS-4096, ONOS-4097: JUNIT for ISIS PDU data structures

Change-Id: If2ef21201d4d86a2f3f4b95365d41a01d8feda98
diff --git a/protocols/isis/isisio/src/main/java/org/onosproject/isis/io/isispacket/pdu/Psnp.java b/protocols/isis/isisio/src/main/java/org/onosproject/isis/io/isispacket/pdu/Psnp.java
old mode 100644
new mode 100755
index 6ed6a4c..1585819
--- a/protocols/isis/isisio/src/main/java/org/onosproject/isis/io/isispacket/pdu/Psnp.java
+++ b/protocols/isis/isisio/src/main/java/org/onosproject/isis/io/isispacket/pdu/Psnp.java
@@ -79,11 +79,25 @@
         populateHeader(isisHeader);
     }
 
+    /**
+     * Adds the TLV to list.
+     *
+     * @param isisTlv ISIS TLV instance
+     */
     public void addTlv(IsisTlv isisTlv) {
         variableLengths.add(isisTlv);
     }
 
     /**
+     * Returns the list of all tlvs.
+     *
+     * @return variableLengths list of tlvs
+     */
+    public List<IsisTlv> getAllTlv() {
+        return variableLengths;
+    }
+
+    /**
      * Returns the source ID of csnp.
      *
      * @return sourceId source ID
@@ -136,7 +150,9 @@
             TlvType tlvValue = TlvType.get(tlvHeader.tlvType());
             if (tlvValue != null) {
                 IsisTlv tlv = TlvFinder.findTlv(tlvHeader, channelBuffer.readBytes(tlvHeader.tlvLength()));
-                this.variableLengths.add(tlv);
+                if (tlv != null) {
+                    this.variableLengths.add(tlv);
+                }
             } else {
                 channelBuffer.readBytes(tlvHeader.tlvLength());
             }
diff --git a/protocols/isis/isisio/src/main/java/org/onosproject/isis/io/util/IsisUtil.java b/protocols/isis/isisio/src/main/java/org/onosproject/isis/io/util/IsisUtil.java
old mode 100644
new mode 100755
index c21a93b..6b665ac
--- a/protocols/isis/isisio/src/main/java/org/onosproject/isis/io/util/IsisUtil.java
+++ b/protocols/isis/isisio/src/main/java/org/onosproject/isis/io/util/IsisUtil.java
@@ -654,7 +654,7 @@
      * @return given number as bytes
      */
     public static byte[] convertToThreeBytes(int numberToConvert) {
-        byte[] numInBytes = new byte[4];
+        byte[] numInBytes = new byte[3];
         String s1 = Integer.toHexString(numberToConvert);
         if (s1.length() % 2 != 0) {
             s1 = "0" + s1;
@@ -708,4 +708,4 @@
         }
         return Bytes.toArray(byteList);
     }
-}
\ No newline at end of file
+}
diff --git a/protocols/isis/isisio/src/test/java/org/onosproject/isis/io/isispacket/IsisHeaderTest.java b/protocols/isis/isisio/src/test/java/org/onosproject/isis/io/isispacket/IsisHeaderTest.java
new file mode 100644
index 0000000..9baddb6
--- /dev/null
+++ b/protocols/isis/isisio/src/test/java/org/onosproject/isis/io/isispacket/IsisHeaderTest.java
@@ -0,0 +1,310 @@
+/*
+ * Copyright 2016-present Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onosproject.isis.io.isispacket;
+
+import org.easymock.EasyMock;
+import org.jboss.netty.buffer.ChannelBuffer;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.onlab.packet.MacAddress;
+import org.onosproject.isis.controller.IsisPduType;
+
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.notNullValue;
+
+/**
+ * Unit test class for IsisHeader.
+ */
+public class IsisHeaderTest {
+
+    private IsisHeader isisHeader;
+    private MacAddress macAddress = MacAddress.valueOf("a4:23:05:00:00:00");
+    private int result;
+    private MacAddress result1;
+    private byte result2;
+    private IsisPduType result3;
+    private ChannelBuffer channelBuffer;
+
+    @Before
+    public void setUp() throws Exception {
+        isisHeader = new IsisHeader();
+        channelBuffer = EasyMock.createMock(ChannelBuffer.class);
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        isisHeader = null;
+    }
+
+    /**
+     * Tests interfaceIndex() getter method.
+     */
+    @Test
+    public void testInterfaceIndex() throws Exception {
+        isisHeader.setInterfaceIndex(1);
+        result = isisHeader.interfaceIndex();
+        assertThat(result, is(1));
+    }
+
+    /**
+     * Tests interfaceIndex() setter method.
+     */
+    @Test
+    public void testSetInterfaceIndex() throws Exception {
+        isisHeader.setInterfaceIndex(1);
+        result = isisHeader.interfaceIndex();
+        assertThat(result, is(1));
+    }
+
+    /**
+     * Tests interfaceMac() getter method.
+     */
+    @Test
+    public void testInterfaceMac() throws Exception {
+        isisHeader.setInterfaceMac(macAddress);
+        result1 = isisHeader.interfaceMac();
+        assertThat(result1, is(macAddress));
+    }
+
+    /**
+     * Tests sourceMac() getter method.
+     */
+    @Test
+    public void testSourceMac() throws Exception {
+        isisHeader.setSourceMac(macAddress);
+        result1 = isisHeader.sourceMac();
+        assertThat(result1, is(macAddress));
+    }
+
+    /**
+     * Tests sourceMac() setter method.
+     */
+    @Test
+    public void testSetSourceMac() throws Exception {
+        isisHeader.setSourceMac(macAddress);
+        result1 = isisHeader.sourceMac();
+        assertThat(result1, is(macAddress));
+    }
+
+    /**
+     * Tests interfaceMac() setter method.
+     */
+    @Test
+    public void testSetInterfaceMac() throws Exception {
+        isisHeader.setSourceMac(macAddress);
+        result1 = isisHeader.sourceMac();
+        assertThat(result1, is(macAddress));
+    }
+
+    /**
+     * Tests version2() getter method.
+     */
+    @Test
+    public void testVersion2() throws Exception {
+        isisHeader.setVersion2((byte) 1);
+        result2 = isisHeader.version2();
+        assertThat(result2, is((byte) 1));
+    }
+
+    /**
+     * Tests version2() setter method.
+     */
+    @Test
+    public void testSetVersion2() throws Exception {
+        isisHeader.setVersion2((byte) 1);
+        result2 = isisHeader.version2();
+        assertThat(result2, is((byte) 1));
+    }
+
+    /**
+     * Tests maximumAreaAddresses() getter method.
+     */
+    @Test
+    public void testMaximumAreaAddresses() throws Exception {
+        isisHeader.setMaximumAreaAddresses((byte) 1);
+        result2 = isisHeader.maximumAreaAddresses();
+        assertThat(result2, is((byte) 1));
+    }
+
+    /**
+     * Tests maximumAreaAddresses() setter method.
+     */
+    @Test
+    public void testSetMaximumAreaAddresses() throws Exception {
+        isisHeader.setMaximumAreaAddresses((byte) 1);
+        result2 = isisHeader.maximumAreaAddresses();
+        assertThat(result2, is((byte) 1));
+    }
+
+    /**
+     * Tests reserved() getter method.
+     */
+    @Test
+    public void testReserved() throws Exception {
+        isisHeader.setReserved((byte) 1);
+        result2 = isisHeader.reserved();
+        assertThat(result2, is((byte) 1));
+    }
+
+    /**
+     * Tests reserved() setter method.
+     */
+    @Test
+    public void testSetReserved() throws Exception {
+        isisHeader.setReserved((byte) 1);
+        result2 = isisHeader.reserved();
+        assertThat(result2, is((byte) 1));
+    }
+
+    /**
+     * Tests version() getter method.
+     */
+    @Test
+    public void testVersion() throws Exception {
+        isisHeader.setVersion((byte) 1);
+        result2 = isisHeader.version();
+        assertThat(result2, is((byte) 1));
+    }
+
+    /**
+     * Tests version() setter method.
+     */
+    @Test
+    public void testSetVersion() throws Exception {
+        isisHeader.setVersion((byte) 1);
+        result2 = isisHeader.version();
+        assertThat(result2, is((byte) 1));
+    }
+
+    /**
+     * Tests idLength() getter method.
+     */
+    @Test
+    public void testIdLength() throws Exception {
+        isisHeader.setIdLength((byte) 1);
+        result2 = isisHeader.idLength();
+        assertThat(result2, is((byte) 1));
+    }
+
+    /**
+     * Tests idLength() setter method.
+     */
+    @Test
+    public void testSetIdLength() throws Exception {
+        isisHeader.setIdLength((byte) 1);
+        result2 = isisHeader.idLength();
+        assertThat(result2, is((byte) 1));
+    }
+
+    /**
+     * Tests pduType() getter method.
+     */
+    @Test
+    public void testPduType() throws Exception {
+        isisHeader.setIsisPduType(1);
+        result = isisHeader.pduType();
+        assertThat(result, is(1));
+    }
+
+    /**
+     * Tests pduType() setter method.
+     */
+    @Test
+    public void testSetIsisPduType() throws Exception {
+        isisHeader.setIsisPduType(1);
+        result = isisHeader.pduType();
+        assertThat(result, is(1));
+    }
+
+    /**
+     * Tests pduHeaderLength() getter method.
+     */
+    @Test
+    public void testPduHeaderLength() throws Exception {
+        isisHeader.setPduHeaderLength((byte) 1);
+        result2 = isisHeader.pduHeaderLength();
+        assertThat(result2, is((byte) 1));
+    }
+
+    /**
+     * Tests pduHeaderLength() setter method.
+     */
+    @Test
+    public void testSetPduHeaderLength() throws Exception {
+        isisHeader.setPduHeaderLength((byte) 1);
+        result2 = isisHeader.pduHeaderLength();
+        assertThat(result2, is((byte) 1));
+    }
+
+    /**
+     * Tests irpDiscriminator() getter method.
+     */
+    @Test
+    public void testIrpDiscriminator() throws Exception {
+        isisHeader.setIrpDiscriminator((byte) 1);
+        result2 = isisHeader.irpDiscriminator();
+        assertThat(result2, is((byte) 1));
+    }
+
+    /**
+     * Tests irpDiscriminator() setter method.
+     */
+    @Test
+    public void testSetIrpDiscriminator() throws Exception {
+        isisHeader.setIrpDiscriminator((byte) 1);
+        result2 = isisHeader.irpDiscriminator();
+        assertThat(result2, is((byte) 1));
+    }
+
+    /**
+     * Tests irpDiscriminator() setter method.
+     */
+    @Test
+    public void testIsisPduType() throws Exception {
+        isisHeader.setIsisPduType(IsisPduType.L1HELLOPDU.value());
+        result3 = isisHeader.isisPduType();
+        assertThat(result3, is(IsisPduType.L1HELLOPDU));
+    }
+
+    /**
+     * Tests readFrom() method.
+     */
+    @Test
+    public void testReadFrom() throws Exception {
+        isisHeader.readFrom(channelBuffer);
+        assertThat(isisHeader, is(notNullValue()));
+    }
+
+    /**
+     * Tests asBytes() method.
+     */
+    @Test
+    public void testAsBytes() throws Exception {
+        isisHeader.asBytes();
+        assertThat(isisHeader, is(notNullValue()));
+    }
+
+    /**
+     * Tests populateHeader() method.
+     */
+    @Test
+    public void testPopulateHeader() throws Exception {
+        isisHeader.populateHeader(new IsisHeader());
+        assertThat(isisHeader, is(notNullValue()));
+    }
+}
\ No newline at end of file
diff --git a/protocols/isis/isisio/src/test/java/org/onosproject/isis/io/isispacket/IsisMessageReaderTest.java b/protocols/isis/isisio/src/test/java/org/onosproject/isis/io/isispacket/IsisMessageReaderTest.java
new file mode 100644
index 0000000..a8523d2
--- /dev/null
+++ b/protocols/isis/isisio/src/test/java/org/onosproject/isis/io/isispacket/IsisMessageReaderTest.java
@@ -0,0 +1,264 @@
+/*
+ * Copyright 2016-present Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onosproject.isis.io.isispacket;
+
+import com.google.common.primitives.Bytes;
+import org.easymock.EasyMock;
+import org.jboss.netty.buffer.ChannelBuffer;
+import org.jboss.netty.buffer.ChannelBuffers;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.onosproject.isis.controller.IsisMessage;
+import org.onosproject.isis.io.isispacket.pdu.Csnp;
+import org.onosproject.isis.io.isispacket.pdu.L1L2HelloPdu;
+import org.onosproject.isis.io.isispacket.pdu.LsPdu;
+import org.onosproject.isis.io.isispacket.pdu.P2PHelloPdu;
+import org.onosproject.isis.io.isispacket.pdu.Psnp;
+import org.onosproject.isis.io.util.IsisUtil;
+
+import static org.hamcrest.CoreMatchers.instanceOf;
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+
+/**
+ * Unit test class for IsisMessageReader.
+ */
+public class IsisMessageReaderTest {
+
+    private final byte[] helloP2P = {
+            -125, 20, 1, 0, 17, 1, 0, 0,
+            2, 51, 51, 51, 51, 51, 51, 0, 100, 5, -39, -126, 1, 4, 3,
+            73, 0, 0, -127, 1, -52, -124, 4, -64, -88, 56, 102, 8, -1,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 8, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, -1, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, -1, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 8, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 8, -81, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+    };
+    private final byte[] helloL1L2 = {
+            -125, 27, 1, 0, 15, 1, 0, 0, 1, 34, 34, 34, 34, 34, 34, 0,
+            30, 5, -39, 64, 34, 34, 34, 34, 34, 34, 1, -127, 1, -52, 1,
+            4, 3, 73, 0, 10, -124, 4, 10, 0, 10, 2, -45, 3, 0, 0, 0,
+            8, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, -1, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,
+            -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 8, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 8, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, -93, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+    };
+    private final byte[] l1Lsp = {
+            -125, 27, 1, 0, 18, 1, 0, 0, 0, 86, 4, -81, 34, 34, 34,
+            34, 34, 34, 0, 0, 0, 0, 0, 9, 99, 11, 1, 1, 4, 3, 73,
+            0, 10, -127, 1, -52, -119, 2, 82, 50, -124, 4, -64, -88, 10, 1, -128,
+            24, 10, -128, -128, -128, 10, 0, 10, 0, -1, -1, -1, -4, 10, -128, -128,
+            -128, -64, -88, 10, 0, -1, -1, -1, 0, 2, 12, 0, 10, -128, -128, -128,
+            51, 51, 51, 51, 51, 51, 2
+    };
+    private final byte[] csnp = {
+            -125, 33, 1, 6, 25, 1, 0, 3, 0, 67, 18, 52, 18, 52, 0,
+            18, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1,
+            -1, -1, 9, 32, 4, -81, 18, 52, 18, 52, 0, 18, 0, 0, 0,
+            0, 0, 41, -92, -30, 4, -81, 41, 41, 41, 41, 41, 41, 0,
+            0, 0, 0, 0, 1, 91, 126
+    };
+    private final byte[] psnp = {
+            -125, 17, 1, 0, 27, 1, 0, 0, 0, 35, 41, 41,
+            41, 41, 41, 41, 0, 9, 16, 4, -81, 18, 52, 18,
+            52, 0, 18, 0, 0, 0, 0, 0, 42, -94, -29
+
+    };
+    private IsisMessageReader reader;
+    private ChannelBuffer channelBuffer;
+    private IsisMessage message;
+
+    @Before
+    public void setUp() throws Exception {
+        reader = new IsisMessageReader();
+        channelBuffer = EasyMock.createMock(ChannelBuffer.class);
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        reader = null;
+        channelBuffer = null;
+        message = null;
+    }
+
+    /**
+     * Tests readFromBuffer() method.
+     */
+    @Test
+    public void testReadFromBuffer() throws Exception {
+        channelBuffer = ChannelBuffers.copiedBuffer(helloP2P);
+        message = reader.readFromBuffer(channelBuffer);
+        assertThat(message, is(instanceOf(P2PHelloPdu.class)));
+
+        channelBuffer = ChannelBuffers.copiedBuffer(helloL1L2);
+        message = reader.readFromBuffer(channelBuffer);
+        assertThat(message, is(instanceOf(L1L2HelloPdu.class)));
+
+        byte[] tlv1 = Bytes.concat(l1Lsp, (IsisUtil.getPaddingTlvs(l1Lsp.length)));
+        channelBuffer = ChannelBuffers.copiedBuffer(tlv1);
+        message = reader.readFromBuffer(channelBuffer);
+        assertThat(message, is(instanceOf(LsPdu.class)));
+
+        tlv1 = Bytes.concat(csnp, (IsisUtil.getPaddingTlvs(csnp.length)));
+        channelBuffer = ChannelBuffers.copiedBuffer(tlv1);
+        message = reader.readFromBuffer(channelBuffer);
+        assertThat(message, is(instanceOf(Csnp.class)));
+
+        tlv1 = Bytes.concat(psnp, (IsisUtil.getPaddingTlvs(psnp.length)));
+        channelBuffer = ChannelBuffers.copiedBuffer(tlv1);
+        message = reader.readFromBuffer(channelBuffer);
+        assertThat(message, is(instanceOf(Psnp.class)));
+    }
+}
\ No newline at end of file
diff --git a/protocols/isis/isisio/src/test/java/org/onosproject/isis/io/isispacket/pdu/CsnpTest.java b/protocols/isis/isisio/src/test/java/org/onosproject/isis/io/isispacket/pdu/CsnpTest.java
new file mode 100644
index 0000000..ad4125c
--- /dev/null
+++ b/protocols/isis/isisio/src/test/java/org/onosproject/isis/io/isispacket/pdu/CsnpTest.java
@@ -0,0 +1,246 @@
+/*
+ * Copyright 2016-present Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onosproject.isis.io.isispacket.pdu;
+
+import org.easymock.EasyMock;
+import org.jboss.netty.buffer.ChannelBuffer;
+import org.jboss.netty.buffer.ChannelBuffers;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.onosproject.isis.controller.IsisPduType;
+import org.onosproject.isis.io.isispacket.IsisHeader;
+import org.onosproject.isis.io.isispacket.tlv.AdjacencyStateTlv;
+import org.onosproject.isis.io.isispacket.tlv.IsisTlv;
+import org.onosproject.isis.io.isispacket.tlv.TlvHeader;
+
+import java.util.List;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.notNullValue;
+import static org.hamcrest.MatcherAssert.assertThat;
+
+/**
+ * Unit test class for Csnp.
+ */
+public class CsnpTest {
+
+    private final String srcId = "1111.1111.1111";
+    private final byte[] csnpBytes = {
+            0, 67, 18, 52, 18, 52, 0, 0, 67, 18, 52, 18, 52, 0,
+            18, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1,
+            -1, -1, 9, 32, 4, -81, 18, 52, 18, 52, 0, 18, 0, 0, 0,
+            0, 0, 41, -92, -30, 4, -81, 41, 41, 41, 41, 41, 41, 0,
+            0, 0, 0, 0, 1, 91, 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0
+    };
+    private Csnp csnp;
+    private IsisHeader isisHeader;
+    private IsisTlv isisTlv;
+    private TlvHeader tlvHeader;
+    private List<IsisTlv> resultList;
+    private String resultStr;
+    private int resultInt;
+    private ChannelBuffer channelBuffer;
+    private byte[] result;
+
+    @Before
+    public void setUp() throws Exception {
+        isisHeader = new IsisHeader();
+        isisHeader.setIsisPduType(IsisPduType.L1CSNP.value());
+        csnp = new Csnp(isisHeader);
+        tlvHeader = new TlvHeader();
+        isisTlv = new AdjacencyStateTlv(tlvHeader);
+        channelBuffer = EasyMock.createMock(ChannelBuffer.class);
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        isisHeader = null;
+        csnp = null;
+        tlvHeader = null;
+        isisTlv = null;
+    }
+
+    /**
+     * Tests getAllTlv()  method.
+     */
+    @Test
+    public void testGetAllTlv() throws Exception {
+        channelBuffer = ChannelBuffers.copiedBuffer(csnpBytes);
+        csnp.readFrom(channelBuffer);
+        resultList = csnp.getAllTlv();
+        assertThat(resultList.size(), is(0));
+    }
+
+    /**
+     * Tests sourceId() getter method.
+     */
+    @Test
+    public void testSourceId() throws Exception {
+        csnp.setSourceId(srcId);
+        resultStr = csnp.sourceId();
+        assertThat(resultStr, is(srcId));
+    }
+
+    /**
+     * Tests sourceId() setter method.
+     */
+    @Test
+    public void testSetSourceId() throws Exception {
+        csnp.setSourceId(srcId);
+        resultStr = csnp.sourceId();
+        assertThat(resultStr, is(srcId));
+    }
+
+
+    /**
+     * Tests startLspId() getter method.
+     */
+    @Test
+    public void testStartLspId() throws Exception {
+        csnp.setStartLspId(srcId);
+        resultStr = csnp.startLspId();
+        assertThat(resultStr, is(srcId));
+    }
+
+    /**
+     * Tests startLspId() setter method.
+     */
+    @Test
+    public void testSetStartLspId() throws Exception {
+        csnp.setStartLspId(srcId);
+        resultStr = csnp.startLspId();
+        assertThat(resultStr, is(srcId));
+    }
+
+    /**
+     * Tests endLspId()  getter method.
+     */
+    @Test
+    public void testEndLspId() throws Exception {
+        csnp.setEndLspId(srcId);
+        resultStr = csnp.endLspId();
+        assertThat(resultStr, is(srcId));
+    }
+
+    /**
+     * Tests endLspId() setter method.
+     */
+    @Test
+    public void testSetEndLspId() throws Exception {
+        csnp.setEndLspId(srcId);
+        resultStr = csnp.endLspId();
+        assertThat(resultStr, is(srcId));
+    }
+
+    /**
+     * Tests pduLength() getter method.
+     */
+    @Test
+    public void testPduLength() throws Exception {
+        csnp.setPduLength(10);
+        resultInt = csnp.pduLength();
+        assertThat(resultInt, is(10));
+    }
+
+    /**
+     * Tests pduLength() setter method.
+     */
+    @Test
+    public void testSetPduLength() throws Exception {
+        csnp.setPduLength(10);
+        resultInt = csnp.pduLength();
+        assertThat(resultInt, is(10));
+    }
+
+    /**
+     * Tests readFrom() method.
+     */
+    @Test
+    public void testReadFrom() throws Exception {
+        channelBuffer = ChannelBuffers.copiedBuffer(csnpBytes);
+        csnp.readFrom(channelBuffer);
+        assertThat(csnp, is(notNullValue()));
+    }
+
+    /**
+     * Tests asBytes() method.
+     */
+    @Test
+    public void testAsBytes() throws Exception {
+        channelBuffer = ChannelBuffers.copiedBuffer(csnpBytes);
+        csnp.readFrom(channelBuffer);
+        result = csnp.asBytes();
+        assertThat(csnp, is(notNullValue()));
+    }
+
+    /**
+     * Tests isisPduHeader() method.
+     */
+    @Test
+    public void testIsisPduHeader() throws Exception {
+        result = csnp.isisPduHeader();
+        assertThat(result, is(notNullValue()));
+    }
+
+    /**
+     * Tests completeSequenceNumberPduBody() method.
+     */
+    @Test
+    public void testCompleteSequenceNumberPduBody() throws Exception {
+        channelBuffer = ChannelBuffers.copiedBuffer(csnpBytes);
+        csnp.readFrom(channelBuffer);
+        result = csnp.completeSequenceNumberPduBody();
+        assertThat(result, is(notNullValue()));
+    }
+
+    /**
+     * Tests toString() method.
+     */
+    @Test
+    public void testToString() throws Exception {
+        assertThat((csnp.toString()), is(notNullValue()));
+    }
+
+    /**
+     * Tests equals() method.
+     */
+    @Test
+    public void testEquals() throws Exception {
+        assertThat(csnp.equals(new Csnp(new IsisHeader())), is(true));
+    }
+
+    /**
+     * Tests hashCode() method.
+     */
+    @Test
+    public void testHashCode() throws Exception {
+        int hashCode = csnp.hashCode();
+        assertThat(hashCode, is(notNullValue()));
+    }
+}
+
+
+
diff --git a/protocols/isis/isisio/src/test/java/org/onosproject/isis/io/isispacket/pdu/HelloPduTest.java b/protocols/isis/isisio/src/test/java/org/onosproject/isis/io/isispacket/pdu/HelloPduTest.java
new file mode 100644
index 0000000..624c649
--- /dev/null
+++ b/protocols/isis/isisio/src/test/java/org/onosproject/isis/io/isispacket/pdu/HelloPduTest.java
@@ -0,0 +1,324 @@
+/*
+ * Copyright 2016-present Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onosproject.isis.io.isispacket.pdu;
+
+import org.easymock.EasyMock;
+import org.jboss.netty.buffer.ChannelBuffer;
+import org.jboss.netty.buffer.ChannelBuffers;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.onlab.packet.Ip4Address;
+import org.onlab.packet.MacAddress;
+import org.onosproject.isis.controller.IsisInterfaceState;
+import org.onosproject.isis.io.isispacket.IsisHeader;
+import org.onosproject.isis.io.isispacket.tlv.AdjacencyStateTlv;
+import org.onosproject.isis.io.isispacket.tlv.IsisTlv;
+import org.onosproject.isis.io.isispacket.tlv.TlvHeader;
+
+import java.util.List;
+
+import static org.hamcrest.CoreMatchers.*;
+import static org.hamcrest.MatcherAssert.assertThat;
+
+/**
+ * Unit test class for HelloPdu.
+ */
+public class HelloPduTest {
+
+    private final byte[] macAddr = new byte[]{
+            (byte) 0xa4, (byte) 0x22, (byte) 0xc2, 0x00, 0x00, 0x00
+    };
+    private final String srcId = "1111.1111.1111";
+    private final byte[] helloL1L2 = {
+            1, 34, 34, 34, 34, 34, 34, 0,
+            30, 5, -39, 64, 34, 34, 34, 34, 34, 34, 1, -127, 1, -52, 1,
+            4, 3, 73, 0, 10, -124, 4, 10, 0, 10, 2, -45, 3, 0, 0, 0,
+            8, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, -1, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,
+            -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 8, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 8, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, -93, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+    };
+
+    private HelloPdu helloPdu;
+    private IsisHeader isisHeader;
+    private IsisTlv isisTlv;
+    private TlvHeader tlvHeader;
+    private MacAddress macAddress;
+    private List<IsisTlv> resultList;
+    private List<String> resultListStr;
+    private List<Ip4Address> resultListIPv4;
+    private List<MacAddress> resultListMac;
+    private IsisInterfaceState resultAdjState;
+    private String resultStr;
+    private int resultInt;
+    private byte resultByte;
+    private ChannelBuffer channelBuffer;
+    private HelloPdu pdu;
+
+    @Before
+    public void setUp() throws Exception {
+        isisHeader = new IsisHeader();
+        helloPdu = new L1L2HelloPdu(isisHeader);
+        tlvHeader = new TlvHeader();
+        isisTlv = new AdjacencyStateTlv(tlvHeader);
+        macAddress = new MacAddress(macAddr);
+        channelBuffer = EasyMock.createMock(ChannelBuffer.class);
+        pdu = helloPdu;
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        isisHeader = null;
+        helloPdu = null;
+        isisTlv = null;
+        tlvHeader = null;
+        macAddress = null;
+    }
+
+    /**
+     * Tests addTlv() getter method.
+     */
+    @Test
+    public void testAddTlv() throws Exception {
+        helloPdu.addTlv(isisTlv);
+        resultList = helloPdu.tlvs();
+        assertThat(resultList.size(), is(1));
+    }
+
+    /**
+     * Tests tlvs()  method.
+     */
+    @Test
+    public void testTlvs() throws Exception {
+        helloPdu.addTlv(isisTlv);
+        resultList = helloPdu.tlvs();
+        assertThat(resultList.size(), is(1));
+    }
+
+    /**
+     * Tests areaAddres()  method.
+     */
+    @Test
+    public void testAreaAddress() throws Exception {
+        channelBuffer = ChannelBuffers.copiedBuffer(helloL1L2);
+        helloPdu.readFrom(channelBuffer);
+        resultListStr = helloPdu.areaAddress();
+        assertThat(resultListStr.size(), is(1));
+    }
+
+    /**
+     * Tests interfaceIpAddresse() method.
+     */
+    @Test
+    public void testInterfaceIpAddresses() throws Exception {
+        channelBuffer = ChannelBuffers.copiedBuffer(helloL1L2);
+        helloPdu.readFrom(channelBuffer);
+        resultListIPv4 = helloPdu.interfaceIpAddresses();
+        assertThat(resultListIPv4.size(), is(1));
+    }
+
+    /**
+     * Tests neighborList() method.
+     */
+    @Test
+    public void testNeighborList() throws Exception {
+        channelBuffer = ChannelBuffers.copiedBuffer(helloL1L2);
+        helloPdu.readFrom(channelBuffer);
+        resultListMac = helloPdu.neighborList();
+        assertThat(resultListMac, is(nullValue()));
+    }
+
+    /**
+     * Tests adjacencyState() method.
+     */
+    @Test
+    public void testAdjacencyState() throws Exception {
+        channelBuffer = ChannelBuffers.copiedBuffer(helloL1L2);
+        helloPdu.readFrom(channelBuffer);
+        resultAdjState = helloPdu.adjacencyState();
+        assertThat(resultAdjState, is(nullValue()));
+    }
+
+    /**
+     * Tests sourceId() getter method.
+     */
+    @Test
+    public void testSourceId() throws Exception {
+        helloPdu.setSourceId(srcId);
+        resultStr = helloPdu.sourceId();
+        assertThat(resultStr, is(srcId));
+    }
+
+    /**
+     * Tests sourceId() setter method.
+     */
+    @Test
+    public void testSetSourceId() throws Exception {
+        helloPdu.setSourceId(srcId);
+        resultStr = helloPdu.sourceId();
+        assertThat(resultStr, is(srcId));
+    }
+
+    /**
+     * Tests pduLength() getter method.
+     */
+    @Test
+    public void testPduLength() throws Exception {
+        helloPdu.setPduLength(10);
+        resultInt = helloPdu.pduLength();
+        assertThat(resultInt, is(10));
+
+    }
+
+    /**
+     * Tests pduLength() setter method.
+     */
+    @Test
+    public void testSetPduLength() throws Exception {
+        helloPdu.setPduLength(10);
+        resultInt = helloPdu.pduLength();
+        assertThat(resultInt, is(10));
+    }
+
+    /**
+     * Tests holdingTime() getter method.
+     */
+    @Test
+    public void testHoldingTime() throws Exception {
+        helloPdu.setHoldingTime(10);
+        resultInt = helloPdu.holdingTime();
+        assertThat(resultInt, is(10));
+    }
+
+    /**
+     * Tests holdingTime() setter method.
+     */
+    @Test
+    public void testSetHoldingTime() throws Exception {
+        helloPdu.setHoldingTime(10);
+        resultInt = helloPdu.holdingTime();
+        assertThat(resultInt, is(10));
+    }
+
+    /**
+     * Tests circuitType() getter method.
+     */
+    @Test
+    public void testCircuitType() throws Exception {
+        helloPdu.setCircuitType((byte) 1);
+        resultByte = helloPdu.circuitType();
+        assertThat(resultByte, is((byte) 1));
+    }
+
+    /**
+     * Tests circuitType() setter method.
+     */
+    @Test
+    public void testSetCircuitType() throws Exception {
+        helloPdu.setCircuitType((byte) 1);
+        resultByte = helloPdu.circuitType();
+        assertThat(resultByte, is((byte) 1));
+    }
+
+    /**
+     * Tests toString() getter method.
+     */
+    @Test
+    public void testToString() throws Exception {
+        pdu = helloPdu;
+        assertThat(pdu.toString(), is(notNullValue()));
+    }
+
+    /**
+     * Tests equals() method.
+     */
+    @Test
+    public void testEquals() throws Exception {
+        pdu = helloPdu;
+        assertThat(pdu.equals(new L1L2HelloPdu(new IsisHeader())), is(true));
+    }
+
+    /**
+     * Tests hashCode()  method.
+     */
+    @Test
+    public void testHashCode() throws Exception {
+        pdu = helloPdu;
+        resultInt = pdu.hashCode();
+        assertThat(resultInt, is(notNullValue()));
+    }
+}
\ No newline at end of file
diff --git a/protocols/isis/isisio/src/test/java/org/onosproject/isis/io/isispacket/pdu/L1L2HelloPduTest.java b/protocols/isis/isisio/src/test/java/org/onosproject/isis/io/isispacket/pdu/L1L2HelloPduTest.java
new file mode 100644
index 0000000..127e872
--- /dev/null
+++ b/protocols/isis/isisio/src/test/java/org/onosproject/isis/io/isispacket/pdu/L1L2HelloPduTest.java
@@ -0,0 +1,231 @@
+/*
+ * Copyright 2016-present Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onosproject.isis.io.isispacket.pdu;
+
+import org.easymock.EasyMock;
+import org.jboss.netty.buffer.ChannelBuffer;
+import org.jboss.netty.buffer.ChannelBuffers;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.onosproject.isis.io.isispacket.IsisHeader;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.notNullValue;
+import static org.hamcrest.MatcherAssert.assertThat;
+
+/**
+ * Unit test class for L1L2HelloPdu.
+ */
+public class L1L2HelloPduTest {
+    private final String lanId = "1111.1111.1111";
+    private final byte[] helloL1L2 = {
+            1, 34, 34, 34, 34, 34, 34, 0,
+            30, 5, -39, 64, 34, 34, 34, 34, 34, 34, 1, -127, 1, -52, 1,
+            4, 3, 73, 0, 10, -124, 4, 10, 0, 10, 2, -45, 3, 0, 0, 0,
+            8, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, -1, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,
+            -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 8, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 8, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, -93, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+    };
+    private L1L2HelloPdu l1L2HelloPdu;
+    private IsisHeader isisHeader;
+    private String resultStr;
+    private byte resultByte;
+    private int resultInt;
+    private ChannelBuffer channelBuffer;
+    private byte[] result;
+
+    @Before
+    public void setUp() throws Exception {
+        isisHeader = new IsisHeader();
+        isisHeader.setIsisPduType(15);
+        l1L2HelloPdu = new L1L2HelloPdu(isisHeader);
+        channelBuffer = EasyMock.createMock(ChannelBuffer.class);
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        isisHeader = null;
+        l1L2HelloPdu = null;
+    }
+
+    /**
+     * Tests setLanId() getter method.
+     */
+    @Test
+    public void testLanId() throws Exception {
+        l1L2HelloPdu.setLanId(lanId);
+        resultStr = l1L2HelloPdu.lanId();
+        assertThat(resultStr, is(lanId));
+    }
+
+    /**
+     * Tests setLanId() setter method.
+     */
+    @Test
+    public void testSetLanId() throws Exception {
+        l1L2HelloPdu.setLanId(lanId);
+        resultStr = l1L2HelloPdu.lanId();
+        assertThat(resultStr, is(lanId));
+    }
+
+    /**
+     * Tests priority() getter method.
+     */
+    @Test
+    public void testPriority() throws Exception {
+        l1L2HelloPdu.setPriority((byte) 1);
+        resultByte = l1L2HelloPdu.priority();
+        assertThat(resultByte, is((byte) 1));
+    }
+
+    /**
+     * Tests priority() setter method.
+     */
+    @Test
+    public void testSetPriority() throws Exception {
+        l1L2HelloPdu.setPriority((byte) 1);
+        resultByte = l1L2HelloPdu.priority();
+        assertThat(resultByte, is((byte) 1));
+    }
+
+    /**
+     * Tests readFrom() method.
+     */
+    @Test
+    public void testReadFrom() throws Exception {
+        channelBuffer = ChannelBuffers.copiedBuffer(helloL1L2);
+        l1L2HelloPdu.readFrom(channelBuffer);
+        assertThat(l1L2HelloPdu, is(notNullValue()));
+    }
+
+    /**
+     * Tests asByte() method.
+     */
+    @Test
+    public void testAsBytes() throws Exception {
+        channelBuffer = ChannelBuffers.copiedBuffer(helloL1L2);
+        l1L2HelloPdu.readFrom(channelBuffer);
+        result = l1L2HelloPdu.asBytes();
+        assertThat(l1L2HelloPdu, is(notNullValue()));
+    }
+
+    /**
+     * Tests l1l2IsisPduHeader() method.
+     */
+    @Test
+    public void testL1l2IsisPduHeader() throws Exception {
+        result = l1L2HelloPdu.l1l2IsisPduHeader();
+        assertThat(l1L2HelloPdu, is(notNullValue()));
+    }
+
+    /**
+     * Tests l1l2HelloPduBody() method.
+     */
+    @Test
+    public void testL1l2HelloPduBody() throws Exception {
+        channelBuffer = ChannelBuffers.copiedBuffer(helloL1L2);
+        l1L2HelloPdu.readFrom(channelBuffer);
+        result = l1L2HelloPdu.l1l2HelloPduBody();
+        assertThat(result, is(notNullValue()));
+    }
+
+    /**
+     * Tests toString()  method.
+     */
+    @Test
+    public void testToString() throws Exception {
+        assertThat(l1L2HelloPdu.toString(), is(notNullValue()));
+    }
+
+    /**
+     * Tests equals() method.
+     */
+    @Test
+    public void testEquals() throws Exception {
+        assertThat(l1L2HelloPdu.equals(new L1L2HelloPdu(new IsisHeader())), is(true));
+    }
+
+    /**
+     * Tests hashCode() method.
+     */
+    @Test
+    public void testHashCode() throws Exception {
+        resultInt = l1L2HelloPdu.hashCode();
+        assertThat(resultInt, is(notNullValue()));
+    }
+}
diff --git a/protocols/isis/isisio/src/test/java/org/onosproject/isis/io/isispacket/pdu/LsPduTest.java b/protocols/isis/isisio/src/test/java/org/onosproject/isis/io/isispacket/pdu/LsPduTest.java
new file mode 100644
index 0000000..5689950
--- /dev/null
+++ b/protocols/isis/isisio/src/test/java/org/onosproject/isis/io/isispacket/pdu/LsPduTest.java
@@ -0,0 +1,347 @@
+/*
+ * Copyright 2016-present Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onosproject.isis.io.isispacket.pdu;
+
+import org.easymock.EasyMock;
+import org.jboss.netty.buffer.ChannelBuffer;
+import org.jboss.netty.buffer.ChannelBuffers;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.onosproject.isis.controller.IsisPduType;
+import org.onosproject.isis.io.isispacket.IsisHeader;
+import org.onosproject.isis.io.isispacket.tlv.HostNameTlv;
+import org.onosproject.isis.io.isispacket.tlv.TlvHeader;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.notNullValue;
+import static org.hamcrest.MatcherAssert.assertThat;
+
+/**
+ * Unit test class for LsPdu.
+ */
+public class LsPduTest {
+    private final String lspId = "1111.1111.1111";
+    private final byte[] l1Lsp = {
+            0, 86, 4, -81, 34, 34, 34, 34, 34, 34, 0, 0, 0, 0, 0, 9, 99, 11, 1, 1, 4, 3, 73,
+            0, 10, -127, 1, -52, -119, 2, 82, 50, -124, 4, -64, -88, 10, 1, -128, 24, 10,
+            -128, -128, -128, 10, 0, 10, 0, -1, -1, -1, -4, 10, -128, -128, -128, -64, -88,
+            10, 0, -1, -1, -1, 0, 2, 12, 0, 10, -128, -128, -128, 51, 51, 51, 51, 51, 51, 2
+    };
+    private LsPdu lsPdu;
+    private IsisHeader isisHeader;
+    private TlvHeader tlvHeader;
+    private int resultInt;
+    private boolean resultBool;
+    private byte resultByte;
+    private AttachedToOtherAreas resultObj;
+    private String resultStr;
+    private ChannelBuffer channelBuffer;
+    private byte[] result;
+
+    @Before
+    public void setUp() throws Exception {
+        isisHeader = new IsisHeader();
+        tlvHeader = new TlvHeader();
+        isisHeader.setIsisPduType(IsisPduType.L1LSPDU.value());
+        lsPdu = new LsPdu(isisHeader);
+        channelBuffer = EasyMock.createMock(ChannelBuffer.class);
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        isisHeader = null;
+        lsPdu = null;
+        tlvHeader = null;
+        channelBuffer = null;
+    }
+
+    /**
+     * Tests addTlv()  method.
+     */
+    @Test
+    public void testAddTlv() throws Exception {
+        lsPdu.addTlv(new HostNameTlv(tlvHeader));
+        assertThat(lsPdu, is(notNullValue()));
+    }
+
+    /**
+     * Tests remainingLifeTime() getter method.
+     */
+    @Test
+    public void testRemainingLifeTime() throws Exception {
+        lsPdu.setRemainingLifeTime(10);
+        resultInt = lsPdu.remainingLifeTime();
+        assertThat(resultInt, is(10));
+    }
+
+    /**
+     * Tests remainingLifeTime() setter method.
+     */
+    @Test
+    public void testSetRemainingLifeTime() throws Exception {
+        lsPdu.setRemainingLifeTime(10);
+        resultInt = lsPdu.remainingLifeTime();
+        assertThat(resultInt, is(10));
+    }
+
+    /**
+     * Tests lspDbol() getter method.
+     */
+    @Test
+    public void testLspDbol() throws Exception {
+        lsPdu.setLspDbol(true);
+        resultBool = lsPdu.lspDbol();
+        assertThat(resultBool, is(true));
+    }
+
+    /**
+     * Tests lspDbol() setter method.
+     */
+    @Test
+    public void testSetLspDbol() throws Exception {
+        lsPdu.setLspDbol(true);
+        resultBool = lsPdu.lspDbol();
+        assertThat(resultBool, is(true));
+    }
+
+    /**
+     * Tests typeBlock() getter method.
+     */
+    @Test
+    public void testTypeBlock() throws Exception {
+        lsPdu.setTypeBlock((byte) 1);
+        resultByte = lsPdu.typeBlock();
+        assertThat(resultByte, is((byte) 1));
+    }
+
+    /**
+     * Tests typeBlock() setter method.
+     */
+    @Test
+    public void testSetTypeBlock() throws Exception {
+        lsPdu.setTypeBlock((byte) 1);
+        resultByte = lsPdu.typeBlock();
+        assertThat(resultByte, is((byte) 1));
+    }
+
+    /**
+     * Tests sequenceNumber() getter method.
+     */
+    @Test
+    public void testSequenceNumber() throws Exception {
+        lsPdu.setSequenceNumber(1);
+        resultInt = lsPdu.sequenceNumber();
+        assertThat(resultInt, is(1));
+    }
+
+    /**
+     * Tests sequenceNumber() setter method.
+     */
+    @Test
+    public void testSetSequenceNumber() throws Exception {
+        lsPdu.setSequenceNumber(1);
+        resultInt = lsPdu.sequenceNumber();
+        assertThat(resultInt, is(1));
+    }
+
+    /**
+     * Tests checkSum() getter method.
+     */
+    @Test
+    public void testCheckSum() throws Exception {
+        lsPdu.setCheckSum(1);
+        resultInt = lsPdu.checkSum();
+        assertThat(resultInt, is(1));
+    }
+
+    /**
+     * Tests checkSum() setter method.
+     */
+    @Test
+    public void testSetCheckSum() throws Exception {
+        lsPdu.setCheckSum(1);
+        resultInt = lsPdu.checkSum();
+        assertThat(resultInt, is(1));
+    }
+
+    /**
+     * Tests partitionRepair() getter method.
+     */
+    @Test
+    public void testPartitionRepair() throws Exception {
+        lsPdu.setPartitionRepair(true);
+        resultBool = lsPdu.partitionRepair();
+        assertThat(resultBool, is(true));
+    }
+
+    /**
+     * Tests partitionRepair() setter method.
+     */
+    @Test
+    public void testSetPartitionRepair() throws Exception {
+        lsPdu.setPartitionRepair(true);
+        resultBool = lsPdu.partitionRepair();
+        assertThat(resultBool, is(true));
+    }
+
+    /**
+     * Tests attachedToOtherAreas() getter method.
+     */
+    @Test
+    public void testAttachedToOtherAreas() throws Exception {
+        lsPdu.setAttachedToOtherAreas(AttachedToOtherAreas.DEFAULTMETRIC);
+        resultObj = lsPdu.attachedToOtherAreas();
+        assertThat(resultObj, is(AttachedToOtherAreas.DEFAULTMETRIC));
+    }
+
+    /**
+     * Tests attachedToOtherAreas() setter method.
+     */
+    @Test
+    public void testSetAttachedToOtherAreas() throws Exception {
+        lsPdu.setAttachedToOtherAreas(AttachedToOtherAreas.DEFAULTMETRIC);
+        resultObj = lsPdu.attachedToOtherAreas();
+        assertThat(resultObj, is(AttachedToOtherAreas.DEFAULTMETRIC));
+    }
+
+    /**
+     * Tests intermediateSystemType() getter method.
+     */
+    @Test
+    public void testIntermediateSystemType() throws Exception {
+        lsPdu.setIntermediateSystemType((byte) 1);
+        resultByte = lsPdu.intermediateSystemType();
+        assertThat(resultByte, is((byte) 1));
+    }
+
+    /**
+     * Tests intermediateSystemType() setter method.
+     */
+    @Test
+    public void testSetIntermediateSystemType() throws Exception {
+        lsPdu.setIntermediateSystemType((byte) 1);
+        resultByte = lsPdu.intermediateSystemType();
+        assertThat(resultByte, is((byte) 1));
+    }
+
+    /**
+     * Tests lspId() getter method.
+     */
+    @Test
+    public void testLspId() throws Exception {
+        lsPdu.setLspId(lspId);
+        resultStr = lsPdu.lspId();
+        assertThat(resultStr, is(lspId));
+    }
+
+    /**
+     * Tests lspId() setter method.
+     */
+    @Test
+    public void testSetLspId() throws Exception {
+        lsPdu.setLspId(lspId);
+        resultStr = lsPdu.lspId();
+        assertThat(resultStr, is(lspId));
+    }
+
+    /**
+     * Tests pduLength() getter method.
+     */
+    @Test
+    public void testPduLength() throws Exception {
+        lsPdu.setPduLength(10);
+        resultInt = lsPdu.pduLength();
+        assertThat(resultInt, is(10));
+    }
+
+    /**
+     * Tests pduLength() setter method.
+     */
+    @Test
+    public void testSetPduLength() throws Exception {
+        lsPdu.setPduLength(10);
+        resultInt = lsPdu.pduLength();
+        assertThat(resultInt, is(10));
+    }
+
+    /**
+     * Tests readFrom() method.
+     */
+    @Test
+    public void testReadFrom() throws Exception {
+        channelBuffer = ChannelBuffers.copiedBuffer(l1Lsp);
+        lsPdu.readFrom(channelBuffer);
+        assertThat(lsPdu, is(notNullValue()));
+    }
+
+    /**
+     * Tests asBytes()  method.
+     */
+    @Test
+    public void testAsBytes() throws Exception {
+        channelBuffer = ChannelBuffers.copiedBuffer(l1Lsp);
+        lsPdu.readFrom(channelBuffer);
+        result = lsPdu.asBytes();
+        assertThat(result, is(notNullValue()));
+    }
+
+    /**
+     * Tests l1l2IsisPduHeader()  method.
+     */
+    @Test
+    public void testL1l2IsisPduHeader() throws Exception {
+        result = lsPdu.l1l2IsisPduHeader();
+        assertThat(result, is(notNullValue()));
+    }
+
+    /**
+     * Tests l1l2LsPduBody()  method.
+     */
+    @Test
+    public void testL1l2LsPduBody() throws Exception {
+        channelBuffer = ChannelBuffers.copiedBuffer(l1Lsp);
+        lsPdu.readFrom(channelBuffer);
+        result = lsPdu.l1l2LsPduBody();
+        assertThat(result, is(notNullValue()));
+    }
+
+    /**
+     * Tests toString()  method.
+     */
+    @Test
+    public void testToString() throws Exception {
+        assertThat(lsPdu.toString(), is(notNullValue()));
+    }
+
+    /**
+     * Tests equals()  method.
+     */
+    @Test
+    public void testEquals() throws Exception {
+        assertThat(lsPdu.equals(new LsPdu(new IsisHeader())), is(true));
+    }
+
+    /**
+     * Tests hashCode()  method.
+     */
+    @Test
+    public void testHashCode() throws Exception {
+        resultInt = lsPdu.hashCode();
+        assertThat(resultInt, is(notNullValue()));
+    }
+}
diff --git a/protocols/isis/isisio/src/test/java/org/onosproject/isis/io/isispacket/pdu/P2PHelloPduTest.java b/protocols/isis/isisio/src/test/java/org/onosproject/isis/io/isispacket/pdu/P2PHelloPduTest.java
new file mode 100644
index 0000000..b38c0cc
--- /dev/null
+++ b/protocols/isis/isisio/src/test/java/org/onosproject/isis/io/isispacket/pdu/P2PHelloPduTest.java
@@ -0,0 +1,241 @@
+/*
+ * Copyright 2016-present Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onosproject.isis.io.isispacket.pdu;
+
+import org.easymock.EasyMock;
+import org.jboss.netty.buffer.ChannelBuffer;
+import org.jboss.netty.buffer.ChannelBuffers;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.onosproject.isis.controller.IsisPduType;
+import org.onosproject.isis.io.isispacket.IsisHeader;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.notNullValue;
+import static org.hamcrest.MatcherAssert.assertThat;
+
+/**
+ * Unit test class for P2PHelloPdu.
+ */
+public class P2PHelloPduTest {
+    private final byte[] p2p = {
+            2, 51, 51, 51, 51, 51, 51, 0, 100, 5, -39, -126, 1, 4, 3,
+            73, 0, 0, -127, 1, -52, -124, 4, -64, -88, 56, 102, 8, -1,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 8, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, -1, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, -1, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 8, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 8, -81, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+    };
+    private P2PHelloPdu p2PHelloPdu;
+    private IsisHeader isisHeader;
+    private byte resultByte;
+    private ChannelBuffer channelBuffer;
+    private byte[] result;
+    private int resultInt;
+
+    @Before
+    public void setUp() throws Exception {
+        isisHeader = new IsisHeader();
+        isisHeader.setIsisPduType(IsisPduType.P2PHELLOPDU.value());
+        p2PHelloPdu = new P2PHelloPdu(isisHeader);
+        channelBuffer = EasyMock.createMock(ChannelBuffer.class);
+
+
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        isisHeader = null;
+        p2PHelloPdu = null;
+        channelBuffer = null;
+    }
+
+    /**
+     * Tests localCircuitId() getter method.
+     */
+    @Test
+    public void testLocalCircuitId() throws Exception {
+        p2PHelloPdu.setLocalCircuitId((byte) 1);
+        resultByte = p2PHelloPdu.localCircuitId();
+        assertThat(resultByte, is((byte) 1));
+    }
+
+    /**
+     * Tests localCircuitId() setter method.
+     */
+    @Test
+    public void testSetLocalCircuitId() throws Exception {
+        p2PHelloPdu.setLocalCircuitId((byte) 1);
+        resultByte = p2PHelloPdu.localCircuitId();
+        assertThat(resultByte, is((byte) 1));
+    }
+
+    /**
+     * Tests setVariableLengths() method.
+     */
+    @Test
+    public void testSetVariableLengths() throws Exception {
+
+
+    }
+
+    /**
+     * Tests readFrom() method.
+     */
+    @Test
+    public void testReadFrom() throws Exception {
+        channelBuffer = ChannelBuffers.copiedBuffer(p2p);
+        p2PHelloPdu.readFrom(channelBuffer);
+        assertThat(p2PHelloPdu, is(notNullValue()));
+    }
+
+    /**
+     * Tests asBytes() method.
+     */
+    @Test
+    public void testAsBytes() throws Exception {
+        channelBuffer = ChannelBuffers.copiedBuffer(p2p);
+        p2PHelloPdu.readFrom(channelBuffer);
+        result = p2PHelloPdu.asBytes();
+        assertThat(result, is(notNullValue()));
+    }
+
+    /**
+     * Tests p2PHeader() method.
+     */
+    @Test
+    public void testP2PHeader() throws Exception {
+        result = p2PHelloPdu.p2PHeader();
+        assertThat(result, is(notNullValue()));
+    }
+
+    /**
+     * Tests p2P2HelloPduBody() method.
+     */
+    @Test
+    public void testP2P2HelloPduBody() throws Exception {
+        channelBuffer = ChannelBuffers.copiedBuffer(p2p);
+        p2PHelloPdu.readFrom(channelBuffer);
+        result = p2PHelloPdu.p2P2HelloPduBody();
+        assertThat(result, is(notNullValue()));
+
+    }
+
+    /**
+     * Tests toString() method.
+     */
+    @Test
+    public void testToString() throws Exception {
+        assertThat(p2PHelloPdu.toString(), is(notNullValue()));
+    }
+
+    /**
+     * Tests equals() method.
+     */
+    @Test
+    public void testEquals() throws Exception {
+        assertThat(p2PHelloPdu.equals(new P2PHelloPdu(new IsisHeader())), is(true));
+    }
+
+    /**
+     * Tests hashCode() method.
+     */
+    @Test
+    public void testHashCode() throws Exception {
+        resultInt = p2PHelloPdu.hashCode();
+        assertThat(resultInt, is(notNullValue()));
+    }
+}
diff --git a/protocols/isis/isisio/src/test/java/org/onosproject/isis/io/isispacket/pdu/PsnpTest.java b/protocols/isis/isisio/src/test/java/org/onosproject/isis/io/isispacket/pdu/PsnpTest.java
new file mode 100644
index 0000000..6c760cf
--- /dev/null
+++ b/protocols/isis/isisio/src/test/java/org/onosproject/isis/io/isispacket/pdu/PsnpTest.java
@@ -0,0 +1,203 @@
+/*
+ * Copyright 2016-present Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onosproject.isis.io.isispacket.pdu;
+
+import org.easymock.EasyMock;
+import org.jboss.netty.buffer.ChannelBuffer;
+import org.jboss.netty.buffer.ChannelBuffers;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.onosproject.isis.controller.IsisPduType;
+import org.onosproject.isis.io.isispacket.IsisHeader;
+import org.onosproject.isis.io.isispacket.tlv.AdjacencyStateTlv;
+import org.onosproject.isis.io.isispacket.tlv.IsisTlv;
+import org.onosproject.isis.io.isispacket.tlv.TlvHeader;
+
+import java.util.List;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.notNullValue;
+import static org.hamcrest.MatcherAssert.assertThat;
+
+/**
+ * Unit test class for Psnp.
+ */
+public class PsnpTest {
+    private final String srcId = "1111.1111.1111";
+    private final byte[] psnpPkt = {
+            0, 35, 41, 41, 41, 41, 41, 41, 0, 9, 16, 4, -81, 18, 52, 18,
+            52, 0, 18, 0, 0, 0, 0, 0, 42, -94, -29
+    };
+    private Psnp psnp;
+    private IsisHeader isisHeader;
+    private ChannelBuffer channelBuffer;
+    private IsisTlv isisTlv;
+    private TlvHeader tlvHeader;
+    private List<IsisTlv> resultList;
+    private String resultStr;
+    private int resultInt;
+    private byte[] result;
+
+    @Before
+    public void setUp() throws Exception {
+        isisHeader = new IsisHeader();
+        isisHeader.setIsisPduType(IsisPduType.L1PSNP.value());
+        psnp = new Psnp(isisHeader);
+        tlvHeader = new TlvHeader();
+        channelBuffer = EasyMock.createMock(ChannelBuffer.class);
+        isisTlv = new AdjacencyStateTlv(tlvHeader);
+
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        isisHeader = null;
+        psnp = null;
+        channelBuffer = null;
+        tlvHeader = null;
+        isisTlv = null;
+        tlvHeader = null;
+    }
+
+    /**
+     * Tests addTlv() method.
+     */
+    @Test
+    public void testAddTlv() throws Exception {
+        psnp.addTlv(isisTlv);
+        resultList = psnp.getAllTlv();
+        assertThat(resultList.size(), is(1));
+
+    }
+
+    /**
+     * Tests getAllTlv() method.
+     */
+    @Test
+    public void testGetAllTlv() throws Exception {
+        psnp.addTlv(isisTlv);
+        resultList = psnp.getAllTlv();
+        assertThat(resultList.size(), is(1));
+
+    }
+
+    /**
+     * Tests sourceId() getter method.
+     */
+    @Test
+    public void testSourceId() throws Exception {
+        psnp.setSourceId(srcId);
+        resultStr = psnp.sourceId();
+        assertThat(resultStr, is(srcId));
+    }
+
+    /**
+     * Tests sourceId() setter method.
+     */
+    @Test
+    public void testSetSourceId() throws Exception {
+        psnp.setSourceId(srcId);
+        resultStr = psnp.sourceId();
+        assertThat(resultStr, is(srcId));
+    }
+
+    /**
+     * Tests pduLength() getter method.
+     */
+    @Test
+    public void testPduLength() throws Exception {
+        psnp.setPduLength(10);
+        resultInt = psnp.pduLength();
+        assertThat(resultInt, is(10));
+    }
+
+    /**
+     * Tests pduLength() setter method.
+     */
+    @Test
+    public void testSetPduLength() throws Exception {
+        psnp.setPduLength(10);
+        resultInt = psnp.pduLength();
+        assertThat(resultInt, is(10));
+    }
+
+    /**
+     * Tests readFrom() method.
+     */
+    @Test
+    public void testReadFrom() throws Exception {
+        channelBuffer = ChannelBuffers.copiedBuffer(psnpPkt);
+        psnp.readFrom(channelBuffer);
+        assertThat(psnp, is(notNullValue()));
+    }
+
+    /**
+     * Tests lasBytes() method.
+     */
+    @Test
+    public void testAsBytes() throws Exception {
+        channelBuffer = ChannelBuffers.copiedBuffer(psnpPkt);
+        psnp.readFrom(channelBuffer);
+        result = psnp.asBytes();
+        assertThat(result, is(notNullValue()));
+    }
+
+    /**
+     * Tests isisPduHeader() method.
+     */
+    @Test
+    public void testIsisPduHeader() throws Exception {
+        result = psnp.isisPduHeader();
+        assertThat(result, is(notNullValue()));
+    }
+
+    /**
+     * Tests partialSequenceNumberPduBody() method.
+     */
+    @Test
+    public void testPartialSequenceNumberPduBody() throws Exception {
+        channelBuffer = ChannelBuffers.copiedBuffer(psnpPkt);
+        psnp.readFrom(channelBuffer);
+        result = psnp.partialSequenceNumberPduBody();
+        assertThat(result, is(notNullValue()));
+    }
+
+    /**
+     * Tests toString() method.
+     */
+    @Test
+    public void testToString() throws Exception {
+        assertThat((psnp.toString()), is(notNullValue()));
+    }
+
+    /**
+     * Tests equals() method.
+     */
+    @Test
+    public void testEquals() throws Exception {
+        assertThat(psnp.equals(new Psnp(new IsisHeader())), is(true));
+    }
+
+    /**
+     * Tests hashCode() method.
+     */
+    @Test
+    public void testHashCode() throws Exception {
+        int hashCode = psnp.hashCode();
+        assertThat(hashCode, is(notNullValue()));
+    }
+}
diff --git a/protocols/isis/isisio/src/test/java/org/onosproject/isis/io/util/ChecksumCalculatorTest.java b/protocols/isis/isisio/src/test/java/org/onosproject/isis/io/util/ChecksumCalculatorTest.java
new file mode 100644
index 0000000..f8d58ce
--- /dev/null
+++ b/protocols/isis/isisio/src/test/java/org/onosproject/isis/io/util/ChecksumCalculatorTest.java
@@ -0,0 +1,75 @@
+/*
+ * Copyright 2016-present Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onosproject.isis.io.util;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+
+/**
+ * Unit test class for ChecksumCalculator.
+ */
+public class ChecksumCalculatorTest {
+
+    private final byte[] l1Lsp = {
+            -125, 27, 1, 0, 18, 1, 0, 0, 0, 86, 4, -81, 34, 34, 34,
+            34, 34, 34, 0, 0, 0, 0, 0, 9, 99, 11, 1, 1, 4, 3, 73,
+            0, 10, -127, 1, -52, -119, 2, 82, 50, -124, 4, -64, -88, 10, 1, -128,
+            24, 10, -128, -128, -128, 10, 0, 10, 0, -1, -1, -1, -4, 10, -128, -128,
+            -128, -64, -88, 10, 0, -1, -1, -1, 0, 2, 12, 0, 10, -128, -128, -128,
+            51, 51, 51, 51, 51, 51, 2
+    };
+    private ChecksumCalculator calculator;
+    private byte[] result;
+    private boolean result1;
+
+    @Before
+    public void setUp() throws Exception {
+        calculator = new ChecksumCalculator();
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        calculator = null;
+    }
+
+    /**
+     * Tests validateLspCheckSum() method.
+     */
+    @Test
+    public void testValidateLspCheckSum() throws Exception {
+        result1 = calculator.validateLspCheckSum(l1Lsp, IsisConstants.CHECKSUMPOSITION,
+                                                 IsisConstants.CHECKSUMPOSITION + 1);
+
+        assertThat(result1, is(true));
+    }
+
+    /**
+     * Tests calculateLspChecksum() method.
+     */
+    @Test
+    public void testCalculateLspChecksum() throws Exception {
+        result = calculator.calculateLspChecksum(l1Lsp, IsisConstants.CHECKSUMPOSITION,
+                                                 IsisConstants.CHECKSUMPOSITION + 1);
+        assertThat(result[0],
+                   is(l1Lsp[IsisConstants.CHECKSUMPOSITION]));
+        assertThat(result[1],
+                   is(l1Lsp[IsisConstants.CHECKSUMPOSITION + 1]));
+    }
+}
\ No newline at end of file
diff --git a/protocols/isis/isisio/src/test/java/org/onosproject/isis/io/util/IsisUtilTest.java b/protocols/isis/isisio/src/test/java/org/onosproject/isis/io/util/IsisUtilTest.java
new file mode 100644
index 0000000..b04ac14
--- /dev/null
+++ b/protocols/isis/isisio/src/test/java/org/onosproject/isis/io/util/IsisUtilTest.java
@@ -0,0 +1,267 @@
+/*
+ * Copyright 2016-present Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onosproject.isis.io.util;
+
+import com.google.common.primitives.Bytes;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.onlab.packet.Ip4Address;
+import org.onosproject.isis.controller.IsisPduType;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.notNullValue;
+import static org.junit.Assert.assertThat;
+
+/**
+ * Unit test class for IsisUtil.
+ */
+public class IsisUtilTest {
+
+    private final String systemId = "2929.2929.2929";
+    private final String lanId = "2929.2929.2929.01";
+    private final String areaAddres = "490001";
+    private final byte[] l1Lsp = {
+            -125, 27, 1, 0, 18, 1, 0, 0, 0, 86, 4, -81, 34, 34, 34,
+            34, 34, 34, 0, 0, 0, 0, 0, 9, 99, 11, 1, 1, 4, 3, 73,
+            0, 10, -127, 1, -52, -119, 2, 82, 50, -124, 4, -64, -88, 10, 1, -128,
+            24, 10, -128, -128, -128, 10, 0, 10, 0, -1, -1, -1, -4, 10, -128, -128,
+            -128, -64, -88, 10, 0, -1, -1, -1, 0, 2, 12, 0, 10, -128, -128, -128,
+            51, 51, 51, 51, 51, 51, 2
+    };
+    private final byte[] intger = {0, 0, 0, 1};
+    private Ip4Address ip4Address1 = Ip4Address.valueOf("10.10.10.10");
+    private Ip4Address ip4Address2 = Ip4Address.valueOf("10.10.10.11");
+    private Ip4Address mask = Ip4Address.valueOf("255.255.255.0");
+    private boolean result;
+    private String result1;
+    private byte[] result2;
+    private int result3;
+    private long result4;
+    private byte[] prefixBytes = {0, 0, 0, 1};
+    private String prefix = "192.16.17";
+
+    @Before
+    public void setUp() throws Exception {
+
+    }
+
+    @After
+    public void tearDown() throws Exception {
+
+    }
+
+    /**
+     * Tests sameNetwork() method.
+     */
+    @Test
+    public void testSameNetwork() throws Exception {
+        result = IsisUtil.sameNetwork(ip4Address1, ip4Address2, mask.toOctets());
+        assertThat(result, is(true));
+    }
+
+    /**
+     * Tests systemId() method.
+     */
+    @Test
+    public void testSystemId() throws Exception {
+        result1 = IsisUtil.systemId(Bytes.toArray(
+                IsisUtil.sourceAndLanIdToBytes(systemId)));
+        assertThat(result1, is(systemId));
+    }
+
+    /**
+     * Tests systemIdPlus() method.
+     */
+    @Test
+    public void testSystemIdPlus() throws Exception {
+        result1 = IsisUtil.systemIdPlus(Bytes.toArray(
+                IsisUtil.sourceAndLanIdToBytes(lanId)));
+        assertThat(result1, is(lanId));
+    }
+
+    /**
+     * Tests areaAddres() method.
+     */
+    @Test
+    public void testAreaAddres() throws Exception {
+        result1 = IsisUtil.areaAddres(Bytes.toArray(
+                IsisUtil.areaAddressToBytes(areaAddres)));
+        assertThat(result1, is(areaAddres));
+    }
+
+    /**
+     * Tests areaAddressToBytes() method.
+     */
+    @Test
+    public void testAreaAddressToBytes() throws Exception {
+        result2 = Bytes.toArray(IsisUtil.areaAddressToBytes(areaAddres));
+        assertThat(result2, is(notNullValue()));
+    }
+
+    /**
+     * Tests getPduHeaderLength() method.
+     */
+    @Test
+    public void testGetPduHeaderLength() throws Exception {
+        result3 = IsisUtil.getPduHeaderLength(IsisPduType.L1CSNP.value());
+        assertThat(result3, is(33));
+        result3 = IsisUtil.getPduHeaderLength(IsisPduType.L1PSNP.value());
+        assertThat(result3, is(17));
+        result3 = IsisUtil.getPduHeaderLength(IsisPduType.L1HELLOPDU.value());
+        assertThat(result3, is(27));
+        result3 = IsisUtil.getPduHeaderLength(IsisPduType.P2PHELLOPDU.value());
+        assertThat(result3, is(20));
+    }
+
+    /**
+     * Tests addLengthAndMarkItInReserved() method.
+     */
+    @Test
+    public void testAddLengthAndMarkItInReserved() throws Exception {
+        result2 = IsisUtil.addLengthAndMarkItInReserved(l1Lsp,
+                                                        IsisConstants.LENGTHPOSITION, IsisConstants.LENGTHPOSITION + 1,
+                                                        IsisConstants.RESERVEDPOSITION);
+        assertThat(result2, is(notNullValue()));
+    }
+
+    /**
+     * Tests addChecksum() method.
+     */
+    @Test
+    public void testAddChecksum() throws Exception {
+        result2 = IsisUtil.addChecksum(l1Lsp,
+                                       IsisConstants.CHECKSUMPOSITION, IsisConstants.CHECKSUMPOSITION + 1);
+        assertThat(result2, is(notNullValue()));
+    }
+
+    /**
+     * Tests framePacket() method.
+     */
+    @Test
+    public void testFramePacket() throws Exception {
+        result2 = IsisUtil.framePacket(l1Lsp, 2);
+        assertThat(result2, is(notNullValue()));
+    }
+
+    /**
+     * Tests sourceAndLanIdToBytes() method.
+     */
+    @Test
+    public void testSourceAndLanIdToBytes() throws Exception {
+        result2 = Bytes.toArray(IsisUtil.sourceAndLanIdToBytes(lanId));
+        assertThat(result2, is(notNullValue()));
+    }
+
+    /**
+     * Tests getPaddingTlvs() method.
+     */
+    @Test
+    public void testGetPaddingTlvs() throws Exception {
+        result2 = IsisUtil.getPaddingTlvs(250);
+        assertThat(result2, is(notNullValue()));
+    }
+
+    /**
+     * Tests convertToTwoBytes() method.
+     */
+    @Test
+    public void testConvertToTwoBytes() throws Exception {
+        result2 = IsisUtil.convertToTwoBytes(250);
+        assertThat(result2.length, is(2));
+    }
+
+    /**
+     * Tests convertToFourBytes() method.
+     */
+    @Test
+    public void testConvertToFourBytes() throws Exception {
+        result2 = IsisUtil.convertToFourBytes(250);
+        assertThat(result2.length, is(4));
+    }
+
+    /**
+     * Tests byteToInteger() method.
+     */
+    @Test
+    public void testByteToInteger() throws Exception {
+        result3 = IsisUtil.byteToInteger(intger);
+        assertThat(result3, is(1));
+    }
+
+    /**
+     * Tests byteToInteger() method.
+     */
+    @Test
+    public void testByteToLong() throws Exception {
+        result4 = IsisUtil.byteToLong(intger);
+        assertThat(result4, is(1L));
+    }
+
+    /**
+     * Tests convertToFourBytes() method.
+     */
+    @Test
+    public void testConvertToFourBytes1() throws Exception {
+        result2 = IsisUtil.convertToFourBytes(250L);
+        assertThat(result2.length, is(4));
+    }
+
+    /**
+     * Tests toFourBitBinary() method.
+     */
+    @Test
+    public void testToEightBitBinary() throws Exception {
+        result1 = IsisUtil.toEightBitBinary("01");
+        assertThat(result1.length(), is(8));
+    }
+
+    /**
+     * Tests toFourBitBinary() method.
+     */
+    @Test
+    public void testToFourBitBinary() throws Exception {
+        result1 = IsisUtil.toFourBitBinary("01");
+        assertThat(result1.length(), is(4));
+    }
+
+    /**
+     * Tests convertToThreeBytes() method.
+     */
+    @Test
+    public void testConvertToThreeBytes() throws Exception {
+        result2 = IsisUtil.convertToThreeBytes(30);
+        assertThat(result2.length, is(3));
+    }
+
+    /**
+     * Tests prefixConversion() method.
+     */
+    @Test
+    public void testPrefixConversion() throws Exception {
+        result1 = IsisUtil.prefixConversion(prefixBytes);
+        assertThat(result1, is(notNullValue()));
+    }
+
+    /**
+     * Tests prefixToBytes() method.
+     */
+    @Test
+    public void testPrefixToBytes() throws Exception {
+        result2 = IsisUtil.prefixToBytes(prefix);
+        assertThat(result2, is(notNullValue()));
+    }
+}
\ No newline at end of file
diff --git a/protocols/isis/isisio/src/test/java/org/onosproject/isis/io/util/LspGeneratorTest.java b/protocols/isis/isisio/src/test/java/org/onosproject/isis/io/util/LspGeneratorTest.java
new file mode 100644
index 0000000..03479d5
--- /dev/null
+++ b/protocols/isis/isisio/src/test/java/org/onosproject/isis/io/util/LspGeneratorTest.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright 2016-present Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onosproject.isis.io.util;
+
+import org.easymock.EasyMock;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.onosproject.isis.controller.IsisInterface;
+import org.onosproject.isis.controller.IsisLsdb;
+import org.onosproject.isis.controller.IsisPduType;
+import org.onosproject.isis.io.isispacket.IsisHeader;
+
+import static org.hamcrest.CoreMatchers.instanceOf;
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+
+/**
+ * Unit test class for LspGenerator.
+ */
+public class LspGeneratorTest {
+    private LspGenerator generator;
+    private IsisHeader isisHeader;
+    private IsisInterface isisInterface;
+    private IsisLsdb isisLsdb;
+
+    @Before
+    public void setUp() throws Exception {
+        generator = new LspGenerator();
+        isisLsdb = EasyMock.createMock(IsisLsdb.class);
+        isisInterface = EasyMock.createMock(IsisInterface.class);
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        generator = null;
+    }
+
+    /**
+     * Tests getHeader() method.
+     */
+    @Test
+    public void testGetHeader() throws Exception {
+        isisHeader = generator.getHeader(IsisPduType.L1CSNP);
+        assertThat(isisHeader, is(instanceOf(IsisHeader.class)));
+    }
+}
\ No newline at end of file