public void Getting_From_User_Cache_should_cache_on_call_If_SetLoggedOnUserInCache_is_not_already_called_on_logged_user() { var Logger = serviceProvider.GetService <ILoggerFactory>().CreateLogger <UserCaching>(); var loggeUserId = Guid.NewGuid().ToString(); var UsrMgr = BuildUserManager <AspNetUser>(); var cache = serviceProvider.GetService <IMemoryCache>(); var httpAccessor = serviceProvider.GetService <IHttpContextAccessor>(); var user = new AspNetUser() { UserName = "******", Email = "*****@*****.**", Id = loggeUserId }; UsrMgr.CreateAsync(user);//saving in db httpAccessor.HttpContext.User = new ClaimsPrincipal(new ClaimsIdentity(new Claim[] { new Claim(ClaimTypes.Name, user.UserName), new Claim(ClaimTypes.NameIdentifier, user.Id) }, "SomeAuthTYpe")); var signInManager = new FakeSignInManager(httpAccessor); UserCaching r = new UserCaching(signInManager, httpAccessor, cache, UsrMgr, Logger); var cached = r.GetLoggedOnUser().Result; Assert.NotNull(cached); Assert.Equal(user.Id, cached.Id); }
public async Task Should_remove_key_and_data_on_clear_logged_on_user() { var Logger = serviceProvider.GetService <ILoggerFactory>().CreateLogger <UserCaching>(); var loggeUserId = Guid.NewGuid().ToString(); var UsrMgr = BuildUserManager <AspNetUser>(); var cache = serviceProvider.GetService <IMemoryCache>(); var httpAccessor = serviceProvider.GetService <IHttpContextAccessor>(); var user = new AspNetUser() { UserName = "******", Email = "*****@*****.**", Id = loggeUserId }; await UsrMgr.CreateAsync(user);//saving in db httpAccessor.HttpContext.User = new ClaimsPrincipal(new ClaimsIdentity(new Claim[] { new Claim(ClaimTypes.Name, user.UserName), new Claim(ClaimTypes.NameIdentifier, user.Id) }, "SomeAuthTYpe")); var signInManager = new FakeSignInManager(httpAccessor); UserCaching r = new UserCaching(signInManager, httpAccessor, cache, UsrMgr, Logger); await r.SetLoggedOnUserInCache(); var cachedUsr = await r.GetLoggedOnUser(); Assert.NotNull(cachedUsr); Assert.Equal(user.Id, cachedUsr.Id); r.ClearLoggedOnUser(); //cachedUsr = await r.GetLoggedOnUser(); //Assert.Null(cachedUsr); var keyIsNUll = cache.Get(r.GetUserCacheKey(cachedUsr.Id)); Assert.Null(keyIsNUll); }