public void ResourceCompositeTest() { var dir = new ResourceDirectory <Theme>(new ThemeKeyValueGenerator(), _themeDir, "*.xaml"); var finder = new ResourceFinder <Theme>(dir); var reader = new CacheableResourceReader <Theme>(); var r = new ResourceDictionary(); var mergedDictionaries = r.MergedDictionaries; var switcher = new ResourceState <Theme>(new ResourceUpdater <Theme>(reader, mergedDictionaries)); PrivateObject po = new PrivateObject(reader); var cachedDic = (po.GetField("_cachedDictionaries") as IDictionary <string, ResourceDictionary>); Assert.AreEqual(0, cachedDic.Count); switcher.Switch(finder, "General"); Assert.AreEqual("General", switcher.Current.Id); Assert.AreEqual(1, cachedDic.Count); switcher.Switch(finder, "Solarized"); Assert.AreEqual("Solarized", switcher.Current.Id); Assert.AreEqual(2, cachedDic.Count); switcher.SwitchNext(finder); Assert.AreEqual("General", switcher.Current.Id); Assert.AreEqual(2, cachedDic.Count); switcher.Switch(finder, "Solarized"); Assert.AreEqual("Solarized", switcher.Current.Id); Assert.AreEqual(2, cachedDic.Count); switcher.SwitchNext(finder); Assert.AreEqual("General", switcher.Current.Id); Assert.AreEqual(2, cachedDic.Count); switcher.SwitchNext(finder); Assert.AreEqual("General2", switcher.Current.Id); Assert.AreEqual(3, cachedDic.Count); switcher.SwitchNext(finder); Assert.AreEqual("Solarized", switcher.Current.Id); Assert.AreEqual(3, cachedDic.Count); switcher.SwitchNext(finder); Assert.AreEqual("General", switcher.Current.Id); Assert.AreEqual(3, cachedDic.Count); }
public void LanguageTest() { var dir = new ResourceDirectory <Language>(new LanguageKeyValueGenerator(), _languageDir, "*.xaml"); var finder = new ResourceFinder <Language>(dir); var reader = new CacheableResourceReader <Language>(); var r = new ResourceDictionary(); var mergedDictionaries = r.MergedDictionaries; var switcher = new ResourceState <Language>(new ResourceUpdater <Language>(reader, mergedDictionaries)); switcher.Switch(finder, "en-US"); Assert.AreEqual("en-US", switcher.Current.Id); switcher.Switch(finder, "ja-JP"); Assert.AreEqual("ja-JP", switcher.Current.Id); switcher.Switch(finder, null); Assert.AreEqual("en-US", switcher.Current.Id); }
public void ResourceSwitcherTest1() { int updateCount = 0; var updater = new Mock <IResourceUpdater <Theme> >(); updater.Setup(x => x.Update(It.IsAny <Theme>(), It.IsAny <Theme>())) .Callback((Theme old, Theme x) => ++ updateCount); var dir = new Mock <IResourceDirectory <Theme> >(); dir.Setup(x => x.AvailableResources).Returns(_themeDic); var finder = new ResourceFinder <Theme>(dir.Object); var switcher = new ResourceState <Theme>(updater.Object); switcher.Switch(finder, "General"); Assert.AreEqual("General", switcher.Current.Id); Assert.AreEqual(1, updateCount); switcher.Switch(finder, "Solarized"); Assert.AreEqual("Solarized", switcher.Current.Id); Assert.AreEqual(2, updateCount); switcher.Switch(finder, "General"); Assert.AreEqual("General", switcher.Current.Id); Assert.AreEqual(3, updateCount); switcher.Switch(finder, "Solarized"); Assert.AreEqual("Solarized", switcher.Current.Id); Assert.AreEqual(4, updateCount); switcher.Switch(finder, "Solarized"); Assert.AreEqual("Solarized", switcher.Current.Id); Assert.AreEqual(5, updateCount); switcher.Switch(finder, "General"); Assert.AreEqual("General", switcher.Current.Id); Assert.AreEqual(6, updateCount); }
public void SwitchLanguage(IResourceItem language) { Application.Current.Dispatcher.Invoke(() => _state.Switch(_finder, language.Id)); }
public void Switch(string id) { Application.Current.Dispatcher.Invoke(() => _state.Switch(_finder, id)); }