예제 #1
0
        public void CleanUp_ForOneExpiredDeviceInCollection_RemovesDeviceFromCollection(
            ILogger logger,
            IDateTimeOffset dateTimeOffset,
            IDeviceMonitor deviceMonitor,
            ISubject <IDevice> deviceExpired,
            ObservableTimerFactory factory,
            TestScheduler scheduler,
            IDevice device)
        {
            deviceMonitor.DiscoveredDevices
            .Returns(new[] { device });

            var sut = new DeviceMonitorWithExpiry(logger,
                                                  dateTimeOffset,
                                                  deviceMonitor,
                                                  deviceExpired,
                                                  factory,
                                                  scheduler);

            dateTimeOffset.Ticks
            .Returns(sut.TimeOut.Ticks);
            dateTimeOffset.Now
            .Returns(dateTimeOffset);

            device.BroadcastTime
            .Ticks
            .Returns(0);

            scheduler.AdvanceBy(sut.TimeOut.Ticks + 1);

            deviceMonitor.Received()
            .RemoveDevice(device);
        }
예제 #2
0
        public void Stop_ForInvoked_CallsDeviceMonitor(
            DeviceMonitorWithExpiry sut,
            [Freeze] IDeviceMonitor monitor)
        {
            sut.Stop();

            monitor.Received()
            .Stop();
        }
예제 #3
0
        public void Dispose_ForInvoked_DisposesMonitor(
            DeviceMonitorWithExpiry sut,
            [Freeze] IDeviceMonitor monitor)
        {
            sut.Dispose();

            monitor.Received()
            .Dispose();
        }
예제 #4
0
        public void RemoveDevice_ForInvoked_CallsDeviceMonitor(
            DeviceMonitorWithExpiry sut,
            [Freeze] IDeviceMonitor monitor,
            IDevice device)
        {
            sut.RemoveDevice(device);

            monitor.Received()
            .RemoveDevice(device);
        }
예제 #5
0
        public void OnError_ForInvoked_CallsStop(
            ILogger logger,
            IDateTimeOffset dateTimeOffset,
            IDeviceMonitor deviceMonitor,
            ISubject <IDevice> deviceExpired,
            IObservableTimerFactory factory,
            TestScheduler scheduler)
        {
            factory.Create(Arg.Any <TimeSpan>(),
                           Arg.Any <IScheduler>())
            .Returns(Observable.Throw <long>(new Exception()));

            var sut = new DeviceMonitorWithExpiry(logger,
                                                  dateTimeOffset,
                                                  deviceMonitor,
                                                  deviceExpired,
                                                  factory,
                                                  scheduler);

            scheduler.AdvanceBy(sut.TimeOut.Ticks);

            deviceMonitor.Received()
            .Stop();
        }