public void DistributedCache_Test() { IServiceCollection sc = new ServiceCollection() .AddLogging() .AddHttpClient() .AddDistributedMemoryCache(); var sp = sc.BuildServiceProvider(); ClientCertificateInfo ci = new ClientCertificateInfo() { ClientID = "1", AuthUrl = "1", ClientSecret = "1" }; MockTokenProcessor processor = new MockTokenProcessor(); CheckResponseProcessor checker = CheckResponseProcessor.NormalChecker; DistributedTokenCacheManager cacheManager = new DistributedTokenCacheManager( sp.GetRequiredService <IDistributedCache>(), ci.ClientID); ClientCertificateManager ccm = new ClientCertificateManager( ci, processor, SetTokenProcessor.Bearer, checker, cacheManager, sp.GetRequiredService <ILogger <ClientCertificateManager> >(), sp.GetRequiredService <IHttpClientFactory>()); List <Task> taskList = new List <Task>(); for (int i = 0; i < 10; i++) { taskList.Add(Task.Run(async() => { await ccm.GetAccessToken(); })); } Task.WaitAll(taskList.ToArray()); Assert.Equal(1, processor.exeCount); }
public async Task DistributedCache_SetAndGetToken() { IServiceCollection sc = new ServiceCollection() .AddDistributedMemoryCache(); var sp = sc.BuildServiceProvider(); DistributedTokenCacheManager tokenManger = new DistributedTokenCacheManager(sp.GetRequiredService <IDistributedCache>(), "1"); TokenCache tc = new TokenCache() { access_token = "1" }; await tokenManger.SetToken(tc); var tc2 = await tokenManger.GetToken(); Assert.Equal(tc.access_token, tc2.access_token); await tokenManger.RemoveToken(); tc2 = await tokenManger.GetToken(); Assert.Null(tc2); }