コード例 #1
0
        public void ShouldNotThrowWhenNonVoidMethodIsMonitorSynchronizedCorrectly()
        {
            //GIVEN
            var wrappedObjectMock = Substitute.For <IMyService>();
            var service           = new MonitorSynchronizedMyService(wrappedObjectMock, new object());

            //WHEN - THEN
            service.Should().SynchronizeAccessTo(s => s.CallWithResult("alabama"), Blocking.MonitorOn(service.Lock), wrappedObjectMock);
        }
コード例 #2
0
        public void ShouldNotThrowWhenVoidMethodIsMonitorSynchronizedCorrectly()
        {
            //GIVEN
            var wrappedObjectMock = Substitute.For <MyService>();
            var service           = new MonitorSynchronizedMyService(wrappedObjectMock, new object());

            //WHEN - THEN
            service.AssertSynchronizes(wrappedObjectMock, s => s.VoidCall(1), Blocking.MonitorOn(service.Lock));
        }
        public void ShouldSynchronizeCallsToInnerInstanceWithMonitor()
        {
            //GIVEN
            var useCases = Substitute.For <UseCases>();
            var proxy    = new SynchronizedUseCases(useCases);
            var sender   = Any.Object();
            var events   = Any.Instance <RoutedEventArgs>();
            var path     = Any.Instance <ChangedPath>();

            proxy.AssertSynchronizes(useCases, cases => cases.CopyFileToClipboard(), Blocking.MonitorOn(proxy._syncRoot));
            proxy.AssertSynchronizes(useCases, cases => cases.Initialize(), Blocking.MonitorOn(proxy._syncRoot));
            proxy.AssertSynchronizes(useCases, cases => cases.OpenFolder(), Blocking.MonitorOn(proxy._syncRoot));
            proxy.AssertSynchronizes(useCases, cases => cases.OnChanged(path), Blocking.MonitorOn(proxy._syncRoot));
        }
コード例 #4
0
        public void ShouldThrowWhenNonVoidMethodDoesNotExitMonitor()
        {
            //GIVEN
            var wrappedObjectMock = Substitute.For <IMyService>();
            var service           = new MonitorSynchronizedMyService(wrappedObjectMock, new object());

            //WHEN - THEN
            new Action(() =>
                       service.Should().SynchronizeAccessTo(s => s.CallWithResultNotExited("alabama"), Blocking.MonitorOn(service.Lock), wrappedObjectMock))
            .Should().ThrowExactly <Exception>();
        }
コード例 #5
0
        public void ShouldThrowWhenVoidMethodDoesNotExitMonitorOnException()
        {
            //GIVEN
            var wrappedObjectMock = Substitute.For <IMyService>();
            var service           = new MonitorSynchronizedMyService(wrappedObjectMock, new object());

            //WHEN - THEN
            new Action(() =>
                       service.Should().SynchronizeAccessTo(s => s.VoidCallNotExitedOnException(1), Blocking.MonitorOn(service.Lock), wrappedObjectMock))
            .Should().ThrowExactly <ReceivedCallsException>();
        }
コード例 #6
0
        public void ShouldThrowWhenVoidMethodDoesNotExitMonitor()
        {
            //GIVEN
            var wrappedObjectMock = Substitute.For <MyService>();
            var service           = new MonitorSynchronizedMyService(wrappedObjectMock, new object());

            //WHEN - THEN
            Assert.Catch <Exception>(() =>
                                     service.AssertSynchronizes(wrappedObjectMock, s => s.VoidCallNotExited(1), Blocking.MonitorOn(service.Lock)));
        }
コード例 #7
0
        public void ShouldThrowWhenNonVoidMethodDoesNotExitMonitorOnException()
        {
            //GIVEN
            var wrappedObjectMock = Substitute.For <MyService>();
            var service           = new MonitorSynchronizedMyService(wrappedObjectMock, new object());

            //WHEN - THEN
            Assert.Catch <Exception>(() =>
                                     service.AssertSynchronizes(s => s.CallWithResultNotExitedOnException("alabama"), Blocking.MonitorOn(service.Lock), wrappedObjectMock));
        }