public async Task CreateAsync_should_return_claim_id()
        {
            using var documentStore = new RavenDbTestDriverWrapper().GetDocumentStore();
            var provider = new ServiceCollection()
                           .AddLogging()
                           .AddIdentity <IdentityUser, IdentityRole>()
                           .AddRavenDbStores(p => documentStore)
                           .Services.BuildServiceProvider();
            var roleManager = provider.GetRequiredService <RoleManager <IdentityRole> >();
            var role        = new IdentityRole
            {
                Id   = Guid.NewGuid().ToString(),
                Name = Guid.NewGuid().ToString()
            };
            var roleResult = await roleManager.CreateAsync(role);

            Assert.True(roleResult.Succeeded);

            var sut    = new IdentityRoleClaimStore <IdentityUser, IdentityRole>(roleManager, new ScopedAsynDocumentcSession(documentStore.OpenAsyncSession()), provider.GetRequiredService <ILogger <IdentityRoleClaimStore <IdentityUser, IdentityRole> > >());
            var result = await sut.CreateAsync(new RoleClaim
            {
                ClaimType  = "test",
                ClaimValue = "test",
                RoleId     = role.Id
            } as object);


            Assert.NotNull(result);
            Assert.NotNull(((RoleClaim)result).Id);
        }
        public async Task UdpateAsync_should_update_claim()
        {
            using var documentStore = new RavenDbTestDriverWrapper().GetDocumentStore();
            var provider = new ServiceCollection()
                           .AddLogging()
                           .AddIdentity <IdentityUser, IdentityRole>()
                           .AddRavenDbStores(p => documentStore)
                           .Services.BuildServiceProvider();
            var roleManager = provider.GetRequiredService <RoleManager <IdentityRole> >();
            var role        = new IdentityRole
            {
                Id   = Guid.NewGuid().ToString(),
                Name = Guid.NewGuid().ToString()
            };
            var result = await roleManager.CreateAsync(role);

            Assert.True(result.Succeeded);
            result = await roleManager.AddClaimAsync(role, new Claim("test", "test"));

            Assert.True(result.Succeeded);

            var sut = new IdentityRoleClaimStore <IdentityUser, IdentityRole>(roleManager, new ScopedAsynDocumentcSession(documentStore.OpenAsyncSession()), provider.GetRequiredService <ILogger <IdentityRoleClaimStore <IdentityUser, IdentityRole> > >());
            await sut.UpdateAsync(new RoleClaim
            {
                Id         = $"{role.Id}@0",
                ClaimType  = Guid.NewGuid().ToString(),
                ClaimValue = Guid.NewGuid().ToString()
            } as object);

            var claims = await roleManager.GetClaimsAsync(role);

            Assert.Single(claims);
            Assert.NotEqual("test", claims.First().Type);
            Assert.NotEqual("test", claims.First().Value);
        }
        public async Task GetAsync_by_id_should_return_claim()
        {
            using var documentStore = new RavenDbTestDriverWrapper().GetDocumentStore();
            var provider = new ServiceCollection()
                           .AddLogging()
                           .AddIdentity <IdentityUser, IdentityRole>()
                           .AddRavenDbStores(p => documentStore)
                           .Services.BuildServiceProvider();
            var roleManager = provider.GetRequiredService <RoleManager <IdentityRole> >();
            var role        = new IdentityRole
            {
                Id   = Guid.NewGuid().ToString(),
                Name = Guid.NewGuid().ToString()
            };
            var roleResult = await roleManager.CreateAsync(role);

            Assert.True(roleResult.Succeeded);
            await roleManager.AddClaimAsync(role, new Claim(Guid.NewGuid().ToString(), Guid.NewGuid().ToString()));

            await roleManager.AddClaimAsync(role, new Claim(Guid.NewGuid().ToString(), Guid.NewGuid().ToString()));

            await roleManager.AddClaimAsync(role, new Claim(Guid.NewGuid().ToString(), Guid.NewGuid().ToString()));

            var sut = new IdentityRoleClaimStore <IdentityUser, IdentityRole>(roleManager, new ScopedAsynDocumentcSession(documentStore.OpenAsyncSession()), provider.GetRequiredService <ILogger <IdentityRoleClaimStore <IdentityUser, IdentityRole> > >());

            var result = await sut.GetAsync($"{role.Id}@1", null);

            Assert.NotNull(result);
        }
        public async Task GetAsync_by_page_request_should_find_role_claims()
        {
            using var documentStore = new RavenDbTestDriverWrapper().GetDocumentStore();
            var provider = new ServiceCollection()
                           .AddLogging()
                           .AddIdentity <IdentityUser, IdentityRole>()
                           .AddRavenDbStores(p => documentStore)
                           .Services.BuildServiceProvider();
            var roleManager = provider.GetRequiredService <RoleManager <IdentityRole> >();
            var role        = new IdentityRole
            {
                Id   = Guid.NewGuid().ToString(),
                Name = Guid.NewGuid().ToString()
            };
            var roleResult = await roleManager.CreateAsync(role);

            Assert.True(roleResult.Succeeded);
            await roleManager.AddClaimAsync(role, new Claim(Guid.NewGuid().ToString(), Guid.NewGuid().ToString()));

            await roleManager.AddClaimAsync(role, new Claim(Guid.NewGuid().ToString(), Guid.NewGuid().ToString()));

            await roleManager.AddClaimAsync(role, new Claim(Guid.NewGuid().ToString(), Guid.NewGuid().ToString()));

            var sut = new IdentityRoleClaimStore <IdentityUser, IdentityRole>(roleManager, new ScopedAsynDocumentcSession(documentStore.OpenAsyncSession()), provider.GetRequiredService <ILogger <IdentityRoleClaimStore <IdentityUser, IdentityRole> > >());

            var claimsResult = await sut.GetAsync(new PageRequest
            {
                Filter = $"RoleId eq '{role.Id}'",
                Take   = 1
            });

            Assert.NotNull(claimsResult);
            Assert.Equal(3, claimsResult.Count);
            Assert.Single(claimsResult.Items);
        }
