public void messages_are_played_back_in_real_time()
{
Stopwatch sw = new Stopwatch();
TimeSpan delay = TimeSpan.FromMilliseconds(15);
TimeSpan delayLow = TimeSpan.FromMilliseconds(14);
TimeSpan delayHigh = TimeSpan.FromMilliseconds(16);
Stream stream = RecordMessages(delay, CreateMessages());
using(var reader = new RecordedMessageReader(stream, true))
{
while(reader.Read() != null)
{
// This isn't great, the delay between the first message isn't written.
if(sw.IsRunning)
{
Assert.InRange(sw.Elapsed, delayLow, delayHigh);
sw.Reset();
}
sw.Start();
}
}
}