示例#1
0
            public async Task Update_role_returns_Success()
            {
                // arrange
                var claim1 = new IdentityClaim {
                    ClaimType = "ClaimType1", ClaimValue = "some value"
                };
                var claim2 = new IdentityClaim {
                    ClaimType = "ClaimType2", ClaimValue = "some other value"
                };
                var role = new IdentityRole("Update_role_returns_Success");

                role.Claims.Add(claim1);

                // initial role creation
                await _roleStore.CreateAsync(role);

                role.Name = role.Name + " different";
                role.Claims.Add(claim2);


                // act
                var result = await _roleStore.UpdateAsync(role);

                // assert
                IdentityResultAssert.IsSuccess(result);

                var roleFromDb = await _roleCollection.Find(x => x.Id == role.Id).SingleOrDefaultAsync();

                IdentityRoleAssert.Equal(role, roleFromDb);
            }
示例#2
0
        public static void Equal(IEnumerable <IdentityRole> expected, IEnumerable <IdentityRole> actual)
        {
            Assert.True((expected == null && actual == null) || (expected != null && actual != null));
            Assert.Equal(expected.Count(), actual.Count());

            foreach (var e in expected)
            {
                var act = actual.SingleOrDefault(a => a.Id == e.Id);
                IdentityRoleAssert.Equal(e, act);
            }
        }
示例#3
0
            public async Task Case_insensitive_normalizedRoleName_returns_IdentityRole()
            {
                // arrange
                var role = new IdentityRole("Case_insensitive_normalizedRoleName_returns_IdentityRole");
                await _roleStore.CreateAsync(role);

                // act
                var result = await _roleStore.FindByNameAsync(role.Name.ToUpper());

                // assert
                IdentityRoleAssert.Equal(role, result);
            }
示例#4
0
            public async Task Known_normalizedRoleName_returns_IdentityRole()
            {
                // arrange
                var role = new IdentityRole("Known_normalizedRoleName_returns_IdentityRole");
                await _roleStore.CreateAsync(role);

                // act
                var result = await _roleStore.FindByNameAsync(role.Name);

                // assert
                IdentityRoleAssert.Equal(role, result);
            }
示例#5
0
            public async Task Known_roleId_returns_IdentityRole()
            {
                // arrange
                var role = new IdentityRole("Known_roleId_returns_IdentityRole");
                await _roleStore.CreateAsync(role);

                // act
                var result = await _roleStore.FindByIdAsync(role.Id);

                // assert
                IdentityRoleAssert.Equal(role, result);
            }
示例#6
0
            public async Task Update_role_that_does_not_already_exists_inserts_and_returns_Success()
            {
                // arrange
                var role = new IdentityRole("Update_role_that_does_not_already_exists_inserts_and_returns_Success");


                // act
                var result = await _roleStore.UpdateAsync(role);

                // assert
                IdentityResultAssert.IsSuccess(result);

                var roleFromDb = await _roleCollection.Find(x => x.Id == role.Id).SingleOrDefaultAsync();

                IdentityRoleAssert.Equal(role, roleFromDb);
            }
示例#7
0
            public async Task Can_update_role_multiple_times()
            {
                // arrange
                var role = new IdentityRole("Can_update_role_multiple_times");
                await _roleStore.CreateAsync(role);

                // act
                role.Claims.Add(new IdentityClaim {
                    ClaimType = "ClaimType1", ClaimValue = "claim value"
                });
                var result1 = await _roleStore.UpdateAsync(role);

                role.Name = role.Name + " different";
                var result2 = await _roleStore.UpdateAsync(role);

                // assert
                IdentityResultAssert.IsSuccess(result1);
                IdentityResultAssert.IsSuccess(result2);

                var roleFromDb = await _roleCollection.Find(x => x.Id == role.Id).SingleOrDefaultAsync();

                IdentityRoleAssert.Equal(role, roleFromDb);
            }
