public ScanViewModel(NavigationManager navigationManager, IQrCodeScanner qrCodeScanner, IQrCodeValidator qrCodeValidator)
        {
            _navigationManager = navigationManager;
            _qrCodeScanner     = qrCodeScanner;
            _qrCodeValidator   = qrCodeValidator;

            _qrCodeScanner.Validation     = qrCodeData => _qrCodeValidator.Validate(qrCodeData);
            _qrCodeScanner.ScanStarted    = SetCameraIsOpen;
            _qrCodeScanner.CameraError    = SetCameraNotOpen;
            _qrCodeScanner.CameraNotFound = SetCameraNotFound;

            _qrCodeValidator.OnValidQrCode += (s, e) => _navigationManager.NavigateTo("../");
        }
        public async Task Start_ScannerNotStarted_CallsJsBeginScan()
        {
            // Arrange
            _qrCodeScanner = new QrCodeScanner(_jsRuntime.Object);

            // Act
            await _qrCodeScanner.Start();

            // Assert
            _jsRuntime.Verify(callTo => callTo.InvokeAsync <object>(
                                  "beginScan",
                                  It.Is <object[]>(parameters => parameters.First().GetType() == typeof(DotNetObjectReference <QrCodeScanner>))),
                              Times.Once);
        }