public void Setup() { _invoker = Substitute.For <IInteractionInvoker>(); _settingsHelper = Substitute.For <ISettingsProvider>(); _settingsHelper.Settings.Returns(new PdfCreatorSettings(Substitute.For <IStorage>())); _settingsManager = Substitute.For <ISettingsManager>(); _settingsManager.GetSettingsProvider().Returns(_settingsHelper); _dataStorageFactory = Substitute.For <IDataStorageFactory>(); _storage = Substitute.For <IStorage>(); _dataStorageFactory.BuildIniStorage().Returns(_storage); _iniSettingsLoader = Substitute.For <IIniSettingsLoader>(); _iniSettingsAssistant = new IniSettingsAssistant(_invoker, new TranslationUpdater(new TranslationFactory(), new ThreadManager()), _settingsManager, _dataStorageFactory, _iniSettingsLoader); }
public void SaveAndLoad_ResultsInExactlyEqualSettings() { var tempFolder = TempFileHelper.CreateTempFolder("IniSettingsTest"); var fileName = Path.Combine(tempFolder, "savedSettings.ini"); var settings = CreateSettings(); var invoker = BuildInvoker(fileName); var settingsHelper = Substitute.For <ISettingsProvider>(); settingsHelper.Settings.Returns(settings); settingsHelper.CheckValidSettings(Arg.Any <PdfCreatorSettings>()).Returns(x => 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 iniSettingsLoader = new IniSettingsLoader(settingsMananger, new DataStorageFactory()); var iniSettingsAssistant = new IniSettingsAssistant(invoker, new TranslationProxy(), settingsMananger, new DataStorageFactory(), iniSettingsLoader); iniSettingsAssistant.SaveIniSettings(settings.ApplicationSettings); 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(); }