public async Task Refresh_ForConnectedAndCharacteristicsUnreachable_DoesNotAddService( GattServicesProvider sut, [Freeze] IBluetoothLeDeviceWrapper device, [Freeze] IGattServicesDictionary services, IGattDeviceServicesResultWrapper result, IGattDeviceServiceWrapper service, IGattCharacteristicsResultWrapper characteristics) { result.Status .Returns(GattCommunicationStatus.Success); result.Services .Returns(new[] { service }); device.ConnectionStatus .Returns(BluetoothConnectionStatus.Connected); device.GetGattServicesAsync() .Returns(Task.FromResult(result)); characteristics.Status .Returns(GattCommunicationStatus.Unreachable); service.GetCharacteristicsAsync() .Returns(characteristics); await sut.Refresh(); services[service] .Should() .NotBe(characteristics); }
public async Task Refresh_ForConnected_SetsGattCommunicationStatusUnreachable( GattServicesProvider sut, [Freeze] IBluetoothLeDeviceWrapper device, IGattDeviceServicesResultWrapper result) { result.Status .Returns(GattCommunicationStatus.Unreachable); device.ConnectionStatus .Returns(BluetoothConnectionStatus.Connected); device.GetGattServicesAsync() .Returns(Task.FromResult(result)); await sut.Refresh(); sut.GattCommunicationStatus .Should() .Be(GattCommunicationStatus.Unreachable); }
public async Task GattCommunicationStatus_ForConnectedAndServicesAvailable_Success( GattServicesProvider sut, [Freeze] IBluetoothLeDeviceWrapper device, IGattDeviceServicesResultWrapper resultWrapper) { resultWrapper.Status .Returns(GattCommunicationStatus.Success); device.ConnectionStatus .Returns(BluetoothConnectionStatus.Connected); device.GetGattServicesAsync() .Returns(resultWrapper); await sut.Refresh(); sut.GattCommunicationStatus .Should() .Be(resultWrapper.Status); }
public async Task Refresh_ForConnected_Notifies( GattServicesProvider sut, [Freeze] IBluetoothLeDeviceWrapper device, [Freeze] ISubject <GattCommunicationStatus> refreshed, IGattDeviceServicesResultWrapper result) { var expected = GattCommunicationStatus.ProtocolError; result.Status .Returns(expected); device.ConnectionStatus .Returns(BluetoothConnectionStatus.Connected); device.GetGattServicesAsync() .Returns(Task.FromResult(result)); await sut.Refresh(); refreshed.Received() .OnNext(expected); }