Пример #1
0
        public void OnDeskDetected_ForInvoked_SetsDesk(
            DeskProvider sut,
            IDesk desk)
        {
            sut.OnDeskDetected(desk);

            sut.Desk
            .Should( )
            .Be(desk);
        }
Пример #2
0
        public void OnDeskDetected_ForInvoked_CallsDeskDetectorStop(
            DeskProvider sut,
            [Freeze] IDeskDetector detector,
            IDesk desk)
        {
            sut.OnDeskDetected(desk);

            detector.Received( )
            .Stop( );
        }
Пример #3
0
        public void DeskDetected_ForInvoked_CallsDeskDetector(
            DeskProvider sut,
            [Freeze] IObservable <IDesk> deskDetected)
        {
            sut.DeskDetected
            .Subscribe( );

            deskDetected.ReceivedWithAnyArgs( )
            .Subscribe( );
        }
Пример #4
0
        public void Initialize_ForDeviceNameIsNull_Throws(
            DeskProvider sut,
            ulong deviceAddress,
            uint deviceTimeout)
        {
            Action action = () => sut.Initialize(null !,
                                                 deviceAddress,
                                                 deviceTimeout);

            action.Should( )
            .Throw <ArgumentException> ( )
            .WithParameter("deviceName");
        }
Пример #5
0
        public void Initialize_ForInvoked_SubscribesToDeskDetected(
            DeskProvider sut,
            [Freeze] IObservable <IDesk> deskDetected,
            string deviceName,
            ulong deviceAddress,
            uint deviceTimeout)
        {
            sut.Initialize(deviceName,
                           deviceAddress,
                           deviceTimeout);

            deskDetected.ReceivedWithAnyArgs( )
            .Subscribe( );
        }
Пример #6
0
        public void Dispose_ForInvoked_DisposesDeskDetected(
            DeskProvider sut,
            [Freeze] IDisposable deskDetected,
            string deviceName,
            ulong deviceAddress,
            uint deviceTimeout)
        {
            sut.Initialize(deviceName,
                           deviceAddress,
                           deviceTimeout)
            .Dispose( );

            deskDetected.Received( )
            .Dispose( );
        }
Пример #7
0
        public void StopDetecting_ForInvoked_CallsDeskDetectorStart(
            DeskProvider sut,
            [Freeze] IDeskDetector detector,
            string deviceName,
            ulong deviceAddress,
            uint deviceTimeout)
        {
            sut.Initialize(deviceName,
                           deviceAddress,
                           deviceTimeout)
            .StopDetecting( );

            detector.Received( )
            .Stop( );
        }
Пример #8
0
        public async Task TryGetDesk_ForInvoked_CallsDeskDetectorStart(
            DeskProvider sut,
            [Freeze] IDeskDetector detector,
            CancellationTokenSource source,
            string deviceName,
            ulong deviceAddress,
            uint deviceTimeout)
        {
            await sut.Initialize(deviceName,
                                 deviceAddress,
                                 deviceTimeout)
            .TryGetDesk(source.Token);

            detector.Received( )
            .Start( );
        }
Пример #9
0
        public void OnDeskDetected_ForInvoked_CallsDeskDetectedEventSet(
            DeskProvider sut,
            IDesk desk,
            CancellationTokenSource source)
        {
            Task.Run(() => sut.DoTryGetDesk(source.Token));

            Task.Run(() => sut.OnDeskDetected(desk),
                     source.Token);

            Thread.Sleep(500);     // not a good way but the only way at the moment

            sut.Desk
            .Should( )
            .Be(desk);

            source.Cancel(false);
        }
Пример #10
0
        public async Task TryGetDesk_ForCancelled_ReturnsNullForDesk(
            DeskProvider sut,
            [Freeze] IDeskDetector detector,
            CancellationTokenSource source,
            string deviceName,
            ulong deviceAddress,
            uint deviceTimeout)
        {
            detector.When(x => x.Initialize(deviceName,
                                            deviceAddress,
                                            deviceTimeout))
            .Do(info => { source.Cancel( ); });

            var(_, desk) = await sut.Initialize(deviceName,
                                                deviceAddress,
                                                deviceTimeout)
                           .TryGetDesk(source.Token);

            desk.Should( )
            .BeNull( );
        }