public static WTMContext CreateWtmContext(IDataContext dataContext = null, string usercode = null) { GlobalData gd = new GlobalData(); gd.AllAccessUrls = new List <string>(); gd.AllAssembly = new List <System.Reflection.Assembly>(); gd.AllModule = new List <WalkingTec.Mvvm.Core.Support.Json.SimpleModule>(); Mock <HttpContext> mockHttpContext = new Mock <HttpContext>(); Mock <HttpRequest> mockHttpRequest = new Mock <HttpRequest>(); Mock <IServiceProvider> mockService = new Mock <IServiceProvider>(); MockHttpSession mockSession = new MockHttpSession(); mockHttpRequest.Setup(x => x.Cookies).Returns(new MockCookie()); var cache = new MemoryDistributedCache(Options.Create <MemoryDistributedCacheOptions>(new MemoryDistributedCacheOptions())); var res = new ResourceManagerStringLocalizerFactory(Options.Create <LocalizationOptions>(new LocalizationOptions { ResourcesPath = "Resources" }), new Microsoft.Extensions.Logging.LoggerFactory()); mockService.Setup(x => x.GetService(typeof(IDistributedCache))).Returns(cache); mockHttpContext.Setup(x => x.Request).Returns(mockHttpRequest.Object); mockHttpContext.Setup(x => x.RequestServices).Returns(mockService.Object); var httpa = new HttpContextAccessor(); httpa.HttpContext = mockHttpContext.Object; var wtmcontext = new WTMContext(null, new GlobalData(), httpa, new DefaultUIService(), null, dataContext, res, cache: cache); wtmcontext.MSD = new BasicMSD(); wtmcontext.Session = new SessionServiceProvider(mockSession); if (dataContext == null) { wtmcontext.DC = new EmptyContext(Guid.NewGuid().ToString(), DBTypeEnum.Memory); } else { wtmcontext.DC = dataContext; } wtmcontext.LoginUserInfo = new LoginUserInfo { ITCode = usercode ?? "user" }; wtmcontext.GlobaInfo.AllAccessUrls = new List <string>(); wtmcontext.GlobaInfo.AllAssembly = new List <System.Reflection.Assembly>(); wtmcontext.GlobaInfo.AllModule = new List <WalkingTec.Mvvm.Core.Support.Json.SimpleModule>(); mockService.Setup(x => x.GetService(typeof(WtmFileProvider))).Returns(new WtmFileProvider(wtmcontext)); return(wtmcontext); }
/// <summary> /// Custom Reload user process when cache is not available /// 设置自定义的方法重新读取用户信息,这个方法会在用户缓存失效的时候调用 /// </summary> /// <param name="context"></param> /// <param name="account"></param> /// <returns></returns> public LoginUserInfo ReloadUser(WTMContext context, string account) { return(null); }