public async Task SuccessfulConfirmation_OfAccount_ReturnsStatusCode_Ok() { var user = new AwsCognitoUser { UserName = "******", ConfirmationCode = "123456" }; _cognitoAdapterHelper.UserExists(Arg.Any <AwsCognitoUser>()).Returns(true); _cognitoAdapterHelper.UserIsConfirmed(Arg.Any <AwsCognitoUser>()).Returns(false); _awsCognitoClient.ConfirmSignUpAsync(Arg.Any <ConfirmSignUpRequest>()).Returns(new ConfirmSignUpResponse()); var confirmUserResponse = await _authAdapter.ConfirmUserAsync(user); Assert.AreEqual(HttpStatusCode.OK, confirmUserResponse.StatusCode); }
public async Task <IActionResult> ConfirmAccount([FromBody] AwsCognitoUser cognitoUser) { HttpResponseMessage confirmSignUpResponse; try { confirmSignUpResponse = await _authAdapter.ConfirmUserAsync(cognitoUser); } catch (CodeMismatchException) { return(new ContentResult { Content = "Invalid verification code provided.", ContentType = "text/plain", StatusCode = (int)HttpStatusCode.BadRequest }); } catch (ExpiredCodeException) { return(new ContentResult { Content = "Verification code expired. Client must request a new code.", ContentType = "text/plain", StatusCode = (int)HttpStatusCode.BadRequest }); } switch (confirmSignUpResponse.StatusCode) { case HttpStatusCode.NotFound: return(new NotFoundObjectResult($"The username {cognitoUser.UserName} does not exist.")); case HttpStatusCode.Conflict: return(new ConflictObjectResult($"The username {cognitoUser.UserName} is already confirmed. Login to continue.")); case HttpStatusCode.OK: return(new OkObjectResult("Account confirmed. Please login to continue.")); default: return(new ContentResult { ContentType = "text/plain", Content = "An error has occurred", StatusCode = (int)confirmSignUpResponse.StatusCode }); } }
public async Task SuccessfulPostToConfirmAccount_RedirectsTo_GetLoginView() { _authAdapter.ConfirmUserAsync(Arg.Any <AwsCognitoUser>()).Returns(new HttpResponseMessage(HttpStatusCode.OK)); var user = new AwsCognitoUser { UserName = "******", ConfirmationCode = "123456" }; var confirmAccountResponse = await _accountsController.ConfirmAccount(user) as RedirectToActionResult; Assert.AreEqual("GetLoginView", confirmAccountResponse.ActionName); }
public async Task <IActionResult> ConfirmAccount(AwsCognitoUser cognitoUser, string message = "") { ViewBag.InfoMessage = message; HttpResponseMessage confirmSignUpResponse; try { confirmSignUpResponse = await _authAdapter.ConfirmUserAsync(cognitoUser); } catch (CodeMismatchException ex) { _logger.LogError(ex); return(RedirectToAction("GetConfirmAccountView", "Accounts", new { message = "Invalid verification code provided. Please try again." })); } catch (ExpiredCodeException ex) { _logger.LogError(ex); return(RedirectToAction("GetResendConfirmationCodeView", "Accounts", new { message = "Verification code expired. Please request a new code." })); } catch (Exception ex) { _logger.LogError(ex); return(RedirectToAction("GetConfirmAccountView", "Accounts", new { message = "An error has occurred." })); } switch (confirmSignUpResponse.StatusCode) { case HttpStatusCode.NotFound: return(RedirectToAction("GetCreateAccountView", "Accounts", new { message = $"The username {cognitoUser.UserName} does not exist. Please create an account." })); case HttpStatusCode.Conflict: return(RedirectToAction("GetLoginView", "Accounts", new { message = $"The username {cognitoUser.UserName} is already confirmed. Please login to continue." })); case HttpStatusCode.OK: return(RedirectToAction("GetLoginView", "Accounts", new { message = "Account confirmed. Please login to continue." })); default: _logger.LogError(confirmSignUpResponse); return(RedirectToAction("GetCreateAccountView", "Accounts", new { message = "An error has occurred." })); } }