public async Task SignUp_DuplicateEmail_Error() { // Arrange var randomEmail = TestUserFactory.GenerateRandomEmail(); RegisterRequest request = new RegisterRequest { Email = randomEmail, FirstName = TestUserFactory.FirstName, LastName = TestUserFactory.LastName, Password = TestUserFactory.TestPassword }; // Act await HttpClient.PostAsync("/api/Account/SignUp", request); var responseMessage = await HttpClient.PostAsync("/api/Account/SignUp", request); // Assert Assert.False(responseMessage.IsSuccessStatusCode); ErrorResponse errorResponse = await responseMessage.ReadContentAsync <ErrorResponse>(); Assert.Single(errorResponse.Errors); Assert.Equal("DuplicateUserName", errorResponse.Errors.First().Code); Assert.Contains(randomEmail, errorResponse.Errors.First().Description); }
public async Task SignUp_CorrectInput_RegistersUser() { // Arrange var randomEmail = TestUserFactory.GenerateRandomEmail(); RegisterRequest request = new RegisterRequest { Email = randomEmail, FirstName = TestUserFactory.FirstName, LastName = TestUserFactory.LastName, Password = TestUserFactory.TestPassword }; // Act var responseMessage = await HttpClient.PostAsync("/api/Account/SignUp", request); // Assert Assert.True(responseMessage.IsSuccessStatusCode); Assert.Contains(responseMessage.Headers, header => header.Key == "Set-Cookie" && header.Value.First().StartsWith(".AspNetCore.Identity.Application")); var profileResponse = await responseMessage.ReadContentAsync <ProfileResponse>(); Assert.Equal(randomEmail, profileResponse.UserName); Assert.Equal(TestUserFactory.FirstName, profileResponse.FirstName); Assert.Equal(TestUserFactory.LastName, profileResponse.LastName); var user = await TestServerFixture.UserManager.FindByEmailAsync(randomEmail); Assert.Equal(TestUserFactory.FirstName, user.FirstName); Assert.Equal(TestUserFactory.LastName, user.LastName); var signInResult = await TestServerFixture.SignInManager.CheckPasswordSignInAsync(user, TestUserFactory.TestPassword, false); Assert.True(signInResult.Succeeded); }
public async Task <ApplicationUser> CreateTestUserAsync(float preferredHoursPerDay = 0, string role = RoleNames.User) { var user = TestUserFactory.CreateTestUser(preferredHoursPerDay); var identityResult = await TestServerFixture.UserManager.CreateAsync(user, TestUserFactory.TestPassword).ConfigureAwait(false); Assert.True(identityResult.Succeeded); identityResult = await TestServerFixture.UserManager.AddToRoleAsync(user, role); Assert.True(identityResult.Succeeded); return(user); }
private static async Task <ApplicationUser> CreateTestUserAsync(ApplicationDbContext dbContext, string roleName = RoleNames.User) { var user = TestUserFactory.CreateTestUser(); dbContext.Users.Add(user); await dbContext.SaveChangesAsync(); var role = await GetOrCreateRoleAsync(dbContext, roleName); dbContext.UserRoles.Add(new IdentityUserRole <string>() { UserId = user.Id, RoleId = role.Id }); await dbContext.SaveChangesAsync(); return(user); }
public async Task SignUp_TooSimplePassword_Error() { // Arrange var randomEmail = TestUserFactory.GenerateRandomEmail(); RegisterRequest request = new RegisterRequest { Email = randomEmail, FirstName = TestUserFactory.FirstName, LastName = TestUserFactory.LastName, Password = "******" }; // Act var responseMessage = await HttpClient.PostAsync("/api/Account/SignUp", request); // Assert Assert.False(responseMessage.IsSuccessStatusCode); ErrorResponse errorResponse = await responseMessage.ReadContentAsync <ErrorResponse>(); Assert.Contains(errorResponse.Errors, err => err.Code == "PasswordTooShort"); }