public void OriginalFilesModificationTest(string version, string fileName) { var settingPathMock = new Mock <ISettingsPath>(); var mockIOProvider = BackCompatTestProperties.GetModuleIOProvider(version, ShortcutGuideSettings.ModuleName, fileName); var mockSettingsUtils = new SettingsUtils(mockIOProvider.Object, settingPathMock.Object); ShortcutGuideSettings originalSettings = mockSettingsUtils.GetSettings <ShortcutGuideSettings>(ShortcutGuideSettings.ModuleName); var mockGeneralIOProvider = BackCompatTestProperties.GetGeneralSettingsIOProvider(version); var mockGeneralSettingsUtils = new SettingsUtils(mockGeneralIOProvider.Object, settingPathMock.Object); GeneralSettings originalGeneralSettings = mockGeneralSettingsUtils.GetSettings <GeneralSettings>(); var generalSettingsRepository = new BackCompatTestProperties.MockSettingsRepository <GeneralSettings>(mockGeneralSettingsUtils); var shortcutSettingsRepository = new BackCompatTestProperties.MockSettingsRepository <ShortcutGuideSettings>(mockSettingsUtils); // Initialise View Model with test Config files Func <string, int> SendMockIPCConfigMSG = msg => { return(0); }; ShortcutGuideViewModel viewModel = new ShortcutGuideViewModel(generalSettingsRepository, shortcutSettingsRepository, SendMockIPCConfigMSG); // Verify that the old settings persisted Assert.AreEqual(originalGeneralSettings.Enabled.ShortcutGuide, viewModel.IsEnabled); Assert.AreEqual(originalSettings.Properties.OverlayOpacity.Value, viewModel.OverlayOpacity); Assert.AreEqual(originalSettings.Properties.PressTime.Value, viewModel.PressTime); //Verify that the stub file was used var expectedCallCount = 2; //once via the view model, and once by the test (GetSettings<T>) BackCompatTestProperties.VerifyModuleIOProviderWasRead(mockIOProvider, ShortcutGuideSettings.ModuleName, expectedCallCount); BackCompatTestProperties.VerifyGeneralSettingsIOProviderWasRead(mockGeneralIOProvider, expectedCallCount); }
public void Setup() { // initialize creation of test settings file. // Test base path: // C:\Users\<user name>\AppData\Local\Packages\08e1807b-8b6d-4bfa-adc4-79c64aae8e78_9abkseg265h2m\LocalState\Microsoft\PowerToys\ GeneralSettings generalSettings = new GeneralSettings(); ShortcutGuideSettings shortcutGuide = new ShortcutGuideSettings(); SettingsUtils.SaveSettings(generalSettings.ToJsonString()); SettingsUtils.SaveSettings(shortcutGuide.ToJsonString(), ShortCutGuideTestFolderName); }
public ShortcutGuideViewModel(ISettingsUtils settingsUtils, Func <string, int> ipcMSGCallBackFunc, string configFileSubfolder = "") { // Update Settings file folder: _settingsConfigFileFolder = configFileSubfolder; _settingsUtils = settingsUtils ?? throw new ArgumentNullException(nameof(settingsUtils)); try { Settings = _settingsUtils.GetSettings <ShortcutGuideSettings>(GetSettingsSubPath()); } catch { Settings = new ShortcutGuideSettings(); _settingsUtils.SaveSettings(Settings.ToJsonString(), GetSettingsSubPath()); } GeneralSettings generalSettings; try { generalSettings = _settingsUtils.GetSettings <GeneralSettings>(string.Empty); } catch { generalSettings = new GeneralSettings(); _settingsUtils.SaveSettings(generalSettings.ToJsonString(), string.Empty); } // set the callback functions value to hangle outgoing IPC message. SendConfigMSG = ipcMSGCallBackFunc; _isEnabled = generalSettings.Enabled.ShortcutGuide; _pressTime = Settings.Properties.PressTime.Value; _opacity = Settings.Properties.OverlayOpacity.Value; string theme = Settings.Properties.Theme.Value; if (theme == "dark") { _themeIndex = 0; } if (theme == "light") { _themeIndex = 1; } if (theme == "system") { _themeIndex = 2; } }
public ShortcutGuideViewModel() { try { Settings = SettingsUtils.GetSettings <ShortcutGuideSettings>(ModuleName); } catch { Settings = new ShortcutGuideSettings(); SettingsUtils.SaveSettings(Settings.ToJsonString(), ModuleName); } GeneralSettings generalSettings; try { generalSettings = SettingsUtils.GetSettings <GeneralSettings>(string.Empty); } catch { generalSettings = new GeneralSettings(); SettingsUtils.SaveSettings(generalSettings.ToJsonString(), string.Empty); } _isEnabled = generalSettings.Enabled.ShortcutGuide; _pressTime = Settings.Properties.PressTime.Value; _opacity = Settings.Properties.OverlayOpacity.Value; string theme = Settings.Properties.Theme.Value; if (theme == "dark") { _themeIndex = 0; } if (theme == "light") { _themeIndex = 1; } if (theme == "system") { _themeIndex = 2; } }