public void can_read_recorded_messages() { Message actual; Message[] messages = CreateMessages(); Stream stream = RecordMessages(messages); using(var reader = new RecordedMessageReader(stream, true)) { foreach(var expected in messages) { actual = reader.Read(); Assert.IsType(expected.GetType(), actual); } } }
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(); } } }