Пример #1
0
        public async Task <bool> GetLockForFileWaitSuccess()
        {
            var result = FileStreamer.GetLockForFile(Filename);

            MockSemaphoreFactory.Verify(x => x.Create(1, 1), Times.Once);
            return(await result);
        }
Пример #2
0
        public async Task UnlockFileWhenThereIsNoLock()
        {
            await FileStreamer.UnlockFile(Filename);

            MockSemaphoreFactory.Verify(x => x.Create(1, 1), Times.Never);
            MockSemaphore.Verify(x => x.Release(), Times.Never);
        }
Пример #3
0
        public async Task <bool> GetLockForFileWaitFails()
        {
            MockSemaphore
            .Setup(x => x.Wait(It.Is <TimeSpan>(y => Math.Abs(y.TotalMinutes - 1) < 1)))
            .Returns(false);
            var result = FileStreamer.GetLockForFile(Filename);

            MockSemaphoreFactory.Verify(x => x.Create(1, 1), Times.Once);
            return(await result);
        }
Пример #4
0
        public async Task UnlockFileWhenThereIsALockMultipleTimes()
        {
            await FileStreamer.GetLockForFile(Filename);

            await FileStreamer.UnlockFile(Filename);

            await FileStreamer.UnlockFile(Filename);

            MockSemaphoreFactory.Verify(x => x.Create(1, 1), Times.Once);
            MockSemaphore.Verify(x => x.Release(), Times.Exactly(2));
        }