public void Setup() { _invoker = Substitute.For <IInteractionInvoker>(); _settingsHelper = Substitute.For <ISettingsProvider>(); // add printers to settings, so there are missing printers var pdfCreatorSettings = new PdfCreatorSettings(); pdfCreatorSettings.ApplicationSettings.PrinterMappings.Add(new PrinterMapping("Printer1", "1234")); pdfCreatorSettings.ApplicationSettings.PrinterMappings.Add(new PrinterMapping("Printer2", "1234")); _settingsHelper.Settings.Returns(pdfCreatorSettings); _settingsManager = Substitute.For <ISettingsManager>(); _settingsManager.GetSettingsProvider().Returns(_settingsHelper); _dataStorageFactory = Substitute.For <IDataStorageFactory>(); _storage = Substitute.For <IStorage>(); _dataStorageFactory.BuildIniStorage(Arg.Any <string>()).Returns(_storage); _printerProvider = Substitute.For <IPrinterProvider>(); _printerProvider.GetPDFCreatorPrinters().Returns(new List <string>() { "Printer1", "Printer3" }); // return printers for unused printer check _uacAssistant = Substitute.For <IUacAssistant>(); _iniSettingsLoader = Substitute.For <IIniSettingsLoader>(); _iniSettingsLoader.LoadIniSettings(Arg.Any <string>()).Returns(pdfCreatorSettings); _creatorIniSettingsAssistant = new CreatorIniSettingsAssistant(_invoker, new TranslationUpdater(new TranslationFactory(), new ThreadManager()), _settingsManager, _dataStorageFactory, _iniSettingsLoader, _printerProvider, _uacAssistant); }
public void SaveAndLoad_ResultsInExactlyEqualSettings() { var tempFolder = TempFileHelper.CreateTempFolder("IniSettingsTest"); var fileName = Path.Combine(tempFolder, "savedSettings.ini"); var settings = CreateSettings(); settings.ApplicationSettings.JobHistory.LastDateFrom = DateTime.Today.AddDays(-1); settings.ApplicationSettings.JobHistory.LastDateTo = DateTime.Today; settings.ApplicationSettings.RssFeed.LatestRssUpdate = DateTime.Today; var invoker = BuildInvoker(fileName); var uacAssistant = Substitute.For <IUacAssistant>(); var settingsHelper = Substitute.For <ISettingsProvider>(); settingsHelper.Settings.Returns(settings); settingsHelper.CheckValidSettings(Arg.Any <PdfCreatorSettings>()).Returns(delegate(CallInfo x) { return(x.Arg <PdfCreatorSettings>().ConversionProfiles.Count > 0); }); PdfCreatorSettings loadedSettings = null; var settingsMananger = Substitute.For <ISettingsManager>(); settingsMananger.GetSettingsProvider().Returns(settingsHelper); settingsMananger.When(x => x.ApplyAndSaveSettings(Arg.Any <PdfCreatorSettings>())).Do(x => loadedSettings = x.Arg <PdfCreatorSettings>()); var defaultSettingsBuilder = Substitute.For <IDefaultSettingsBuilder>(); var pdfCreatorSettings = new PdfCreatorSettings(); // pdfCreatorSettings.ConversionProfiles.Add(new ConversionProfile()); defaultSettingsBuilder.CreateEmptySettings().Returns(pdfCreatorSettings); //var migrationStorageFactory = Substitute.For<IMigrationStorageFactory>(); var migrationStorageFactory = new MigrationStorageFactory((baseStorage, targetVersion) => new CreatorSettingsMigrationStorage(baseStorage, targetVersion)); //migrationStorageFactory.GetMigrationStorage(Arg.Any<IStorage>(), Arg.Any<int>()).Returns(new IniStorage("")); var iniSettingsLoader = new IniSettingsLoader(new DataStorageFactory(), defaultSettingsBuilder, migrationStorageFactory); var iniSettingsAssistant = new CreatorIniSettingsAssistant(invoker, new DesignTimeTranslationUpdater(), settingsMananger, new DataStorageFactory(), iniSettingsLoader, _printerProvider, _uacAssistant); iniSettingsAssistant.SaveIniSettings(); iniSettingsAssistant.LoadIniSettings(); var titles = settings.ApplicationSettings.TitleReplacement; var loadedTitles = loadedSettings.ApplicationSettings.TitleReplacement; for (var i = 0; i < titles.Count; i++) { Assert.AreEqual(titles[i], loadedTitles[i]); } Assert.AreEqual(settings.ApplicationSettings.TitleReplacement, loadedSettings.ApplicationSettings.TitleReplacement); Assert.AreEqual(settings.ApplicationSettings, loadedSettings.ApplicationSettings); Assert.AreEqual(settings.ConversionProfiles, loadedSettings.ConversionProfiles); Assert.AreEqual(settings.ToString(), loadedSettings.ToString()); TempFileHelper.CleanUp(); }