public void ByLocale() { var policy = Application.Ioc.Resolve <ICacheIsolationPolicy>(serviceKey: "Locale"); LocaleUtils.SetThreadLanguage("zh-CN"); LocaleUtils.SetThreadTimezoneAutomatic("China Standard Time"); Assert.Equals(policy.GetIsolationKey(), Pair.Create( "zh-CN", LocaleUtils.GetTimezoneInfo("China Standard Time"))); LocaleUtils.SetThreadLanguage("en-US"); LocaleUtils.SetThreadTimezoneAutomatic("GMT Standard Time"); Assert.Equals(policy.GetIsolationKey(), Pair.Create( "en-US", LocaleUtils.GetTimezoneInfo("GMT Standard Time"))); }
public void SetThreadTimezoneAutomatic() { var context = HttpManager.CurrentContext; // No cookies, with default timezone context.RemoveCookie(LocaleUtils.TimeZoneKey); LocaleUtils.SetThreadTimezoneAutomatic("China Standard Time"); var timezone = context.GetData <TimeZoneInfo>(LocaleUtils.TimeZoneKey); Assert.Equals(timezone, LocaleUtils.GetTimezoneInfo("China Standard Time")); LocaleUtils.SetThreadTimezoneAutomatic("GMT Standard Time"); timezone = context.GetData <TimeZoneInfo>(LocaleUtils.TimeZoneKey); Assert.Equals(timezone, LocaleUtils.GetTimezoneInfo("GMT Standard Time")); // No cookies, no default timezone Assert.IsTrue(!LocaleUtils.SetThreadTimezoneAutomatic(null)); timezone = context.GetData <TimeZoneInfo>(LocaleUtils.TimeZoneKey); Assert.Equals(timezone, LocaleUtils.GetTimezoneInfo("GMT Standard Time")); // Have cookies, no default timezone context.PutCookie(LocaleUtils.TimeZoneKey, "China Standard Time", new HttpCookieOptions()); Assert.IsTrue(LocaleUtils.SetThreadTimezoneAutomatic(null)); timezone = context.GetData <TimeZoneInfo>(LocaleUtils.TimeZoneKey); Assert.Equals(timezone, LocaleUtils.GetTimezoneInfo("China Standard Time")); }