public async Task Should_Not_Update_User_With_Duplicate_Username_Or_EmailAddress() { //Arrange CreateTestUsers(); var jnashUser = await GetUserByUserNameOrNullAsync("jnash"); //Act //Try to update with existing username await UserAppService.CreateOrUpdate( new CreateOrUpdateUserInput { User = new UserEditDto { Id = jnashUser.Id, EmailAddress = "*****@*****.**", PhoneNumber = "13388888888", //Surname = "Nash", UserName = "******", //Changed user name to an existing user Password = "******" }, AssignedRoleNames = new string[0] }); var jnashUser1 = await GetUserByUserNameOrNullAsync("adams_dd"); jnashUser1.ShouldNotBeNull(); //exception.Message.ShouldContain("adams_d"); //Try to update with existing email address await UserAppService.CreateOrUpdate( new CreateOrUpdateUserInput { User = new UserEditDto { Id = jnashUser.Id, EmailAddress = "*****@*****.**", //Changed email to an existing user PhoneNumber = "13388888888", //Surname = "Nash", UserName = "******", Password = "******" }, AssignedRoleNames = new string[0] }); var jnashUser2 = await GetUserByUserNameOrNullAsync("jnash"); jnashUser2.ShouldNotBeNull(); }
private async Task CreateUserAndTestAsync(string userName, string name, string surname, string emailAddress, int?tenantId, params string[] roleNames) { //Arrange AbpSession.TenantId = tenantId; //Act await UserAppService.CreateOrUpdate( new CreateOrUpdateUserInput { User = new UserEditDto { EmailAddress = emailAddress, //Name = name, //Surname = surname, UserName = userName, Password = "******", }, AssignedRoleNames = roleNames }); //Assert await UsingDbContextAsync(async context => { //Get created user var createdUser = await context.Users.Include(u => u.Roles).FirstOrDefaultAsync(u => u.UserName == userName); createdUser.ShouldNotBe(null); //Check some properties createdUser.EmailAddress.ShouldBe(emailAddress); createdUser.TenantId.ShouldBe(tenantId); //Check roles if (roleNames.IsNullOrEmpty()) { createdUser.Roles.Count.ShouldBe(0); } else { createdUser.Roles.Count.ShouldBe(roleNames.Length); foreach (var roleName in roleNames) { var roleId = (await GetRoleAsync(roleName)).Id; createdUser.Roles.Any(ur => ur.RoleId == roleId && ur.TenantId == tenantId).ShouldBe(true); } } }); }
public async Task Update_User_Basic_Tests() { //Arrange var managerRole = CreateRole("Manager"); var adminUser = await GetUserByUserNameOrNullAsync(AbpUserBase.AdminUserName); //Act await UserAppService.CreateOrUpdate( new CreateOrUpdateUserInput { User = new UserEditDto { Id = adminUser.Id, EmailAddress = "*****@*****.**", //Name = "System1", //Surname = "Admin2", Password = "******", UserName = adminUser.UserName }, AssignedRoleNames = new[] { "Manager" } }); //Assert await UsingDbContextAsync(async context => { //Get created user var updatedAdminUser = await GetUserByUserNameOrNullAsync(adminUser.UserName, includeRoles: true); updatedAdminUser.ShouldNotBe(null); updatedAdminUser.Id.ShouldBe(adminUser.Id); //Check some properties updatedAdminUser.EmailAddress.ShouldBe("*****@*****.**"); updatedAdminUser.TenantId.ShouldBe(AbpSession.TenantId); LocalIocManager .Resolve <IPasswordHasher <User> >() .VerifyHashedPassword(updatedAdminUser, updatedAdminUser.Password, "123qwE*") .ShouldBe(PasswordVerificationResult.Success); //Check roles updatedAdminUser.Roles.Count.ShouldBe(1); updatedAdminUser.Roles.Any(ur => ur.RoleId == managerRole.Id).ShouldBe(true); }); }
public async Task Should_Not_Create_User_With_Duplicate_Username_Or_EmailAddress() { //Arrange CreateTestUsers(); //Act await Assert.ThrowsAsync <UserFriendlyException>( async() => await UserAppService.CreateOrUpdate( new CreateOrUpdateUserInput { User = new UserEditDto { EmailAddress = "*****@*****.**", //Name = "John", //Surname = "Nash", UserName = "******", //Same username is added before (in CreateTestUsers) Password = "******" }, AssignedRoleNames = new string[0] })); }
public async Task Should_Remove_From_Role() { LoginAsHostAdmin(); //Arrange var adminUser = await GetUserByUserNameOrNullAsync(AbpUserBase.AdminUserName); await UsingDbContextAsync(async context => { var roleCount = await context.UserRoles.CountAsync(ur => ur.UserId == adminUser.Id); roleCount.ShouldBeGreaterThan(0); //There should be 1 role at least }); //Act await UserAppService.CreateOrUpdate( new CreateOrUpdateUserInput { User = new UserEditDto //Not changing user properties { Id = adminUser.Id, EmailAddress = adminUser.EmailAddress, //Name = adminUser.Name, //Surname = adminUser.Surname, UserName = adminUser.UserName, Password = null }, AssignedRoleNames = new[] { StaticRoleNames.Host.Admin } //Just deleting all roles expect admin }); //Assert await UsingDbContextAsync(async context => { var roleCount = await context.UserRoles.CountAsync(ur => ur.UserId == adminUser.Id); roleCount.ShouldBe(1); }); }