public void SimpleTestMethod() { Cdp.TryStaticInit(Cdp.MaxPayloadWithIDOverUdp); VirtualDatagramTransmitter transmitter = new VirtualDatagramTransmitter(); transmitter.Print(Console.Out); byte[] sendBuffer = new Byte[] { 0, 1, 2, 3, 4 }; byte[] receiveBuffer; Int32 length; // // Send Buffer // transmitter.Send(sendBuffer, 0, (UInt32)sendBuffer.Length); Assert.AreEqual(1, transmitter.DatagramsInSendQueue); // // Receive Buffer // receiveBuffer = new Byte[sendBuffer.Length]; length = transmitter.otherTransmitter.ReceiveNonBlocking(receiveBuffer, 0, (UInt32)receiveBuffer.Length); Assert.AreEqual(sendBuffer.Length, length); Assert.AreEqual(0, transmitter.DatagramsInSendQueue); CdpTest.AssertEqual(sendBuffer, receiveBuffer); length = transmitter.otherTransmitter.ReceiveNonBlocking(receiveBuffer, 0, (UInt32)sendBuffer.Length); Assert.AreEqual(-1, length); // // Send the buffer 5 times // for (int i = 0; i < 5; i++) { sendBuffer[0] = (Byte)i; transmitter.Send(sendBuffer, 0, (UInt32)sendBuffer.Length); Assert.AreEqual(i + 1, transmitter.DatagramsInSendQueue); } transmitter.Print(Console.Out); for (int i = 0; i < 5; i++) { Console.WriteLine("Receiving datagram {0}", i + 1); receiveBuffer = new Byte[sendBuffer.Length]; length = transmitter.otherTransmitter.ReceiveNonBlocking(receiveBuffer, 0, (UInt32)receiveBuffer.Length); Assert.AreEqual(sendBuffer.Length, length); Assert.AreEqual(4 - i, transmitter.DatagramsInSendQueue); sendBuffer[0] = (Byte)i; CdpTest.AssertEqual(sendBuffer, receiveBuffer); } length = transmitter.otherTransmitter.ReceiveNonBlocking(receiveBuffer, 0, (UInt32)sendBuffer.Length); Assert.AreEqual(-1, length); }
private VirtualDatagramTransmitter(VirtualDatagramTransmitter otherTransmitter) { this.otherTransmitter = otherTransmitter; this.sendQueue = new Queue <Datagram>(); }
public VirtualDatagramTransmitter() { this.otherTransmitter = new VirtualDatagramTransmitter(this); this.sendQueue = new Queue <Datagram>(); }