Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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>();
        }
Пример #4
0
        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>();
        }
Пример #5
0
        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>();
        }