public async Task <IActionResult> Post(RegisterHelper.RegisterData data) { var registerHelper = new RegisterHelper(); var emailHelper = new EmailHelper(); var result = await registerHelper.RegisterUser(data); if (result != DuplicateEmail && result != RegistrationError) { var userInfo = new UserInfo { FirstName = data.FirstName, LastName = data.LastName, Email = data.Email }; emailHelper.SendRegistrationEmail(userInfo, data.BaseUrl); } return(result switch { DuplicateEmail => BadRequest("User with that email already exists."), RegistrationError => StatusCode(500, "An error occurred while trying to register. Please try again later."), _ => Ok() });
public async Task When_registering_new_user_and_error_occurs() { var mockUserRepository = new Mock <IUserRepository>(); mockUserRepository.Setup(x => x.InsertUserAsync( It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>())) .ReturnsAsync(0); var registerHelper = new RegisterHelper(mockUserRepository.Object); var registerData = new RegisterHelper.RegisterData { BaseUrl = "baseurl", Email = "*****@*****.**", FirstName = "First Name", LastName = "Last Name" }; var result = await registerHelper.RegisterUser(registerData); Assert.That(result, Is.EqualTo(0)); }