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 SwitchNext() { Application.Current.Dispatcher.Invoke(() => _state.SwitchNext(_finder)); }