Exemple #1
0
        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>()));
            }
        }
Exemple #2
0
        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);
        }