public void User_Cache_Should_Return_Data_If_User_In_Storage_And_Logged_In() { 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 cachedUsr = r.SetLoggedOnUserInCache().Result; Assert.NotNull(cachedUsr); Assert.Equal(user.Id, cachedUsr.Id); }
public async Task User_Cache_Should_Return_Null_If_User_Not_Found_In_Storage() { var loggedUserId = Guid.NewGuid().ToString(); var Logger = serviceProvider.GetService <ILoggerFactory>().CreateLogger <UserCaching>(); var UsrMgr = BuildUserManager <AspNetUser>(); var cache = serviceProvider.GetService <IMemoryCache>(); var httpAccessor = serviceProvider.GetService <IHttpContextAccessor>(); //that use was once logged in but then got deleted somehow httpAccessor.HttpContext.User = new ClaimsPrincipal(new ClaimsIdentity(new Claim[] { new Claim(ClaimTypes.Name, "a-deleted-user"), new Claim(ClaimTypes.NameIdentifier, "not-t-be-found") }, "SomeAuthTYpe")); var signInManager = new FakeSignInManager(httpAccessor); UserCaching r = new UserCaching(signInManager, httpAccessor, cache, UsrMgr, Logger); Assert.Null(await r.SetLoggedOnUserInCache()); }
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); }
public void User_Cache_Should_Return_Null_If_User_NOT_Logged_In() { 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 = null; var signInManager = new FakeSignInManager(httpAccessor); UserCaching r = new UserCaching(signInManager, httpAccessor, cache, UsrMgr, Logger); var cachedUsr = r.SetLoggedOnUserInCache().Result; Assert.Null(cachedUsr); }