public async Task OnPostAppMfaAsync_GivenCommandFails_ExpectPrgErrorStateAndRedirectToSamePage()
        {
            var mediator = new Mock <IMediator>();

            mediator.Setup(x => x.Send(It.IsAny <AppMfaRequestedCommand>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(ResultWithError.Fail(new ErrorData(ErrorCodes.AuthenticationFailed)));

            var currentAuthenticatedUserProvider = new Mock <ICurrentAuthenticatedUserProvider>();
            var page = new ValidateDeviceMfa(currentAuthenticatedUserProvider.Object, mediator.Object);

            Assert.IsType <RedirectToPageResult>(await page.OnPostAppMfaAsync());
        }
        public void OnGet_GivenNoUserIsAuthenticated_ExpectNoMfaTypesSet()
        {
            var mediator = new Mock <IMediator>();
            var currentAuthenticatedUserProvider = new Mock <ICurrentAuthenticatedUserProvider>();

            currentAuthenticatedUserProvider.Setup(x => x.CurrentAuthenticatedUser).Returns(Maybe <ISystemUser> .Nothing);

            var page = new ValidateDeviceMfa(currentAuthenticatedUserProvider.Object, mediator.Object);

            page.OnGet();

            Assert.False(page.HasApp);
        }
        public async Task OnPostAppMfaAsync_GivenCommandSucceeds_ExpectRedirectAppMfaPage()
        {
            var mediator = new Mock <IMediator>();

            mediator.Setup(x => x.Send(It.IsAny <AppMfaRequestedCommand>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(ResultWithError.Ok <ErrorData>());

            var currentAuthenticatedUserProvider = new Mock <ICurrentAuthenticatedUserProvider>();
            var page = new ValidateDeviceMfa(currentAuthenticatedUserProvider.Object, mediator.Object);

            var result = Assert.IsType <RedirectToPageResult>(await page.OnPostAppMfaAsync());

            Assert.Equal(PageLocations.AuthAppMfa, result.PageName);
        }
        public void OnGet_GivenUserIsAuthenticated_ExpectMfaTypesToBeSet()
        {
            var mediator = new Mock <IMediator>();
            var currentAuthenticatedUserProvider = new Mock <ICurrentAuthenticatedUserProvider>();

            currentAuthenticatedUserProvider.Setup(x => x.CurrentAuthenticatedUser)
            .Returns(Maybe.From(
                         new UnauthenticatedUser(
                             TestVariables.UserId, MfaProvider.App | MfaProvider.Device) as ISystemUser));

            var page = new ValidateDeviceMfa(currentAuthenticatedUserProvider.Object, mediator.Object);

            page.OnGet();

            Assert.True(page.HasApp);
        }