public async Task <bool> GetLockForFileWaitSuccess() { var result = FileStreamer.GetLockForFile(Filename); MockSemaphoreFactory.Verify(x => x.Create(1, 1), Times.Once); return(await result); }
public async Task UnlockFileWhenThereIsNoLock() { await FileStreamer.UnlockFile(Filename); MockSemaphoreFactory.Verify(x => x.Create(1, 1), Times.Never); MockSemaphore.Verify(x => x.Release(), Times.Never); }
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); }
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)); }