示例#8
0
        public static void Equal(IdentityUser expected, IdentityUser actual)
        {
            Assert.True((expected == null && actual == null) || (expected != null && actual != null));

            Assert.Equal(expected.Id, actual.Id);
            Assert.Equal(expected.UserName, actual.UserName);
            Assert.Equal(expected.NormalizedUserName, actual.NormalizedUserName);
            Assert.Equal(expected.Email, actual.Email);
            Assert.Equal(expected.NormalizedEmail, actual.NormalizedEmail);
            Assert.Equal(expected.EmailConfirmed, actual.EmailConfirmed);
            Assert.Equal(expected.PasswordHash, actual.PasswordHash);
            Assert.Equal(expected.SecurityStamp, actual.SecurityStamp);
            Assert.Equal(expected.PhoneNumber, actual.PhoneNumber);
            Assert.Equal(expected.PhoneNumberConfirmed, actual.PhoneNumberConfirmed);
            Assert.Equal(expected.TwoFactorEnabled, actual.TwoFactorEnabled);
            Assert.Equal(expected.LockoutEnd, actual.LockoutEnd);
            Assert.Equal(expected.LockoutEnabled, actual.LockoutEnabled);
            Assert.Equal(expected.AccessFailedCount, actual.AccessFailedCount);

            IdentityRoleAssert.Equal(expected.Roles.Cast <IdentityRole>(), actual.Roles.Cast <IdentityRole>());
            IdentityClaimAssert.Equal(expected.Claims, actual.Claims);
            IdentityClaimAssert.Equal(expected.AllClaims, actual.AllClaims);
            UserLoginInfoAssert.Equal(expected.Logins, actual.Logins);
        }
示例#9
0
            public async Task When_User_has_Role_and_Role_is_deleted_should_remove_User_Role_as_well()
            {
                // arrange
                var identityClaim1 = new IdentityClaim {
                    ClaimType = "ClaimType1", ClaimValue = "val"
                };
                var role1 = new IdentityRole {
                    Name = "Role1", Claims = new List <IdentityClaim> {
                        identityClaim1
                    }
                };
                var role2 = new IdentityRole {
                    Name = "Role2", Claims = new List <IdentityClaim> {
                        identityClaim1
                    }
                };

                await _roleStore.CreateAsync(role1);

                await _roleStore.CreateAsync(role2);

                var user1 = new IdentityUser {
                    UserName = "******", Roles = new List <IdentityRole <string> > {
                        role1, role2
                    }
                };
                var user2 = new IdentityUser {
                    UserName = "******", Roles = new List <IdentityRole <string> > {
                        role1
                    }
                };
                var user3 = new IdentityUser {
                    UserName = "******", Roles = new List <IdentityRole <string> > {
                        role2
                    }
                };

                await _userStore.CreateAsync(user1);

                await _userStore.CreateAsync(user2);

                await _userStore.CreateAsync(user3);

                // act
                await _roleStore.DeleteAsync(role1);

                // assert
                var user1FromDb = await _userCollection.Find(x => x.Id == user1.Id).SingleOrDefaultAsync();

                var user2FromDb = await _userCollection.Find(x => x.Id == user2.Id).SingleOrDefaultAsync();

                var user3FromDb = await _userCollection.Find(x => x.Id == user3.Id).SingleOrDefaultAsync();

                // USER 1
                Assert.Equal(1, user1FromDb.Roles.Count);
                var user1FromDbRole2 = user1FromDb.Roles.Single(x => x.Id == role2.Id);

                IdentityRoleAssert.Equal(role2, (IdentityRole)user1FromDbRole2);


                // USER 2
                Assert.Equal(0, user2FromDb.Roles.Count);


                // USER 3
                Assert.Equal(1, user3FromDb.Roles.Count);
                var user3FromDbRole2 = user3FromDb.Roles.Single();

                IdentityRoleAssert.Equal(role2, (IdentityRole)user3FromDbRole2);
            }