Esempio n. 5
0
        public async Task GetAsync_by_id_should_return_claim()
        {
            var provider = new ServiceCollection()
                           .AddLogging()
                           .AddDbContext <IdentityDbContext <IdentityUser> >(options => options.UseInMemoryDatabase(Guid.NewGuid().ToString()))
                           .AddIdentity <IdentityUser, IdentityRole>()
                           .AddEntityFrameworkStores <IdentityDbContext <IdentityUser> >()
                           .Services.BuildServiceProvider();

            var roleManager = provider.GetRequiredService <RoleManager <IdentityRole> >();
            var context     = provider.GetRequiredService <IdentityDbContext <IdentityUser> >();
            var sut         = new IdentityRoleClaimStore <IdentityUser, IdentityRole>(roleManager, context, provider.GetRequiredService <ILogger <IdentityRoleClaimStore <IdentityUser, IdentityRole> > >());

            var role = new IdentityRole
            {
                Id   = Guid.NewGuid().ToString(),
                Name = Guid.NewGuid().ToString()
            };
            await roleManager.CreateAsync(role).ConfigureAwait(false);

            Assert.Null(await sut.GetAsync("1", null).ConfigureAwait(false));

            await roleManager.AddClaimAsync(role, new Claim(Guid.NewGuid().ToString(), Guid.NewGuid().ToString())).ConfigureAwait(false);

            var result = await sut.GetAsync("1", null).ConfigureAwait(false);

            Assert.NotNull(result);
        }
Esempio n. 6
0
        public async Task GetAsync_should_find_claims()
        {
            var provider = new ServiceCollection()
                           .AddLogging()
                           .AddDbContext <IdentityDbContext <IdentityUser> >(options => options.UseInMemoryDatabase(Guid.NewGuid().ToString()))
                           .AddIdentity <IdentityUser, IdentityRole>()
                           .AddEntityFrameworkStores <IdentityDbContext <IdentityUser> >()
                           .Services.BuildServiceProvider();

            var roleManager = provider.GetRequiredService <RoleManager <IdentityRole> >();
            var context     = provider.GetRequiredService <IdentityDbContext <IdentityUser> >();
            var sut         = new IdentityRoleClaimStore <IdentityUser, IdentityRole>(roleManager, context, provider.GetRequiredService <ILogger <IdentityRoleClaimStore <IdentityUser, IdentityRole> > >());

            var role = new IdentityRole
            {
                Id   = Guid.NewGuid().ToString(),
                Name = Guid.NewGuid().ToString()
            };
            await roleManager.CreateAsync(role).ConfigureAwait(false);

            await roleManager.AddClaimAsync(role, new Claim(Guid.NewGuid().ToString(), Guid.NewGuid().ToString())).ConfigureAwait(false);

            var result = await sut.GetAsync(new PageRequest
            {
                Filter = $"{nameof(RoleClaim.RoleId)} eq '{role.Id}'"
            }).ConfigureAwait(false);

            Assert.NotNull(result);
            Assert.Single(result.Items);
        }
Esempio n. 7
0
        public async Task DeleteAsync_should_throw_on_not_found()
        {
            var provider = new ServiceCollection()
                           .AddLogging()
                           .AddDbContext <IdentityDbContext <IdentityUser> >(options => options.UseInMemoryDatabase(Guid.NewGuid().ToString()))
                           .AddIdentity <IdentityUser, IdentityRole>()
                           .AddEntityFrameworkStores <IdentityDbContext <IdentityUser> >()
                           .Services.BuildServiceProvider();

            var roleManager = provider.GetRequiredService <RoleManager <IdentityRole> >();
            var context     = provider.GetRequiredService <IdentityDbContext <IdentityUser> >();
            var sut         = new IdentityRoleClaimStore <IdentityUser, IdentityRole>(roleManager, context, provider.GetRequiredService <ILogger <IdentityRoleClaimStore <IdentityUser, IdentityRole> > >());

            await Assert.ThrowsAsync <DbUpdateException>(() => sut.DeleteAsync("0")).ConfigureAwait(false);
        }