public async Task OnPost_GivenCommandSucceedsWithReturnUrl_ExpectUserToBeAuthenticatedAndRedirectedToUrl() { var mediator = new Mock <IMediator>(); mediator .Setup(x => x.Send( It.IsAny <ValidateEmailMfaCodeAgainstCurrentUserCommand>(), It.IsAny <CancellationToken>())).ReturnsAsync(() => Result.Ok <ValidateEmailMfaCodeAgainstCurrentUserCommandResult, ErrorData>( new ValidateEmailMfaCodeAgainstCurrentUserCommandResult(TestVariables.UserId))); var authenticationService = new Mock <IAuthenticationService>(); authenticationService.Setup(x => x.SignInUserFromPartialStateAsync(It.IsAny <Guid>())) .ReturnsAsync("/some-page"); var currentAuthenticatedUserProvider = new Mock <ICurrentAuthenticatedUserProvider>(); var page = new ValidateEmailMfaCode(mediator.Object, authenticationService.Object, currentAuthenticatedUserProvider.Object) { PageModel = new ValidateEmailMfaCode.Model() }; Assert.IsType <LocalRedirectResult>(await page.OnPost()); }
OnPost_GivenCommandSucceedsWithNoReturnUrl_ExpectUserToBeAuthenticatedAndRedirectedToDashboard() { var mediator = new Mock <IMediator>(); mediator .Setup(x => x.Send( It.IsAny <ValidateEmailMfaCodeAgainstCurrentUserCommand>(), It.IsAny <CancellationToken>())).ReturnsAsync(() => Result.Ok <ValidateEmailMfaCodeAgainstCurrentUserCommandResult, ErrorData>( new ValidateEmailMfaCodeAgainstCurrentUserCommandResult(TestVariables.UserId))); var authenticationService = new Mock <IAuthenticationService>(); authenticationService.Setup(x => x.SignInUserFromPartialStateAsync(It.IsAny <Guid>())) .ReturnsAsync(string.Empty); var currentAuthenticatedUserProvider = new Mock <ICurrentAuthenticatedUserProvider>(); var page = new ValidateEmailMfaCode(mediator.Object, authenticationService.Object, currentAuthenticatedUserProvider.Object) { PageModel = new ValidateEmailMfaCode.Model() }; var result = Assert.IsType <RedirectToPageResult>(await page.OnPost()); Assert.Equal(PageLocations.AppDashboard, result.PageName); }
public async Task OnPost_GivenInvalidModelState_ExpectRedirectToPageResult() { var mediator = new Mock <IMediator>(); var authenticationService = new Mock <IAuthenticationService>(); var currentAuthenticatedUserProvider = new Mock <ICurrentAuthenticatedUserProvider>(); var page = new ValidateEmailMfaCode(mediator.Object, authenticationService.Object, currentAuthenticatedUserProvider.Object); page.ModelState.AddModelError("Error", "Error"); var result = await page.OnPost(); Assert.IsType <RedirectToPageResult>(result); }
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 authenticationService = new Mock <IAuthenticationService>(); var currentAuthenticatedUserProvider = new Mock <ICurrentAuthenticatedUserProvider>(); var page = new ValidateEmailMfaCode(mediator.Object, authenticationService.Object, currentAuthenticatedUserProvider.Object); Assert.IsType <RedirectToPageResult>(await page.OnPostAppMfaAsync()); Assert.Equal(PrgState.Failed, page.PrgState); }
public void OnGet_GivenNoUserIsAuthenticated_ExpectNoMfaTypesSet() { var mediator = new Mock <IMediator>(); var authenticationService = new Mock <IAuthenticationService>(); var currentAuthenticatedUserProvider = new Mock <ICurrentAuthenticatedUserProvider>(); currentAuthenticatedUserProvider.Setup(x => x.CurrentAuthenticatedUser).Returns(Maybe <ISystemUser> .Nothing); var page = new ValidateEmailMfaCode(mediator.Object, authenticationService.Object, currentAuthenticatedUserProvider.Object); page.OnGet(); Assert.False(page.HasApp); Assert.False(page.HasDevice); }
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 authenticationService = new Mock <IAuthenticationService>(); var currentAuthenticatedUserProvider = new Mock <ICurrentAuthenticatedUserProvider>(); var page = new ValidateEmailMfaCode(mediator.Object, authenticationService.Object, currentAuthenticatedUserProvider.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 authenticationService = new Mock <IAuthenticationService>(); 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 ValidateEmailMfaCode(mediator.Object, authenticationService.Object, currentAuthenticatedUserProvider.Object); page.OnGet(); Assert.True(page.HasApp); Assert.True(page.HasDevice); }
public async Task OnPost_GivenCommandFails_ExpectRedirectToPageResultToSamePageAndPrgStateSet() { var mediator = new Mock <IMediator>(); mediator .Setup(x => x.Send( It.IsAny <ValidateEmailMfaCodeAgainstCurrentUserCommand>(), It.IsAny <CancellationToken>())).ReturnsAsync(() => Result.Fail <ValidateEmailMfaCodeAgainstCurrentUserCommandResult, ErrorData>( new ErrorData(ErrorCodes.SavingChanges))); var authenticationService = new Mock <IAuthenticationService>(); var currentAuthenticatedUserProvider = new Mock <ICurrentAuthenticatedUserProvider>(); var page = new ValidateEmailMfaCode(mediator.Object, authenticationService.Object, currentAuthenticatedUserProvider.Object) { PageModel = new ValidateEmailMfaCode.Model() }; var result = await page.OnPost(); Assert.IsType <RedirectToPageResult>(result); Assert.Equal(PrgState.Failed, page.PrgState); }