public void Read()
{
const int sleepTime = 100;
var target = new PipeStream();
target.WriteByte(0x0a);
target.WriteByte(0x0d);
target.WriteByte(0x09);
var readBuffer = new byte[2];
var bytesRead = target.Read(readBuffer, 0, readBuffer.Length);
Assert.AreEqual(2, bytesRead);
Assert.AreEqual(0x0a, readBuffer[0]);
Assert.AreEqual(0x0d, readBuffer[1]);
var writeToStreamThread = new Thread(
() =>
{
Thread.Sleep(sleepTime);
var writeBuffer = new byte[] {0x05, 0x03};
target.Write(writeBuffer, 0, writeBuffer.Length);
});
writeToStreamThread.Start();
readBuffer = new byte[2];
bytesRead = target.Read(readBuffer, 0, readBuffer.Length);
Assert.AreEqual(2, bytesRead);
Assert.AreEqual(0x09, readBuffer[0]);
Assert.AreEqual(0x05, readBuffer[1]);
}