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 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;
 }