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 userManager = provider.GetRequiredService <UserManager <IdentityUser> >(); var context = provider.GetRequiredService <IdentityDbContext <IdentityUser> >(); var sut = new IdentityUserClaimStore <IdentityUser>(userManager, context, provider.GetRequiredService <ILogger <IdentityUserClaimStore <IdentityUser> > >()); var user = new IdentityUser { Id = Guid.NewGuid().ToString(), UserName = Guid.NewGuid().ToString(), Email = "*****@*****.**" }; await userManager.CreateAsync(user).ConfigureAwait(false); await userManager.AddClaimAsync(user, new Claim(Guid.NewGuid().ToString(), Guid.NewGuid().ToString())).ConfigureAwait(false); var result = await sut.GetAsync(new PageRequest { Filter = $"{nameof(Entity.UserClaim.UserId)} eq '{user.Id}'" }).ConfigureAwait(false); Assert.NotNull(result); Assert.Single(result.Items); }
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 userManager = provider.GetRequiredService <UserManager <IdentityUser> >(); var context = provider.GetRequiredService <IdentityDbContext <IdentityUser> >(); var sut = new IdentityUserClaimStore <IdentityUser>(userManager, context, provider.GetRequiredService <ILogger <IdentityUserClaimStore <IdentityUser> > >()); var user = new IdentityUser { Id = Guid.NewGuid().ToString(), UserName = Guid.NewGuid().ToString(), Email = "*****@*****.**" }; await userManager.CreateAsync(user).ConfigureAwait(false); Assert.Null(await sut.GetAsync("1", null).ConfigureAwait(false)); await userManager.AddClaimAsync(user, new Claim(Guid.NewGuid().ToString(), Guid.NewGuid().ToString())).ConfigureAwait(false); var result = await sut.GetAsync("1", null).ConfigureAwait(false); Assert.NotNull(result); }
public async Task DeleteAsync_should_not_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 userManager = provider.GetRequiredService <UserManager <IdentityUser> >(); var context = provider.GetRequiredService <IdentityDbContext <IdentityUser> >(); var sut = new IdentityUserClaimStore <IdentityUser>(userManager, context, provider.GetRequiredService <ILogger <IdentityUserClaimStore <IdentityUser> > >()); await sut.DeleteAsync("0").ConfigureAwait(false); Assert.True(true); }
public async Task UpdateAsync_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 userManager = provider.GetRequiredService <UserManager <IdentityUser> >(); var context = provider.GetRequiredService <IdentityDbContext <IdentityUser> >(); var sut = new IdentityUserClaimStore <IdentityUser>(userManager, context, provider.GetRequiredService <ILogger <IdentityUserClaimStore <IdentityUser> > >()); await Assert.ThrowsAsync <DbUpdateException>(() => sut.UpdateAsync(new Entity.UserClaim { Id = "0" } as object)).ConfigureAwait(false); }
public async Task GetAsync_by_page_request_should_find_role_claims() { using var documentStore = new RavenDbTestDriverWrapper().GetDocumentStore(); var services = new ServiceCollection() .AddLogging(); services.AddIdentity <IdentityUser, IdentityRole>() .AddRavenDbStores(p => documentStore); IServiceProvider provider = services.AddIdentityServer4AdminRavenDbkStores <IdentityUser, IdentityRole>(p => documentStore).BuildServiceProvider(); using var scope = provider.CreateScope(); provider = scope.ServiceProvider; var userManager = provider.GetRequiredService <UserManager <IdentityUser> >(); var user = new IdentityUser { Id = Guid.NewGuid().ToString(), Email = "*****@*****.**", EmailConfirmed = true, UserName = Guid.NewGuid().ToString() }; var roleResult = await userManager.CreateAsync(user); Assert.True(roleResult.Succeeded); await userManager.AddClaimAsync(user, new Claim(Guid.NewGuid().ToString(), Guid.NewGuid().ToString())); await userManager.AddClaimAsync(user, new Claim(Guid.NewGuid().ToString(), Guid.NewGuid().ToString())); await userManager.AddClaimAsync(user, new Claim(Guid.NewGuid().ToString(), Guid.NewGuid().ToString())); var sut = new IdentityUserClaimStore <IdentityUser>(userManager, new ScopedAsynDocumentcSession(documentStore.OpenAsyncSession()), provider.GetRequiredService <ILogger <IdentityUserClaimStore <IdentityUser> > >()); var claimsResult = await sut.GetAsync(new PageRequest { Filter = $"UserId eq '{user.Id}'", Take = 1 }); Assert.NotNull(claimsResult); Assert.Equal(3, claimsResult.Count); Assert.Single(claimsResult.Items); }
public async Task UdpateAsync_should_update_claim() { using var documentStore = new RavenDbTestDriverWrapper().GetDocumentStore(); var services = new ServiceCollection() .AddLogging(); services.AddIdentity <IdentityUser, IdentityRole>() .AddRavenDbStores(p => documentStore); IServiceProvider provider = services.AddIdentityServer4AdminRavenDbkStores <IdentityUser, IdentityRole>(p => documentStore).BuildServiceProvider(); using var scope = provider.CreateScope(); provider = scope.ServiceProvider; var userManager = provider.GetRequiredService <UserManager <IdentityUser> >(); var user = new IdentityUser { Id = Guid.NewGuid().ToString(), Email = "*****@*****.**", EmailConfirmed = true, UserName = Guid.NewGuid().ToString() }; var result = await userManager.CreateAsync(user); Assert.True(result.Succeeded); result = await userManager.AddClaimAsync(user, new Claim("test", "test")); Assert.True(result.Succeeded); var sut = new IdentityUserClaimStore <IdentityUser>(userManager, new ScopedAsynDocumentcSession(documentStore.OpenAsyncSession()), provider.GetRequiredService <ILogger <IdentityUserClaimStore <IdentityUser> > >()); await sut.UpdateAsync(new Entity.UserClaim { Id = $"{user.Id}@0", UserId = user.Id, ClaimType = Guid.NewGuid().ToString(), ClaimValue = Guid.NewGuid().ToString() } as object); var claims = await userManager.GetClaimsAsync(user); Assert.Single(claims); Assert.NotEqual("test", claims.First().Type); Assert.NotEqual("test", claims.First().Value); }
public async Task CreateAsync_should_return_claim_id() { using var documentStore = new RavenDbTestDriverWrapper().GetDocumentStore(); var services = new ServiceCollection() .AddLogging(); services.AddIdentity <IdentityUser, IdentityRole>() .AddRavenDbStores(p => documentStore); IServiceProvider provider = services.AddIdentityServer4AdminRavenDbkStores <IdentityUser, IdentityRole>(p => documentStore).BuildServiceProvider(); using var scope = provider.CreateScope(); provider = scope.ServiceProvider; var userManager = provider.GetRequiredService <UserManager <IdentityUser> >(); var user = new IdentityUser { Id = Guid.NewGuid().ToString(), Email = "*****@*****.**", EmailConfirmed = true, UserName = Guid.NewGuid().ToString() }; var roleResult = await userManager.CreateAsync(user); Assert.True(roleResult.Succeeded); var sut = new IdentityUserClaimStore <IdentityUser>(userManager, new ScopedAsynDocumentcSession(documentStore.OpenAsyncSession()), provider.GetRequiredService <ILogger <IdentityUserClaimStore <IdentityUser> > >()); var result = await sut.CreateAsync(new Entity.UserClaim { ClaimType = "test", ClaimValue = "test", UserId = user.Id } as object); Assert.NotNull(result); Assert.NotNull(((Entity.UserClaim)result).Id); }