public async Task TestRegisterPost() { var registrationRequest = new RegistrationRequest { CompanyName = "Test Company", EMailAddress = "*****@*****.**", Password = "******", UserName = "******" }; var regService = new RegistrationService(_loggerMock.Object); RegistrationPostResponse response = await regService.RegisterUserAsync(registrationRequest); Assert.True(response.success); _dataStoreMock.Verify(); }
/// <summary> /// Start signup process for new user in Cognito user pool /// </summary> /// <param name="regReq"></param> /// <returns></returns> public async Task <RegistrationPostResponse> RegisterUserAsync(RegistrationRequest regReq) { // Register the user using Cognito var signUpRequest = new SignUpRequest { ClientId = CognitoClientId, Password = regReq.Password, Username = regReq.UserName, }; var emailAttribute = new AttributeType { Name = "email", Value = regReq.EMailAddress }; signUpRequest.UserAttributes.Add(emailAttribute); // Add custom attributes signUpRequest.UserAttributes.Add(new AttributeType { Name = CompanyNameAttribute, Value = regReq.CompanyName }); RegistrationPostResponse regPostResponse = new RegistrationPostResponse(); try { var getResponse = await Cognito.SignUpAsync(signUpRequest); regPostResponse.success = true; regPostResponse.statusCode = getResponse.HttpStatusCode.ToString(); regPostResponse.userSub = getResponse.UserSub; regPostResponse.userConfirmed = getResponse.UserConfirmed; } catch (AmazonCognitoIdentityProviderException ace) { regPostResponse.error.message = ace.Message; regPostResponse.success = false; switch (ace.ErrorCode) { case "UsernameExistsException": regPostResponse.error.error = ErrorEnum.UserAlreadyExists; break; case "email already exists": // not sure what this exception is regPostResponse.error.error = ErrorEnum.UserAlreadyExists; break; default: regPostResponse.error.error = ErrorEnum.Unknown; break; } regPostResponse.error.message = ace.ErrorCode + ":" + ace.Message; } catch (Exception e) { regPostResponse.success = false; regPostResponse.error.error = ErrorEnum.Unknown; regPostResponse.error.message = e.Message; } return(regPostResponse); }