public void TestSerialization() { SettingsStore store = SettingsStore.Default; SettingsStore.Default = new SettingsStore(); ExportInfo info = new ExportInfo(); info.FileRenameValues.Clear(); FileRenameValueProperty prop = (FileRenameValueProperty)FileRenameManager.Default.GetFileRenameValue("Caption"); FileRenameValueCustom custom = (FileRenameValueCustom)FileRenameManager.Default.GetFileRenameValue("CustomText"); FileRenameValueIndex index = (FileRenameValueIndex)FileRenameManager.Default.GetFileRenameValue("Index"); FileRenameValueCount count = (FileRenameValueCount)FileRenameManager.Default.GetFileRenameValue("Count"); index.StartIndex = 99; FileRenameValueReference propRef = prop.CreateReference(); FileRenameValueReferenceString propCustom = (FileRenameValueReferenceString)custom.CreateReference(); FileRenameValueReference propIndex = index.CreateReference(); FileRenameValueReference propCount = count.CreateReference(); Assert.AreEqual("Caption", propRef.FileRenameValueName); Assert.AreEqual("CustomText", propCustom.FileRenameValueName); Assert.AreEqual("Index", propIndex.FileRenameValueName); Assert.AreEqual("Count", propCount.FileRenameValueName); propCustom.Text = "My Custom String"; info.FileRenameValues.Add(propRef); info.FileRenameValues.Add(propCustom); info.FileRenameValues.Add(propIndex); info.FileRenameValues.Add(propCount); SettingsStore.Default.ExportPresets.Add(info); SettingsStore.Default.SaveToXml(); SettingsStore.Default.ExportPresets.Clear(); SettingsStore.Default.RestoreFromXml(); Assert.AreEqual(1, SettingsStore.Default.ExportPresets.Count); ExportInfo info2 = SettingsStore.Default.ExportPresets[0]; Assert.AreEqual(info.FileRenameValues.Count, info2.FileRenameValues.Count); for (int i = 0; i < info.FileRenameValues.Count; i++) { Assert.AreEqual(info.FileRenameValues[i].GetType(), info2.FileRenameValues[i].GetType()); Assert.AreEqual(info.FileRenameValues[i].FileRenameValue.GetType(), info2.FileRenameValues[i].FileRenameValue.GetType()); } SettingsStore.Default = store; }
public void TestSerialization() { SettingsStore store = SettingsStore.Default; SettingsStore.Default = new SettingsStore(); ExportInfo info = new ExportInfo(); info.AfterExportEvent = AfterExportEvent.OpenInApplication; ApplicationInfo appInfo = new ApplicationInfo(); appInfo.CommandLine = "admin"; appInfo.Id = Guid.NewGuid(); appInfo.Name = "MyApplication"; appInfo.Path = "c:\\MyApplication.exe"; info.ApplicationIdString = appInfo.IdString; info.CreateSubFolder = true; info.DontEnlarge = true; info.Dpi = 300; info.ExistingFileMode = ExistingFileMode.OverrideWithoutPrompt; FileRenameValueProperty prop = (FileRenameValueProperty)FileRenameManager.Default.GetFileRenameValue("Caption"); FileRenameValueCustom custom = (FileRenameValueCustom)FileRenameManager.Default.GetFileRenameValue("CustomText"); FileRenameValueIndex index = (FileRenameValueIndex)FileRenameManager.Default.GetFileRenameValue("Index"); FileRenameValueCount count = (FileRenameValueCount)FileRenameManager.Default.GetFileRenameValue("Count"); index.StartIndex = 99; FileRenameValueReference propRef = prop.CreateReference(); FileRenameValueReferenceString propCustom = (FileRenameValueReferenceString)custom.CreateReference(); FileRenameValueReference propIndex = index.CreateReference(); FileRenameValueReference propCount = count.CreateReference(); Assert.AreEqual("Caption", propRef.FileRenameValueName); Assert.AreEqual("CustomText", propCustom.FileRenameValueName); Assert.AreEqual("Index", propIndex.FileRenameValueName); Assert.AreEqual("Count", propCount.FileRenameValueName); propCustom.Text = "My Custom String"; info.FileRenameValues.Add(propRef); info.FileRenameValues.Add(propCustom); info.FileRenameValues.Add(propIndex); info.FileRenameValues.Add(propCount); info.Folder = "c:\\MyFolder\\"; info.Height = 1200; info.LongSide = 1300; info.Name = "MyExportInfo"; info.RenameFiles = true; info.RenameMask = "[Index] - [Caption].[Extension]"; info.ResizeImages = true; info.ResizeMode = FileResizeMode.ZoomInside; info.ResolutionMode = ResolutionMode.PixelsPerCm; info.ImageDimension = ImageDimensionMode.Inches; info.ShortSide = 1400; info.ShowWatermark = true; info.SubFolder = "SubFolder"; info.Watermark.FontColor = System.Windows.Media.Colors.Red; info.Watermark.FontFamily = new System.Windows.Media.FontFamily("Arial"); info.Watermark.FontFamilyName = "Arial"; info.Watermark.FontSize = 13; info.Watermark.FontStyle = System.Windows.FontStyles.Italic; info.Watermark.FontStyleName = "Italic"; info.Watermark.FontWeight = System.Windows.FontWeights.Bold; info.Watermark.FontWeightName = "Bold"; info.Watermark.ImageToTextAlignment = WatermarkImageToTextAlign.Right; info.Watermark.ImageUri = "c:\\Images\\image.png"; info.Watermark.Layout = WatermarkLayout.FillPhoto; info.Watermark.Opacity = 0.25; info.Watermark.RotateAngle = 75; info.Watermark.ShowWatermark = true; info.Watermark.Text = "Hello World"; info.Watermark.WatermarkIndent = 5; info.Width = 1100; info.ImageFormat = ExportImageFormat.PNG; info.CompressionLevel = 95; info.IsLimitFileSize = true; info.LimitFileSize = 222; info.PngBitsPerChannel = 16; info.Application.Name = "AppName"; info.Application.Path = "AppPath"; info.Application.CommandLine = "AppLine"; info.ApplicationIdString = Guid.NewGuid().ToString(); SettingsStore.Default.ExportPresets.Add(info); SettingsStore.Default.SaveToXml(); SettingsStore.Default.ExportPresets.Clear(); SettingsStore.Default.RestoreFromXml(); ExportInfo info2 = SettingsStore.Default.ExportPresets[0]; Assert.AreEqual(info2.AfterExportEvent, info.AfterExportEvent); Assert.AreEqual(info2.ApplicationIdString, info.ApplicationIdString); Assert.AreEqual(info2.CreateSubFolder, info.CreateSubFolder); Assert.AreEqual(info2.DontEnlarge, info.DontEnlarge); Assert.AreEqual(info2.Dpi, info.Dpi); Assert.AreEqual(info2.ExistingFileMode, info.ExistingFileMode); for (int i = 0; i < info.FileRenameValues.Count; i++) { Assert.AreEqual(info.FileRenameValues[i].GetType(), info2.FileRenameValues[i].GetType()); Assert.AreEqual(info.FileRenameValues[i].FileRenameValue.GetType(), info2.FileRenameValues[i].FileRenameValue.GetType()); } Assert.AreEqual(info2.Folder, info.Folder); Assert.AreEqual(info2.Height, info.Height); Assert.AreEqual(info2.LongSide, info.LongSide); Assert.AreEqual(info2.Name, info.Name); Assert.AreEqual(info2.RenameFiles, info.RenameFiles); Assert.AreEqual(info2.RenameMask, info.RenameMask); Assert.AreEqual(info2.ResizeImages, info.ResizeImages); Assert.AreEqual(info2.ResizeMode, info.ResizeMode); Assert.AreEqual(info2.ResolutionMode, info.ResolutionMode); Assert.AreEqual(info2.ImageDimension, info.ImageDimension); Assert.AreEqual(info2.ShortSide, info.ShortSide); Assert.AreEqual(info2.ShowWatermark, info.ShowWatermark); Assert.AreEqual(info2.SubFolder, info.SubFolder); Assert.AreEqual(info2.Watermark.FontColor, info.Watermark.FontColor); Assert.AreEqual(info2.Watermark.FontFamily, info.Watermark.FontFamily); Assert.AreEqual(info2.Watermark.FontSize, info.Watermark.FontSize); Assert.AreEqual(info2.Watermark.FontStyle, info.Watermark.FontStyle); Assert.AreEqual(info2.Watermark.FontWeight, info.Watermark.FontWeight); Assert.AreEqual(info2.Watermark.ImageToTextAlignment, info.Watermark.ImageToTextAlignment); Assert.AreEqual(info2.Watermark.ImageUri, info.Watermark.ImageUri); Assert.AreEqual(info2.Watermark.Layout, info.Watermark.Layout); Assert.AreEqual(info2.Watermark.Opacity, info.Watermark.Opacity); Assert.AreEqual(info2.Watermark.RotateAngle, info.Watermark.RotateAngle); Assert.AreEqual(info2.Watermark.ShowWatermark, info.Watermark.ShowWatermark); Assert.AreEqual(info2.Watermark.Text, info.Watermark.Text); Assert.AreEqual(info2.Width, info.Width); Assert.AreEqual(info2.Watermark.WatermarkIndent, info.Watermark.WatermarkIndent); Assert.AreEqual(info2.ImageFormat, info.ImageFormat); Assert.AreEqual(info2.CompressionLevel, info.CompressionLevel); Assert.AreEqual(info2.IsLimitFileSize, info.IsLimitFileSize); Assert.AreEqual(info2.LimitFileSize, info.LimitFileSize); Assert.AreEqual(info2.PngBitsPerChannel, info.PngBitsPerChannel); Assert.AreEqual(info2.ApplicationIdString, info.ApplicationIdString); Assert.AreEqual(info2.Application.Name, info.Application.Name); Assert.AreEqual(info2.Application.Path, info.Application.Path); Assert.AreEqual(info2.Application.CommandLine, info.Application.CommandLine); }