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();
        }
Beispiel #2
0
        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();
        }