public void Initialize() { _logger = Substitute.For <ILogger>(); _scheduler = new TestScheduler(); _monitor = Substitute.For <IDeviceMonitorWithExpiry>(); _factory = Substitute.For <IDeskFactory>(); _deskDetected = new Subject <IDesk>(); _updated = new Subject <IDevice>(); _monitor.DeviceUpdated.Returns(_updated); _discovered = new Subject <IDevice>(); _monitor.DeviceDiscovered.Returns(_discovered); _nameChanged = new Subject <IDevice>(); _monitor.DeviceNameUpdated.Returns(_discovered); _deskFound = new Subject <IDevice>(); _monitor.DeviceUpdated.Returns(_deskFound); _device = Substitute.For <IDevice>(); _device.Name.Returns(DeviceName); _device.Address.Returns(DeviceAddress); _desk = Substitute.For <IDesk>(); _deskOther = Substitute.For <IDesk>(); _factory.CreateAsync(_device.Address) .Returns(_desk, _deskOther); }
public DeskDetector([NotNull] ILogger logger, [NotNull] IScheduler scheduler, [NotNull] IDeviceMonitorWithExpiry monitor, [NotNull] IDeskFactory factory, [NotNull] ISubject <IDesk> deskDetected) { Guard.ArgumentNotNull(logger, nameof(logger)); Guard.ArgumentNotNull(scheduler, nameof(scheduler)); Guard.ArgumentNotNull(monitor, nameof(monitor)); Guard.ArgumentNotNull(factory, nameof(factory)); Guard.ArgumentNotNull(deskDetected, nameof(deskDetected)); _logger = logger; _scheduler = scheduler; _monitor = monitor; _factory = factory; _deskDetected = deskDetected; }