public async Task Resgiter_WhenModelIsValidWithNullPassword_ExpectSuccessAndUserPasswordSet() { //arrange var username = Guid.NewGuid().ToString(); var user = new IdentityExpressUser() { UserName = username, NormalizedUserName = normalizer.Normalize(username) }; using (var context = new IdentityExpressDbContext(options)) { context.Users.Add(user); context.SaveChanges(); } var model = new RegisterInputModel { ConfirmPassword = "******", Password = "******", Username = username }; var list = new List <KeyValuePair <string, string> > { new KeyValuePair <string, string>("ConfirmPassword", "Password123!"), new KeyValuePair <string, string>("Password", "Password123!"), new KeyValuePair <string, string>("Username", username) }; //act var result = await client.PostAsync("/account/register", new FormUrlEncodedContent(list)); //assert Assert.True(result.IsSuccessStatusCode); IdentityExpressUser foundUser; using (var context = new IdentityExpressDbContext(options)) { foundUser = await context.Users.FirstOrDefaultAsync(x => x.UserName == username); } Assert.NotNull(foundUser); Assert.NotNull(foundUser.PasswordHash); }
public async Task Resgiter_WhenUserAlreadyHasPassword_ExpectFailureAndPasswordNotUpdated() { //arrange var username = Guid.NewGuid().ToString(); var user = new IdentityExpressUser() { UserName = username, NormalizedUserName = normalizer.Normalize(username) }; var passwordHasher = new PasswordHasher <IdentityExpressUser>(); var hash = passwordHasher.HashPassword(user, "hello"); user.PasswordHash = hash; using (var context = new IdentityExpressDbContext(options)) { context.Users.Add(user); context.SaveChanges(); } var model = new RegisterInputModel { ConfirmPassword = "******", Password = "******", Username = username }; var json = JsonConvert.SerializeObject(model); //act var result = await client.PostAsync("/account/register", new StringContent(json, Encoding.UTF8, "application/json")); //assert Assert.True(result.IsSuccessStatusCode); IdentityExpressUser foundUser; using (var context = new IdentityExpressDbContext(options)) { foundUser = await context.Users.FirstOrDefaultAsync(x => x.UserName == username); } Assert.NotNull(foundUser); Assert.Equal(hash, foundUser.PasswordHash); }
public AccountControllerIntegrationTests() { var path = Path.GetFullPath(Path.Combine(Directory.GetCurrentDirectory(), @"..\..\..\..\Rsk.Samples.IdentityServer4.AdminUiIntegration")); var config = new ConfigurationBuilder() .SetBasePath(path) .AddJsonFile("appsettings.testing.json").Build(); normalizer = new UpperInvariantLookupNormalizer(); options = new DbContextOptionsBuilder <IdentityExpressDbContext>().UseSqlite(config.GetValue <string>("IdentityConnectionString")).Options; using (var context = new IdentityExpressDbContext(options)) context.Database.EnsureCreated(); var testServer = new TestServer(new WebHostBuilder().UseStartup <Startup>().UseContentRoot(path).UseEnvironment("testing")); client = testServer.CreateClient(); }
public async Task Register_WhenUserAlreadyHasPassword_ExpectFailureAndPasswordNotUpdated() { //arrange var username = Guid.NewGuid().ToString(); var user = new IdentityExpressUser() { UserName = username, NormalizedUserName = normalizer.NormalizeName(username) }; var passwordHasher = new PasswordHasher <IdentityExpressUser>(); var hash = passwordHasher.HashPassword(user, "hello"); user.PasswordHash = hash; using (var context = new IdentityExpressDbContext(options)) { context.Users.Add(user); context.SaveChanges(); } var registerInputModel = new List <KeyValuePair <string, string> > { new KeyValuePair <string, string>("ConfirmPassword", "Password123!"), new KeyValuePair <string, string>("Password", "Password123!"), new KeyValuePair <string, string>("Username", username) }; //act var result = await client.PostAsync("/account/register", new FormUrlEncodedContent(registerInputModel)); //assert Assert.True(result.IsSuccessStatusCode); IdentityExpressUser foundUser; using (var context = new IdentityExpressDbContext(options)) { foundUser = await context.Users.FirstOrDefaultAsync(x => x.UserName == username); } Assert.NotNull(foundUser); Assert.Equal(hash, foundUser.PasswordHash); }