private ApplicationSettingsViewModel BuildViewModel()
        {
            // TODO extend tests based on Edition
            var licenseChecker   = Substitute.For <ILicenseChecker>();
            var offlineActivator = Substitute.For <IOfflineActivator>();

            var printerHelper = Substitute.For <IPrinterHelper>();

            printerHelper.GetApplicablePDFCreatorPrinter(Arg.Any <string>(), Arg.Any <string>()).Returns("PDFCreator");
            var settingsHelper  = Substitute.For <ISettingsProvider>();
            var settingsManager = Substitute.For <ISettingsManager>();

            settingsManager.GetSettingsProvider().Returns(settingsHelper);
            var updateAssistant = Substitute.For <IUpdateAssistant>();
            var uacAssistant    = Substitute.For <IUacAssistant>();
            var process         = Substitute.For <IProcessStarter>();

            var generalTabViewModel = new GeneralTabViewModel(Substitute.For <ILanguageProvider>(), null, updateAssistant, uacAssistant, Substitute.For <IInteractionInvoker>(),
                                                              Substitute.For <IOsHelper>(), Substitute.For <IProcessStarter>(), new GeneralTabTranslation());
            var printerTabViewModel = new PrinterTabViewModel(printerHelper, null, null, null, printerHelper, new PrinterTabTranslation());
            var titleTabViewModel   = new TitleTabViewModel(new TitleTabTranslation(), new TranslationFactory());

            var debugTabViewModel        = new DebugTabViewModel(settingsManager, Substitute.For <ITestPageHelper>(), Substitute.For <IFile>(), Substitute.For <IProcessStarter>(), Substitute.For <IInteractionInvoker>(), printerHelper, Substitute.For <IIniSettingsAssistant>(), new DebugTabTranslation());
            var licenseTabViewModel      = new LicenseTabViewModel(process, licenseChecker, offlineActivator, null, Substitute.For <IDispatcher>(), new LicenseTabTranslation());
            var pdfArchitectTabViewModel = new PdfArchitectTabViewModel(Substitute.For <IPdfArchitectCheck>(), Substitute.For <IProcessStarter>(), new PdfArchitectTabTranslation());

            var viewModelBundle = new ApplicationSettingsViewModelBundle(generalTabViewModel, printerTabViewModel, titleTabViewModel, debugTabViewModel, licenseTabViewModel, pdfArchitectTabViewModel);

            return(new ApplicationSettingsViewModel(viewModelBundle, new TranslationHelper(new DefaultSettingsProvider(), new AssemblyHelper(), new TranslationFactory()), new LicenseOptionProvider(false), new ApplicationSettingsWindowTranslation()));
        }
        public void PrimaryPrinter_SetPrimaryPrinter_RaisesPrimaryPrinterPropertyChanged()
        {
            var printerTabViewModel = new PrinterTabViewModel(_applicationSettings, new ConversionProfile[] { },
                                                              () => new string[] { }, _translationHelper, null);
            var propertyListener = new PropertyChangedListenerMock(printerTabViewModel, "PrimaryPrinter");

            printerTabViewModel.PrimaryPrinter = "something";

            Assert.IsTrue(propertyListener.WasCalled);
        }
        public void UpdatePrimaryPrinter_GivenNameIsPrimaryPrinterInEveryPrinterMappingWrapper()
        {
            var          printerTabViewModel = new PrinterTabViewModel(_applicationSettings, new ConversionProfile[] { }, () => new string[] { }, _translationHelper, null);
            const string printerName         = "Some funny PrinterName for testing";

            printerTabViewModel.UpdatePrimaryPrinter(printerName);

            Assert.AreEqual(printerName, printerTabViewModel.PrinterMappings[0].PrimaryPrinter, "Wrong primary printer in first PrinterMapping");
            Assert.AreEqual(printerName, printerTabViewModel.PrinterMappings[1].PrimaryPrinter, "Wrong primary printer in second PrinterMapping");
        }
 public ApplicationSettingsViewModelBundle(GeneralTabViewModel generalTabViewModel,
                                           PrinterTabViewModel printerTabViewModel, TitleTabViewModel titleTabViewModel,
                                           DebugTabViewModel debugTabViewModel, LicenseTabViewModel licenseTabViewModel, PdfArchitectTabViewModel pdfArchitectTabViewModel)
 {
     GeneralTabViewModel      = generalTabViewModel;
     PrinterTabViewModel      = printerTabViewModel;
     TitleTabViewModel        = titleTabViewModel;
     DebugTabViewModel        = debugTabViewModel;
     LicenseTabViewModel      = licenseTabViewModel;
     PdfArchitectTabViewModel = pdfArchitectTabViewModel;
 }
        public void RenamePrinterCommand_WithValidPrinter_IsExecutable()
        {
            var printerTabViewModel = new PrinterTabViewModel(_applicationSettings, new List <ConversionProfile>(),
                                                              () => new[] { ExistingPrinter, "Something" }, _translationHelper, null);

            var view = CollectionViewSource.GetDefaultView(printerTabViewModel.PrinterMappings);

            view.MoveCurrentToFirst();

            Assert.IsTrue(printerTabViewModel.RenamePrinterCommand.CanExecute(null));
        }
        public void PrimaryPrinter_SetPrimaryPrinter_PrimaryPrinterIsSetInEveryPrinterMappingWrapper()
        {
            var printerTabViewModel = new PrinterTabViewModel(_applicationSettings, new ConversionProfile[] { },
                                                              () => new string[] { }, _translationHelper, null);
            var printerName = "some funny printer name (still laughing)";

            printerTabViewModel.PrimaryPrinter = printerName;

            Assert.AreEqual(printerName, printerTabViewModel.PrinterMappings[0].PrimaryPrinter, "Wrong primary printer in first PrinterMapping");
            Assert.AreEqual(printerName, printerTabViewModel.PrinterMappings[1].PrimaryPrinter, "Wrong primary printer in second PrinterMapping");
        }
        public void RenamePrinterCommand_Execute_DeletePrinterActionGetsCalled()
        {
            var printerTabViewModel = new PrinterTabViewModel(_applicationSettings, new ConversionProfile[] { },
                                                              () => new[] { ExistingPrinter, "Something" }, _translationHelper, null);
            var wasCalled = false;

            printerTabViewModel.RenamePrinterAction = (PrinterMappingWrapper printerMapping) => { wasCalled = true; };

            printerTabViewModel.RenamePrinterCommand.Execute(null);

            Assert.IsTrue(wasCalled, "RenameAction was not called.");
        }
        public void EmptyViewModel_SettingPdfCreatorPrinters_RaisesPdfCreatorPrintersPropertyChanged()
        {
            var eventStub           = MockRepository.GenerateStub <IEventHandler <PropertyChangedEventArgs> >();
            var printerTabViewModel = new PrinterTabViewModel(_applicationSettings, new ConversionProfile[] { },
                                                              () => new string[] { }, _translationHelper, null);

            printerTabViewModel.PropertyChanged += eventStub.OnEventRaised;
            var propertyListener = new PropertyChangedListenerMock(printerTabViewModel, "PdfCreatorPrinters");

            printerTabViewModel.PdfCreatorPrinters = new List <string>();

            Assert.IsTrue(propertyListener.WasCalled);
        }
        private PrinterTabViewModel BuildViewModel(IList <ConversionProfile> profiles = null)
        {
            var settings = new PdfCreatorSettings(null);

            settings.ApplicationSettings = _applicationSettings;
            settings.ConversionProfiles.Add(new ConversionProfile());

            var printerHelper = Substitute.For <IPrinterHelper>();

            printerHelper.GetApplicablePDFCreatorPrinter(Arg.Any <string>(), Arg.Any <string>()).Returns("PDFCreator");

            if (profiles != null)
            {
                settings.ConversionProfiles = profiles;
            }

            var viewModel = new PrinterTabViewModel(_printerProvider, new TranslationProxy(), _printerActionAssistant, null, null, printerHelper);

            viewModel.SetSettingsAndRaiseNotifications(settings, null);

            return(viewModel);
        }
        public void AddPrinterCommand_Execute_PrinterMappingContainsPrinterWithGivenName_DefaultProfileGuidIsAssigned()
        {
            var conversionProfiles = new[]
            {
                new ConversionProfile()
                {
                    Guid = ProfileGuids.DEFAULT_PROFILE_GUID
                }
            };

            var newPrinterName      = "New printer for testing";
            var printerTabViewModel = new PrinterTabViewModel(new ApplicationSettings(), conversionProfiles,
                                                              () => new[] { newPrinterName }, _translationHelper, null);

            printerTabViewModel.AddPrinterAction = () => newPrinterName;

            printerTabViewModel.AddPrinterCommand.Execute(null);

            Assert.AreEqual(1, printerTabViewModel.PrinterMappings.Count, "Added more or less than one printer");
            Assert.AreEqual(newPrinterName, printerTabViewModel.PrinterMappings[0].PrinterMapping.PrinterName, "Wrong printername");
            Assert.AreEqual(ProfileGuids.DEFAULT_PROFILE_GUID, printerTabViewModel.PrinterMappings[0].PrinterMapping.ProfileGuid, "Did not assign the default profile GUID.");
        }
        public void PrimaryPrinter_AppSettingsAreNull_ReturnsNull()
        {
            var printerTabViewModel = new PrinterTabViewModel(null, new ConversionProfile[] { }, () => new string[] { }, _translationHelper, null);

            Assert.IsNull(printerTabViewModel.PrimaryPrinter);
        }