package net.floodlightcontroller.packet; import static org.junit.Assert.assertTrue; import java.util.Arrays; import org.junit.Test; /** * @author Jacob Chappell (jacob.chappell@uky.edu) */ public class SPUDTest { @Test public void testSerializeCommandOpen() { byte[] expected = new byte[] { (byte) 0xd8, 0x00, 0x00, (byte) 0xd8, (byte) 0xb6, 0x40, 0x17, (byte) 0x88, 0x0a, 0x51, 0x01, 0x07, 0x40 }; SPUD packet = (new SPUD()) .setTubeID(0xb64017880a510107L) .setCommand(SPUD.COMMAND_OPEN) .setADEC(false) .setPDEC(false) .setReserved((byte) 0); byte[] actual = packet.serialize(); assertTrue(Arrays.equals(expected, actual)); } @Test public void testSerializeCommandDataEmpty() { byte[] expected = new byte[] { (byte) 0xd8, 0x00, 0x00, (byte) 0xd8, (byte) 0xb6, 0x40, 0x17, (byte) 0x88, 0x0a, 0x51, 0x01, 0x07, 0x00 }; SPUD packet = (new SPUD()) .setTubeID(0xb64017880a510107L) .setCommand(SPUD.COMMAND_DATA) .setADEC(false) .setPDEC(false) .setReserved((byte) 0); byte[] actual = packet.serialize(); assertTrue(Arrays.equals(expected, actual)); } @Test public void testSerializeCommandDataEmptyWithADEC() { byte[] expected = new byte[] { (byte) 0xd8, 0x00, 0x00, (byte) 0xd8, (byte) 0xb6, 0x40, 0x17, (byte) 0x88, 0x0a, 0x51, 0x01, 0x07, 0x20 }; SPUD packet = (new SPUD()) .setTubeID(0xb64017880a510107L) .setCommand(SPUD.COMMAND_DATA) .setADEC(true) .setPDEC(false) .setReserved((byte) 0); byte[] actual = packet.serialize(); assertTrue(Arrays.equals(expected, actual)); } @Test public void testSerializeCommandDataEmptyWithPDEC() { byte[] expected = new byte[] { (byte) 0xd8, 0x00, 0x00, (byte) 0xd8, (byte) 0xb6, 0x40, 0x17, (byte) 0x88, 0x0a, 0x51, 0x01, 0x07, 0x10 }; SPUD packet = (new SPUD()) .setTubeID(0xb64017880a510107L) .setCommand(SPUD.COMMAND_DATA) .setADEC(false) .setPDEC(true) .setReserved((byte) 0); byte[] actual = packet.serialize(); assertTrue(Arrays.equals(expected, actual)); } @Test public void testSerializeCommandDataEmptyWithBoth() { byte[] expected = new byte[] { (byte) 0xd8, 0x00, 0x00, (byte) 0xd8, (byte) 0xb6, 0x40, 0x17, (byte) 0x88, 0x0a, 0x51, 0x01, 0x07, 0x30 }; SPUD packet = (new SPUD()) .setTubeID(0xb64017880a510107L) .setCommand(SPUD.COMMAND_DATA) .setADEC(true) .setPDEC(true) .setReserved((byte) 0); byte[] actual = packet.serialize(); assertTrue(Arrays.equals(expected, actual)); } @Test public void testDeserialize() throws PacketParsingException { byte[] spudPacket = { (byte) 0xd8, 0x00, 0x00, (byte) 0xd8, (byte) 0xb6, 0x40, 0x17, (byte) 0x88, 0x0a, 0x51, 0x01, 0x07, 0x00, (byte) 0xa1, 0x00, (byte) 0xa2, 0x68, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x65, 0x4a, 0x61, 0x63, 0x6f, 0x62, 0x67, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x68, 0x61, 0x73, 0x20, 0x6a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x6f, 0x6f, 0x6d }; SPUD packet = new SPUD(); packet.deserialize(spudPacket, 0, spudPacket.length); byte[] packetSerialized = packet.serialize(); assertTrue(Arrays.equals(spudPacket, packetSerialized)); } }