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);
        }
示例#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();
        }