public async Task DeletePersistedGrantsAsync() { using (var context = new AdminDbContext(_dbContextOptions, _storeOptions, _operationalStore)) { IPersistedGrantRepository persistedGrantRepository = new PersistedGrantRepository(context); var localizerMock = new Mock <IPersistedGrantServiceResources>(); var localizer = localizerMock.Object; var persistedGrantService = new PersistedGrantService(persistedGrantRepository, localizer); const int subjectId = 1; for (var i = 0; i < 4; i++) { //Generate persisted grant var persistedGrantKey = Guid.NewGuid().ToString(); var persistedGrant = PersistedGrantMock.GenerateRandomPersistedGrant(persistedGrantKey, subjectId); //Try add new persisted grant await context.PersistedGrants.AddAsync(persistedGrant); } await context.SaveChangesAsync(); //Try delete persisted grant await persistedGrantService.DeletePersistedGrantsAsync($"{subjectId}"); var grant = await persistedGrantRepository.GetPersitedGrantsByUser(subjectId.ToString()); //Assert grant.TotalCount.Should().Be(0); } }
public async Task DeletePersistedGrantAsync() { using (var context = new AdminDbContext(_dbContextOptions, _storeOptions, _operationalStore)) { IPersistedGrantRepository persistedGrantRepository = new PersistedGrantRepository(context); var localizerMock = new Mock <IPersistedGrantServiceResources>(); var localizer = localizerMock.Object; var persistedGrantService = new PersistedGrantService(persistedGrantRepository, localizer); //Generate persisted grant var persistedGrantKey = Guid.NewGuid().ToString(); var persistedGrant = PersistedGrantMock.GenerateRandomPersistedGrant(persistedGrantKey); //Try add new persisted grant await context.PersistedGrants.AddAsync(persistedGrant); await context.SaveChangesAsync(); //Try delete persisted grant await persistedGrantService.DeletePersistedGrantAsync(persistedGrantKey); var grant = await persistedGrantRepository.GetPersitedGrantAsync(persistedGrantKey); //Assert grant.Should().BeNull(); } }
public async Task GetPersitedGrantAsync() { using (var context = new ConfigurationDbContext(_dbConfigurationContextOptions, _storeOptions, _operationalStore)) { var persistedGrantRepository = new PersistedGrantRepository(new AdminDbContext(_dbAdminContextOptions), context); var localizerMock = new Mock <IPersistedGrantServiceResources>(); var localizer = localizerMock.Object; var persistedGrantService = new PersistedGrantService(persistedGrantRepository, localizer); //Generate persisted grant var persistedGrantKey = Guid.NewGuid().ToString(); var persistedGrant = PersistedGrantMock.GenerateRandomPersistedGrant(persistedGrantKey); //Try add new persisted grant await context.PersistedGrants.AddAsync(persistedGrant); await context.SaveChangesAsync(); //Try get persisted grant var persistedGrantAdded = await persistedGrantService.GetPersitedGrantAsync(persistedGrantKey); //Assert persistedGrant.ShouldBeEquivalentTo(persistedGrantAdded); } }
private static PersistedGrantService CreateSut() { var authorizationCodeStoreMock = new Mock <IAdminStore <Entity.AuthorizationCode> >(); var userConsentStoreMock = new Mock <IAdminStore <Entity.UserConsent> >(); var refreshTokenStoreMock = new Mock <IAdminStore <Entity.RefreshToken> >(); var referenceTokenStoreMock = new Mock <IAdminStore <Entity.ReferenceToken> >(); var serializer = new PersistentGrantSerializer(); var sut = new PersistedGrantService(authorizationCodeStoreMock.Object, userConsentStoreMock.Object, refreshTokenStoreMock.Object, referenceTokenStoreMock.Object, serializer); authorizationCodeStoreMock.Setup(m => m.GetAsync(It.IsAny <PageRequest>(), default)).ReturnsAsync(new PageResponse <Entity.AuthorizationCode> { Items = new[] { new Entity.AuthorizationCode { Data = serializer.Serialize(new AuthorizationCode { RequestedScopes = Array.Empty <string>() }) } } }); userConsentStoreMock.Setup(m => m.GetAsync(It.IsAny <PageRequest>(), default)).ReturnsAsync(new PageResponse <Entity.UserConsent> { Items = new[] { new Entity.UserConsent { Data = serializer.Serialize(new Consent { Scopes = Array.Empty <string>() }) } } }); refreshTokenStoreMock.Setup(m => m.GetAsync(It.IsAny <PageRequest>(), default)).ReturnsAsync(new PageResponse <Entity.RefreshToken> { Items = new[] { new Entity.RefreshToken() { Data = serializer.Serialize(new RefreshToken { AccessToken = new Token { Claims = Array.Empty <Claim>() } }) } } }); referenceTokenStoreMock.Setup(m => m.GetAsync(It.IsAny <PageRequest>(), default)).ReturnsAsync(new PageResponse <Entity.ReferenceToken> { Items = new[] { new Entity.ReferenceToken() { Data = serializer.Serialize(new Token { Claims = Array.Empty <Claim>() }) } } }); return(sut); }
private static PersistedGrantService CreateSut(out Mock <IDataProtector> mock) { var authorizationCodeStoreMock = new Mock <IAdminStore <Entity.AuthorizationCode> >(); var userConsentStoreMock = new Mock <IAdminStore <Entity.UserConsent> >(); var refreshTokenStoreMock = new Mock <IAdminStore <Entity.RefreshToken> >(); var referenceTokenStoreMock = new Mock <IAdminStore <Entity.ReferenceToken> >(); var dataProtectorProviderMock = new Mock <IDataProtectionProvider>(); var dataProtectorMock = new Mock <IDataProtector>(); dataProtectorMock.Setup(m => m.Protect(It.IsAny <byte[]>())).Returns <byte[]>(b => b); dataProtectorMock.Setup(m => m.Unprotect(It.IsAny <byte[]>())).Returns <byte[]>(b => b); dataProtectorProviderMock.Setup(m => m.CreateProtector(It.IsAny <string>())).Returns(dataProtectorMock.Object); #if DUENDE var serializer = new PersistentGrantSerializer(new PersistentGrantOptions { DataProtectData = true }, dataProtectorProviderMock.Object); #else var serializer = new PersistentGrantSerializer(); #endif var localizerMock = new Mock <IStringLocalizer <PersistedGrantService> >(); var loggerMock = new Mock <ILogger <PersistedGrantService> >(); var sut = new PersistedGrantService(authorizationCodeStoreMock.Object, userConsentStoreMock.Object, refreshTokenStoreMock.Object, referenceTokenStoreMock.Object, serializer, localizerMock.Object, loggerMock.Object); authorizationCodeStoreMock.Setup(m => m.GetAsync(It.IsAny <PageRequest>(), default)).ReturnsAsync(new PageResponse <Entity.AuthorizationCode> { Items = new[] { new Entity.AuthorizationCode { Data = serializer.Serialize(new AuthorizationCode { RequestedScopes = Array.Empty <string>() }) } } }); userConsentStoreMock.Setup(m => m.GetAsync(It.IsAny <PageRequest>(), default)).ReturnsAsync(new PageResponse <Entity.UserConsent> { Items = new[] { new Entity.UserConsent { Data = serializer.Serialize(new Consent { Scopes = Array.Empty <string>() }) } } }); #if DUENDE var refreshToken = new RefreshToken(); refreshToken.SetAccessToken(new Token { Claims = Array.Empty <Claim>() }); #else var refreshToken = new RefreshToken { AccessToken = new Token { Claims = Array.Empty <Claim>() } }; #endif refreshTokenStoreMock.Setup(m => m.GetAsync(It.IsAny <PageRequest>(), default)).ReturnsAsync(new PageResponse <Entity.RefreshToken> { Items = new[] { new Entity.RefreshToken() { Data = serializer.Serialize(refreshToken) } } }); referenceTokenStoreMock.Setup(m => m.GetAsync(It.IsAny <PageRequest>(), default)).ReturnsAsync(new PageResponse <Entity.ReferenceToken> { Items = new[] { new Entity.ReferenceToken() { Data = serializer.Serialize(new Token { Claims = Array.Empty <Claim>() }) } } }); mock = dataProtectorMock; return(sut); }