public async Task Roles_IQueryable()
        {
            // given
            List <IdentityRole> roles = await AddFiveRoles();

            IdentityRole expectedRole = roles.First();

            // when
            IdentityRole actualRole = _roleStore.Roles.First(x => x.Id == expectedRole.Id);

            // then
            actualRole.ShouldNotBeNull();
            actualRole.Id.ShouldBe(expectedRole.Id);
            actualRole.Name.ShouldBe(expectedRole.Name);
            actualRole.NormalizedName.ShouldBe(expectedRole.NormalizedName);
        }
        public async Task FindByIdAsync()
        {
            // given
            string id           = "super root admin";
            var    expectedRole = new IdentityRole("name");

            expectedRole.Id = id;
            await _roleStore.CreateAsync(expectedRole, CancellationToken.None);

            // when
            IdentityRole actualRole = await _roleStore.FindByIdAsync(id, CancellationToken.None);

            // then
            actualRole.ShouldNotBeNull();
            actualRole.Id.ShouldBe(expectedRole.Id);
        }
        public async Task FindByNameAsync()
        {
            // given
            string roleName     = "super root admin";
            var    expectedRole = new IdentityRole();

            expectedRole.Name           = roleName;
            expectedRole.NormalizedName = roleName;
            await _roleStore.CreateAsync(expectedRole, CancellationToken.None);

            // when
            IdentityRole actualRole = await _roleStore.FindByNameAsync(roleName, CancellationToken.None);

            // then
            actualRole.ShouldNotBeNull();
            actualRole.Name.ShouldBe(expectedRole.Name);
        }
        public async Task CreateAsync()
        {
            // given
            var identityRole = new IdentityRole("root administrator sa");

            identityRole.NormalizedName = identityRole.Name;

            // when
            IdentityResult result = await _roleStore.CreateAsync(identityRole, CancellationToken.None);

            // then
            result.ShouldBe(IdentityResult.Success);

            IdentityRole role = await _roleStore.FindByNameAsync(identityRole.Name, CancellationToken.None);

            role.ShouldNotBeNull();
        }
        public async Task UpdateAsync()
        {
            // given
            List <IdentityRole> rolesList = await AddFiveRoles();

            IdentityRole updatedRole = rolesList.First();

            updatedRole.Name = "A new name";

            // when
            IdentityResult result = await _roleStore.UpdateAsync(updatedRole, CancellationToken.None);

            // then
            result.ShouldBe(IdentityResult.Success);

            IdentityRole role = await _roleStore.FindByIdAsync(updatedRole.Id, CancellationToken.None);

            role.ShouldNotBeNull();
            role.Name.ShouldBe(updatedRole.Name);
        }