public async Task ShouldRemoveRoleFromUser() { DocumentDbUserStore <DocumentDbIdentityUser> userStore = CreateUserStore(); DocumentDbIdentityRole firstRole = DocumentDbIdentityRoleBuilder.Create().WithNormalizedRoleName(); DocumentDbIdentityRole secondRole = DocumentDbIdentityRoleBuilder.Create().WithNormalizedRoleName(); DocumentDbIdentityUser targetUser = DocumentDbIdentityUserBuilder.Create().AddRole(firstRole).AddRole(secondRole); // Remove the second role await userStore.RemoveFromRoleAsync(targetUser, secondRole.NormalizedName, CancellationToken.None); // Assert second role has been removed while first one is still there Assert.DoesNotContain(targetUser.Roles, r => r.NormalizedName.Equals(secondRole.NormalizedName)); Assert.Contains(targetUser.Roles, r => r.NormalizedName.Equals(firstRole.NormalizedName)); }
public async Task ShouldNotRemoveRoleFromUserWhenPassingNotNormalizedRoleNameToRemoveFromRole() { DocumentDbUserStore <DocumentDbIdentityUser> userStore = CreateUserStore(); DocumentDbIdentityRole firstRole = DocumentDbIdentityRoleBuilder.Create().WithNormalizedRoleName(); DocumentDbIdentityRole secondRole = DocumentDbIdentityRoleBuilder.Create().WithNormalizedRoleName(); DocumentDbIdentityUser targetUser = DocumentDbIdentityUserBuilder.Create().AddRole(firstRole).AddRole(secondRole); // Try remove the second role with a not normalized role name await userStore.RemoveFromRoleAsync(targetUser, secondRole.Name, CancellationToken.None); // Assert both roles are still here, as lookup without normalized name should have failed Assert.Collection(targetUser.Roles, r => r.NormalizedName.Equals(firstRole.NormalizedName), r => r.NormalizedName.Equals(secondRole.NormalizedName)); }