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

Change-Id: If2ef21201d4d86a2f3f4b95365d41a01d8feda98
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