public void Packet_NullPayload() { var pa = new PacketAssembler(CreateLogger <PacketAssembler>()); var packet = new TcpPacket(0, 0); pa.Assemble(packet); }
public void Packet_MultiplePackets() { IList <byte[]> assembledPayloads = new List <byte[]>(); var pa = new PacketAssembler(CreateLogger <PacketAssembler>()); pa.PayloadReady += (s, e) => { assembledPayloads.Add(e.Payload); }; var p1 = CreatePacketPayload(new byte[] { 0x01, 0x01, 0x01 }); var p2 = CreatePacketPayload(new byte[] { 0x02, 0x02, 0x02 }); var p3 = CreatePacketPayload(new byte[] { 0x03, 0x03, 0x03 }); var payload = p1.Concat(p2.Concat(p3)).ToArray(); var packet = new TcpPacket(0, 0); packet.Push = true; packet.Acknowledgment = true; packet.PayloadData = payload; pa.Assemble(packet); Assert.AreEqual(3, assembledPayloads.Count); Assert.IsTrue(Enumerable.SequenceEqual(p1.Skip(2), assembledPayloads[0])); Assert.IsTrue(Enumerable.SequenceEqual(p2.Skip(2), assembledPayloads[1])); Assert.IsTrue(Enumerable.SequenceEqual(p3.Skip(2), assembledPayloads[2])); }
public void Packet_FragmentedSinglePacket_Three() { byte[] assembledPayload = null; var pa = new PacketAssembler(CreateLogger <PacketAssembler>()); pa.PayloadReady += (s, e) => { assembledPayload = e.Payload; }; var payload = CreatePacketPayload(new byte[] { 0x01, 0x01, 0x01 }); var packet = new TcpPacket(0, 0); packet.Push = false; packet.Acknowledgment = true; packet.PayloadData = payload.Take(3).ToArray(); pa.Assemble(packet); packet = new TcpPacket(0, 0); packet.Push = false; packet.Acknowledgment = true; packet.PayloadData = payload.Skip(2).Take(1).ToArray(); pa.Assemble(packet); packet = new TcpPacket(0, 0); packet.Push = true; packet.Acknowledgment = true; packet.PayloadData = payload.Skip(payload.Length - 1).ToArray(); pa.Assemble(packet); Assert.IsTrue(Enumerable.SequenceEqual(payload.Skip(2), assembledPayload)); }
public void Packet_InvalidPayload() { var payloadReady = false; var pa = new PacketAssembler(CreateLogger <PacketAssembler>()); pa.PayloadReady += (s, e) => { payloadReady = true; }; var packet = new TcpPacket(0, 0); packet.PayloadData = new byte[] { 0x01 }; pa.Assemble(packet); Assert.IsFalse(payloadReady); }
public void Packet_CompleteSinglePacket_NoPush() { var payloadReady = false; var pa = new PacketAssembler(CreateLogger <PacketAssembler>()); pa.PayloadReady += (s, e) => { payloadReady = true; }; var packet = new TcpPacket(0, 0); packet.Push = false; packet.Acknowledgment = true; packet.PayloadData = CreatePacketPayload(new byte[] { 0x01 }); pa.Assemble(packet); Assert.IsFalse(payloadReady); }
public void NullPacket_ArgumentException() { var pa = new PacketAssembler(CreateLogger <PacketAssembler>()); pa.Assemble(null); }
public void Initialize_NoErrors() { var pa = new PacketAssembler(CreateLogger <PacketAssembler>()); }