public void MonitorUsesIBinaryProfilerCallbacks(bool isWriting) { //Arrange const int taskWaitTimeout = MinimumStreamMillisecondsDuration + MinimumStreamMillisecondsDuration / 10; var stream = new MemoryStream(); var profilerMock = new Mock <IBinaryProfiler>(); var sut = new BinaryProfilerStreamMonitor(profilerMock.Object, isWriting, StreamSyncRoot); var writerTask = new Task(_constantWriter, stream); writerTask.Start(); //Act var actual = sut.Monitor(stream, new CancellationToken()); actual.Wait(taskWaitTimeout); writerTask.Wait(taskWaitTimeout); //Assert if (isWriting) { profilerMock.Verify(p => p.OnBytesWrote(It.IsAny <byte[]>(), It.IsAny <int>())); } else { profilerMock.Verify(p => p.OnBytesRead(It.IsAny <byte[]>(), It.IsAny <int>())); } }
public void MonitorUsesCancellationToken(bool isWriting) { //Arrange const int taskWaitTimeout = MinimumStreamMillisecondsDuration + MinimumStreamMillisecondsDuration / 10; var stream = new MemoryStream(); var profilerMock = new Mock <IBinaryProfiler>(); var sut = new BinaryProfilerStreamMonitor(profilerMock.Object, isWriting, StreamSyncRoot); var writerTask = new Task(_constantWriter, stream); writerTask.Start(); var cancellationToken = new CancellationToken(true); //Act sut.Monitor(stream, cancellationToken); writerTask.Wait(taskWaitTimeout); //Assert profilerMock.Verify(p => p.OnBytesWrote(It.IsAny <byte[]>(), It.IsAny <int>()), Times.Never); profilerMock.Verify(p => p.OnBytesRead(It.IsAny <byte[]>(), It.IsAny <int>()), Times.Never); }