import junit.framework.Assert;
import org.junit.Test;
-import org.opendaylight.controller.sal.packet.ICMP;
public class ICMPTest {
@Test
public void testSetTypeCode() {
ICMP icmp = new ICMP();
- short icmpTypeCode = 2;
- icmp.setTypeCode(icmpTypeCode);
- byte[] typeCode = icmp.hdrFieldsMap.get("TypeCode");
- Assert.assertTrue(typeCode[0] == 0);
- Assert.assertTrue(typeCode[1] == 2);
+ byte icmpType = 2;
+ icmp.setType(icmpType);
+ byte[] typeCode = icmp.hdrFieldsMap.get("Type");
+ Assert.assertTrue(typeCode[0] == 2);
}
ICMP icmp = new ICMP();
short icmpChecksum = 200;
icmp.setChecksum(icmpChecksum);
- byte[] checksum = icmp.hdrFieldsMap.get("HeaderChecksum");
+ byte[] checksum = icmp.hdrFieldsMap.get("Checksum");
Assert.assertTrue(checksum[0] == 0);
Assert.assertTrue(checksum[1] == -56);
Assert.assertTrue(sequenceNumber[1] == -120);
}
+
+ @Test
+ public void testSerialization() throws PacketException {
+ byte icmpRawPayload[] = { (byte) 0x38, (byte) 0x26, (byte) 0x9e,
+ (byte) 0x51, (byte) 0x00, (byte) 0x00, (byte) 0x00,
+ (byte) 0x00, (byte) 0x2e, (byte) 0x6a, (byte) 0x08,
+ (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00,
+ (byte) 0x00, (byte) 0x10, (byte) 0x11, (byte) 0x12,
+ (byte) 0x13, (byte) 0x14, (byte) 0x15, (byte) 0x16,
+ (byte) 0x17, (byte) 0x18, (byte) 0x19, (byte) 0x1a,
+ (byte) 0x1b, (byte) 0x1c, (byte) 0x1d, (byte) 0x1e,
+ (byte) 0x1f, (byte) 0x20, (byte) 0x21, (byte) 0x22,
+ (byte) 0x23, (byte) 0x24, (byte) 0x25, (byte) 0x26,
+ (byte) 0x27, (byte) 0x28, (byte) 0x29, (byte) 0x2a,
+ (byte) 0x2b, (byte) 0x2c, (byte) 0x2d, (byte) 0x2e,
+ (byte) 0x2f, (byte) 0x30, (byte) 0x31, (byte) 0x32,
+ (byte) 0x33, (byte) 0x34, (byte) 0x35, (byte) 0x36, (byte) 0x37 };
+
+ short checksum = (short)0xe553;
+
+ // Create ICMP object
+ ICMP icmp = new ICMP();
+ icmp.setType((byte)8);
+ icmp.setCode((byte)0);
+ icmp.setIdentifier((short) 0x46f5);
+ icmp.setSequenceNumber((short) 2);
+ icmp.setRawPayload(icmpRawPayload);
+ //icmp.setChecksum(checksum);
+
+ // Serialize
+ byte[] stream = icmp.serialize();
+ Assert.assertTrue(stream.length == 64);
+
+ // Deserialize
+ ICMP icmpDes = new ICMP();
+ icmpDes.deserialize(stream, 0, stream.length);
+
+ Assert.assertFalse(icmpDes.isCorrupted());
+ Assert.assertTrue(icmpDes.getChecksum() == checksum);
+ Assert.assertTrue(icmp.equals(icmpDes));
+ }
}