Replaced bitwise operator usage with java lang APIs for robustness. Had found that...
[packetcable.git] / packetcable-driver / src / test / java / org / umu / cops / stack / COPSMsgParserTest.java
index 70163f93746bffc328625500a5082e9c3752b89e..9615d11301e6bdc2ef076278c9b1345dadcaacb4 100644 (file)
@@ -1,7 +1,14 @@
+/*
+ * (c) 2015 Cable Television Laboratories, Inc.  All rights reserved.
+ */
+
 package org.umu.cops.stack;
 
 import org.junit.Assert;
 import org.junit.Test;
+import org.pcmm.rcd.IPCMMClient;
+
+import java.util.Random;
 
 /**
  * Tests the public static COPSMsgParser methods
@@ -35,6 +42,79 @@ public class COPSMsgParserTest {
         }
     }
 
+    @Test
+    public void testBytesToShortMin() {
+        final byte byte1 = (byte)0;
+        final byte byte2 = (byte)0;
+        final short val = COPSMsgParser.bytesToShort(byte1, byte2);
+        final byte[] outBytes = COPSMsgParser.shortToBytes(val);
+        Assert.assertEquals(byte1, outBytes[0]);
+        Assert.assertEquals(byte2, outBytes[1]);
+        Assert.assertEquals(0, val);
+    }
+
+    @Test
+    public void testBytesToShortMax() {
+        final byte byte1 = (byte)255;
+        final byte byte2 = (byte)255;
+        final short val = COPSMsgParser.bytesToShort(byte1, byte2);
+        final byte[] outBytes = COPSMsgParser.shortToBytes(val);
+        Assert.assertEquals(byte1, outBytes[0]);
+        Assert.assertEquals(byte2, outBytes[1]);
+    }
+
+    @Test
+    public void bytesToShortAndBack() {
+        final Random rnd = new Random();
+        final short val = (short)rnd.nextInt();
+        final byte[] bytes = COPSMsgParser.shortToBytes(val);
+        final short parsed = COPSMsgParser.bytesToShort(bytes[0], bytes[1]);
+        Assert.assertEquals(val, parsed);
+    }
+
+    @Test
+    public void testBytesToIntMin() {
+        final byte byte1 = (byte)0;
+        final byte byte2 = (byte)0;
+        final byte byte3 = (byte)0;
+        final byte byte4 = (byte)0;
+        final int val = COPSMsgParser.bytesToInt(byte1, byte2, byte3, byte4);
+        final byte[] outBytes = COPSMsgParser.intToBytes(val);
+        Assert.assertEquals(byte1, outBytes[0]);
+        Assert.assertEquals(byte2, outBytes[1]);
+        Assert.assertEquals(byte3, outBytes[2]);
+        Assert.assertEquals(byte4, outBytes[3]);
+        Assert.assertEquals(0, val);
+    }
+
+    @Test
+    public void intToBytesAndBack() {
+        final int val = 100001;
+        final byte[] bytes = COPSMsgParser.intToBytes(val);
+        final int parsed = COPSMsgParser.bytesToInt(bytes[0], bytes[1], bytes[2], bytes[3]);
+        Assert.assertEquals(val, parsed);
+        System.out.println("Sucessfully converted value - " + val);
+    }
+
+    @Test
+    public void randomIntToBytesAndBack() {
+        for (int i = 0; i < 5; i++) {
+            final Random rnd = new Random();
+            final int val = rnd.nextInt();
+            final byte[] bytes = COPSMsgParser.intToBytes(val);
+            final int parsed = COPSMsgParser.bytesToInt(bytes[0], bytes[1], bytes[2], bytes[3]);
+            Assert.assertEquals(val, parsed);
+            System.out.println("Sucessfully converted value - " + val);
+        }
+    }
+
+    @Test
+    public void testBytesToShortPCMMClientType() {
+        final byte[] outBytes = COPSMsgParser.shortToBytes(IPCMMClient.CLIENT_TYPE);
+        final short val = COPSMsgParser.bytesToShort(outBytes[0], outBytes[1]);
+        Assert.assertEquals(IPCMMClient.CLIENT_TYPE, val);
+    }
+
     @Test(expected = IllegalArgumentException.class)
     public void testCombineByte1TooBig() {
         COPSMsgParser.combineNibbles((byte)16, (byte)0);