public void ShouldNotThrowWhenNonVoidMethodIsSynchronizedCorrectly() { //GIVEN var wrappedObjectMock = Substitute.For <IMyService>(); var service = new SemaphoreSynchronizedMyService(wrappedObjectMock, Semaphore()); //WHEN - THEN service.Should().SynchronizeAccessTo(s => s.CallWithResult("alabama"), Blocking.On(service.Lock), wrappedObjectMock); }
public async Task ShouldNotThrowWhenAsyncMethodIsSynchronizedCorrectly() { //GIVEN var wrappedObjectMock = Substitute.For <IMyService>(); var service = new SemaphoreSynchronizedMyService(wrappedObjectMock, Semaphore()); //WHEN - THEN await service.Should().SynchronizeAsyncAccessTo( s => s.AsyncCall(1), Blocking.On(service.Lock), wrappedObjectMock); }
public void ShouldThrowWhenVoidMethodDoesNotExitSynchronization() { //GIVEN var wrappedObjectMock = Substitute.For <IMyService>(); var service = new SemaphoreSynchronizedMyService(wrappedObjectMock, Semaphore()); //WHEN - THEN new Action(() => service.Should().SynchronizeAccessTo(s => s.VoidCallNotExited(1), Blocking.On(service.Lock), wrappedObjectMock)) .Should().ThrowExactly <XunitException>(); }
public void ShouldThrowWhenNonVoidMethodDoesNotEnterSynchronizationAtAll() { //GIVEN var wrappedObjectMock = Substitute.For <IMyService>(); var service = new SemaphoreSynchronizedMyService(wrappedObjectMock, Semaphore()); //WHEN - THEN new Action(() => service.Should().SynchronizeAccessTo(s => s.CallWithResultNotEntered("alabama"), Blocking.On(service.Lock), wrappedObjectMock)) .Should().ThrowExactly <XunitException>(); }
public async Task ShouldThrowWhenAsyncMethodDoesNotExitSynchronization() { //GIVEN var wrappedObjectMock = Substitute.For <IMyService>(); var service = new SemaphoreSynchronizedMyService(wrappedObjectMock, Semaphore()); //WHEN - THEN await service.Awaiting(s => s.Should() .SynchronizeAsyncAccessTo( s => s.AsyncCallNotExited(1), Blocking.On(service.Lock), wrappedObjectMock)) .Should().ThrowExactlyAsync <XunitException>(); }