public void KeepDateModifiedShouldUpdateValueWhenSuccessful() { // arrange var settingUtils = ISettingsUtilsMocks.GetStubSettingsUtils <ImageResizerSettings>(); var expectedSettingsString = new ImageResizerSettings() { Properties = new ImageResizerProperties() { ImageresizerKeepDateModified = new BoolProperty() { Value = true } } }.ToJsonString(); settingUtils.Setup(x => x.SaveSettings( It.Is <string>(content => content.Equals(expectedSettingsString, StringComparison.Ordinal)), It.Is <string>(module => module.Equals(ImageResizerSettings.ModuleName, StringComparison.Ordinal)), It.IsAny <string>())) .Verifiable(); Func <string, int> SendMockIPCConfigMSG = msg => { return(0); }; ImageResizerViewModel viewModel = new ImageResizerViewModel(settingUtils.Object, SettingsRepository <GeneralSettings> .GetInstance(mockGeneralSettingsUtils.Object), SendMockIPCConfigMSG); // act viewModel.KeepDateModified = true; // Assert settingUtils.Verify(); }
public void OriginalFilesModificationTest(string version, string fileName) { var mockIOProvider = BackCompatTestProperties.GetModuleIOProvider(version, ImageResizerSettings.ModuleName, fileName); var mockSettingsUtils = new SettingsUtils(mockIOProvider.Object); ImageResizerSettings originalSettings = mockSettingsUtils.GetSettings <ImageResizerSettings>(ImageResizerSettings.ModuleName); var mockGeneralIOProvider = BackCompatTestProperties.GetGeneralSettingsIOProvider(version); var mockGeneralSettingsUtils = new SettingsUtils(mockGeneralIOProvider.Object); GeneralSettings originalGeneralSettings = mockGeneralSettingsUtils.GetSettings <GeneralSettings>(); var generalSettingsRepository = new BackCompatTestProperties.MockSettingsRepository <GeneralSettings>(mockGeneralSettingsUtils); // Initialise View Model with test Config files Func <string, int> SendMockIPCConfigMSG = msg => { return(0); }; ImageResizerViewModel viewModel = new ImageResizerViewModel(mockSettingsUtils, generalSettingsRepository, SendMockIPCConfigMSG); // Verifiy that the old settings persisted Assert.AreEqual(originalGeneralSettings.Enabled.ImageResizer, viewModel.IsEnabled); Assert.AreEqual(ImageResizerViewModel.GetEncoderIndex(originalSettings.Properties.ImageresizerFallbackEncoder.Value), viewModel.Encoder); Assert.AreEqual(originalSettings.Properties.ImageresizerFileName.Value, viewModel.FileName); Assert.AreEqual(originalSettings.Properties.ImageresizerJpegQualityLevel.Value, viewModel.JPEGQualityLevel); Assert.AreEqual(originalSettings.Properties.ImageresizerKeepDateModified.Value, viewModel.KeepDateModified); Assert.AreEqual(originalSettings.Properties.ImageresizerPngInterlaceOption.Value, viewModel.PngInterlaceOption); Assert.AreEqual(originalSettings.Properties.ImageresizerSizes.Value.Count, viewModel.Sizes.Count); Assert.AreEqual(originalSettings.Properties.ImageresizerTiffCompressOption.Value, viewModel.TiffCompressOption); //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, ImageResizerSettings.ModuleName, expectedCallCount); BackCompatTestProperties.VerifyGeneralSettingsIOProviderWasRead(mockGeneralIOProvider, expectedCallCount); }
public void FileName_ShouldNOTUpdateValue_WhenNameIsInValid() { // arrange ImageResizerViewModel viewModel = new ImageResizerViewModel(); string[] invalidNames = { string.Empty, " ", // no name. "%1", // single name value. "%7 (%5)", // name max index exceeded. "%8 (%8)", // name max index exceeded. "%5 (%3 )", // name contains extra spaces. "%5 (%3)", // name contains extra spaces. "%5 ( %3)", // name contains extra spaces. "% 5 ( %3)", // name contains extra spaces. "%5 (% 3)", // name contains extra spaces. "%5 ( %3 )", // name contains extra spaces. }; // act and Assert foreach (string invalidName in invalidNames) { viewModel = new ImageResizerViewModel(); viewModel.FileName = invalidName; Assert.AreNotEqual(invalidName, viewModel.FileName); ImageResizerSettings settings = SettingsUtils.GetSettings <ImageResizerSettings>(Module); Assert.AreNotEqual(invalidName, settings.Properties.ImageresizerFileName.Value); } }
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(); ImageResizerSettings imageResizer = new ImageResizerSettings(); SettingsUtils.SaveSettings(generalSettings.ToJsonString()); SettingsUtils.SaveSettings(imageResizer.ToJsonString(), imageResizer.Name); }
public void KeepDateModified_ShouldUpdateValue_WhenSuccessful() { // arrange ImageResizerViewModel viewModel = new ImageResizerViewModel(); // act viewModel.KeepDateModified = true; // Assert ImageResizerSettings settings = SettingsUtils.GetSettings <ImageResizerSettings>(Module); Assert.AreEqual(true, settings.Properties.ImageresizerKeepDateModified.Value); }
public void KeepDateModified_ShouldUpdateValue_WhenSuccessful() { // arrange Func <string, int> SendMockIPCConfigMSG = msg => { return(0); }; ImageResizerViewModel viewModel = new ImageResizerViewModel(SendMockIPCConfigMSG); // act viewModel.KeepDateModified = true; // Assert ImageResizerSettings settings = SettingsUtils.GetSettings <ImageResizerSettings>(Module); Assert.AreEqual(true, settings.Properties.ImageresizerKeepDateModified.Value); }
public ImageResizerViewModel(ISettingsUtils settingsUtils, ISettingsRepository <GeneralSettings> settingsRepository, Func <string, int> ipcMSGCallBackFunc, Func <string, string> resourceLoader) { _settingsUtils = settingsUtils ?? throw new ArgumentNullException(nameof(settingsUtils)); // To obtain the general settings configurations of PowerToys. if (settingsRepository == null) { throw new ArgumentNullException(nameof(settingsRepository)); } GeneralSettingsConfig = settingsRepository.SettingsConfig; try { Settings = _settingsUtils.GetSettings <ImageResizerSettings>(ModuleName); } catch (Exception e) { Logger.LogError($"Exception encountered while reading {ModuleName} settings.", e); #if DEBUG if (e is ArgumentException || e is ArgumentNullException || e is PathTooLongException) { throw; } #endif Settings = new ImageResizerSettings(resourceLoader); _settingsUtils.SaveSettings(Settings.ToJsonString(), ModuleName); } // set the callback functions value to hangle outgoing IPC message. SendConfigMSG = ipcMSGCallBackFunc; _isEnabled = GeneralSettingsConfig.Enabled.ImageResizer; _advancedSizes = Settings.Properties.ImageresizerSizes.Value; _jpegQualityLevel = Settings.Properties.ImageresizerJpegQualityLevel.Value; _pngInterlaceOption = Settings.Properties.ImageresizerPngInterlaceOption.Value; _tiffCompressOption = Settings.Properties.ImageresizerTiffCompressOption.Value; _fileName = Settings.Properties.ImageresizerFileName.Value; _keepDateModified = Settings.Properties.ImageresizerKeepDateModified.Value; _encoderGuidId = GetEncoderIndex(Settings.Properties.ImageresizerFallbackEncoder.Value); int i = 0; foreach (ImageSize size in _advancedSizes) { size.Id = i; i++; size.PropertyChanged += SizePropertyChanged; } }
public ImageResizerViewModel(ISettingsUtils settingsUtils, Func <string, int> ipcMSGCallBackFunc) { _settingsUtils = settingsUtils ?? throw new ArgumentNullException(nameof(settingsUtils)); try { Settings = _settingsUtils.GetSettings <ImageResizerSettings>(ModuleName); } catch { Settings = new ImageResizerSettings(); _settingsUtils.SaveSettings(Settings.ToJsonString(), ModuleName); } 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.ImageResizer; _advancedSizes = Settings.Properties.ImageresizerSizes.Value; _jpegQualityLevel = Settings.Properties.ImageresizerJpegQualityLevel.Value; _pngInterlaceOption = Settings.Properties.ImageresizerPngInterlaceOption.Value; _tiffCompressOption = Settings.Properties.ImageresizerTiffCompressOption.Value; _fileName = Settings.Properties.ImageresizerFileName.Value; _keepDateModified = Settings.Properties.ImageresizerKeepDateModified.Value; _encoderGuidId = GetEncoderIndex(Settings.Properties.ImageresizerFallbackEncoder.Value); int i = 0; foreach (ImageSize size in _advancedSizes) { size.Id = i; i++; size.PropertyChanged += Size_PropertyChanged; } }
public ImageResizerViewModel() { try { Settings = SettingsUtils.GetSettings <ImageResizerSettings>(ModuleName); } catch { Settings = new ImageResizerSettings(); SettingsUtils.SaveSettings(Settings.ToJsonString(), ModuleName); } GeneralSettings generalSettings; try { generalSettings = SettingsUtils.GetSettings <GeneralSettings>(string.Empty); } catch { generalSettings = new GeneralSettings(); SettingsUtils.SaveSettings(generalSettings.ToJsonString(), string.Empty); } this._isEnabled = generalSettings.Enabled.ImageResizer; this._advancedSizes = Settings.Properties.ImageresizerSizes.Value; this._jpegQualityLevel = Settings.Properties.ImageresizerJpegQualityLevel.Value; this._pngInterlaceOption = Settings.Properties.ImageresizerPngInterlaceOption.Value; this._tiffCompressOption = Settings.Properties.ImageresizerTiffCompressOption.Value; this._fileName = Settings.Properties.ImageresizerFileName.Value; this._keepDateModified = Settings.Properties.ImageresizerKeepDateModified.Value; this._encoderGuidId = GetEncoderIndex(Settings.Properties.ImageresizerFallbackEncoder.Value); int i = 0; foreach (ImageSize size in _advancedSizes) { size.Id = i; i++; size.PropertyChanged += Size_PropertyChanged; } }