public async Task<RegisterNewUserResult> RegisterUser(NewUser newUser) { ApplicationUser newApplicationUser = new ApplicationUser() { UserName = newUser.UserName, Email = newUser.EmailAddress, EmailConfirmed = true }; IdentityResult identityResult = await applicationUserManager.CreateAsync(newApplicationUser, newUser.Password); NewlyRegisteredUser newlyRegisteredUser = new NewlyRegisteredUser { UserId = newApplicationUser.Id }; if(identityResult.Succeeded) { newlyRegisteredUser = await this.SignInAndAssociateGamingGroup(newUser, newApplicationUser); } RegisterNewUserResult result = new RegisterNewUserResult { Result = identityResult, NewlyRegisteredUser = newlyRegisteredUser }; return result; }
public async Task ItRegistersANewUserIfThereAreNoModelErrors() { RegisterNewUserResult registerNewUserResult = new RegisterNewUserResult { Result = IdentityResult.Success }; userRegistererMock.Expect(mock => mock.RegisterUser(Arg<NewUser>.Is.Anything)) .Return(Task.FromResult(registerNewUserResult)); ViewResult result = await accountControllerPartialMock.Register(expectedViewModel) as ViewResult; userRegistererMock.AssertWasCalled(mock => mock.RegisterUser(Arg<NewUser>.Matches( user => user.EmailAddress == expectedViewModel.EmailAddress && user.UserName == expectedViewModel.UserName && user.Password == expectedViewModel.Password && user.GamingGroupInvitationId == new Guid(expectedViewModel.GamingGroupInvitationId)))); }
public async Task ItRedirectsToTheGamingGroupPageIfTheUserIsSuccessfullyRegistered() { RegisterNewUserResult registerNewUserResult = new RegisterNewUserResult { Result = IdentityResult.Success }; userRegistererMock.Expect(mock => mock.RegisterUser(Arg<NewUser>.Is.Anything)) .Return(Task.FromResult(registerNewUserResult)); RedirectToRouteResult result = await accountControllerPartialMock.Register(expectedViewModel) as RedirectToRouteResult; Assert.AreEqual(MVC.GamingGroup.ActionNames.Index, result.RouteValues["action"]); }
public async Task ItAddsErrorsAndStaysOnThePageIfRegisteringFails() { string errorMessage = "some error message"; IdentityResult failureIdentityResult = new IdentityResult(new string[] { errorMessage }); RegisterNewUserResult registerNewUserResult = new RegisterNewUserResult { Result = failureIdentityResult }; userRegistererMock.Expect(mock => mock.RegisterUser(Arg<NewUser>.Is.Anything)) .Return(Task.FromResult(registerNewUserResult)); ViewResult result = await accountControllerPartialMock.Register(expectedViewModel) as ViewResult; Assert.AreSame(expectedViewModel, result.Model); Assert.AreEqual(MVC.Account.Views.Register, result.ViewName); Assert.True(accountControllerPartialMock.ModelState[string.Empty].Errors.Any(error => error.ErrorMessage == errorMessage)); }