public async Task SuccessfulPostToCreateAccount_CallsAppRepositoryMethod_AndRedirectsToCorrectAction() { _authAdapter.RegisterNewUserAsync(Arg.Any <AwsCognitoUser>()).Returns(new HttpResponseMessage(HttpStatusCode.Created)); var user = new AwsCognitoUser { UserName = "******", Password = "******" }; var createAccountResponse = await _accountsController.CreateAccount(user) as RedirectToActionResult; await _userRepository.Received(1).AddUserAsync(Arg.Any <string>()); Assert.AreEqual("GetConfirmAccountView", createAccountResponse.ActionName); }
public async Task SuccessfulCreationOfAccount_ReturnsStatusCode_Created() { var user = new AwsCognitoUser { UserName = "******", Password = "******" }; _cognitoAdapterHelper.UserExists(Arg.Any <AwsCognitoUser>()).Returns(false); _awsCognitoClient.SignUpAsync(Arg.Any <SignUpRequest>()).Returns(new SignUpResponse()); var registerUserResponse = await _authAdapter.RegisterNewUserAsync(user); Assert.AreEqual(HttpStatusCode.Created, registerUserResponse.StatusCode); }
public async Task <IActionResult> CreateAccount([FromBody] AwsCognitoUser cognitoUser) { try { var signUpResponse = await _authAdapter.RegisterNewUserAsync(cognitoUser); switch (signUpResponse.StatusCode) { case HttpStatusCode.Conflict: return(new ConflictObjectResult($"The email address {cognitoUser.UserName} already has an account associated with it.")); case HttpStatusCode.Created: return(new OkObjectResult($"Account successfully created. Please check your email for a confirmation code.")); default: return(new ContentResult { ContentType = "text/plain", Content = "An error has occurred", StatusCode = (int)signUpResponse.StatusCode }); } } catch (Exception e) { Console.WriteLine(e); throw; } }
public async Task <IActionResult> CreateAccount(AwsCognitoUser cognitoUser, string message = "") { //use this to display info messages after redirect ViewBag.InfoMessage = message; HttpResponseMessage signUpResponse; try { signUpResponse = await _authAdapter.RegisterNewUserAsync(cognitoUser); } catch (Exception ex) { _logger.LogError(ex); return(RedirectToAction("GetCreateAccountView", "Accounts", new { message = "An error has occurred." })); } switch (signUpResponse.StatusCode) { case HttpStatusCode.Conflict: return(RedirectToAction("GetCreateAccountView", "Accounts", new { message = $"The email address {cognitoUser.UserName} already has an account associated with it." })); case HttpStatusCode.Created: await _userRepository.AddUserAsync(cognitoUser.UserName); return(RedirectToAction("GetConfirmAccountView", "Accounts", new { message = $"Account successfully created. Please check your email for a confirmation code." })); default: _logger.LogError(signUpResponse); return(RedirectToAction("GetCreateAccountView", "Accounts", new { message = "An error has occurred." })); } }
public async Task AccountsController_CreateAccountEndpoint_AddsUserToDatabase() { var testCognitoUser = new AwsCognitoUser { UserName = "******", Password = "******" }; _mockAuthAdapter.RegisterNewUserAsync(Arg.Any <AwsCognitoUser>()).Returns(new HttpResponseMessage(HttpStatusCode.Created)); var formContent = new FormUrlEncodedContent(new [] { new KeyValuePair <string, string>("UserName", testCognitoUser.UserName), new KeyValuePair <string, string>("Password", testCognitoUser.Password) }); await _httpClient.PostAsync("accounts/create", formContent); var testUsers = await _testDbContext.GetTestUsers(); Assert.AreEqual(testCognitoUser.UserName, testUsers.First().Username); }