Example #1
0
        public void PrinterMapping_WithInvalidPrinter_SelectsDefaultProfile()
        {
            _settings.ApplicationSettings.PrinterMappings.Add(new PrinterMapping("InvalidPrinter", "Profile1"));

            ConversionWorkflow workflow = WorkflowFactory.CreateWorkflow(_testHelper.JobInfo, _settings);

            Assert.AreEqual(_settings.ConversionProfiles[0], workflow.Job.Profile, "Default profile should have been mapped");
        }
Example #2
0
        public void PrinterMapping_WithProfileMappingWithOtherCasing_PreselectsProfile()
        {
            _settings.ApplicationSettings.PrinterMappings.Add(new PrinterMapping("pdfcreator", "Profile1"));

            ConversionWorkflow workflow = WorkflowFactory.CreateWorkflow(_testHelper.JobInfo, _settings);

            Assert.AreEqual(_settings.ConversionProfiles[1], workflow.Job.Profile, "Profile1 should have been mapped");
        }
Example #3
0
        public void CreateConversionWorkflowTest_NoMapping_TwoProfiles_NoneIsDefault_NoneIsLastUsedProfile_ReturnWorkflowWithFirstProfile()
        {
            _settings.ApplicationSettings.LastUsedProfileGuid = "NoneOfTheProfileGuids";

            _settings.ConversionProfiles.Add(_autosaveProfile);
            _settings.ConversionProfiles.Add(_interactiveProfile);
            _workflow = WorkflowFactory.CreateWorkflow(_th.JobInfo, _settings);
            Assert.AreEqual(_autosaveProfile, _workflow.Job.Profile, "Wrong Profile in Job of workflow.");
        }
Example #4
0
        public void CreateConversionWorkflowTest_PrinterMappingToProfile_ReturnWorkflowWithMappedProfile()
        {
            _settings.ApplicationSettings.PrinterMappings.Add(_autosaveProfileMapping);
            _settings.ApplicationSettings.PrinterMappings.Add(_interactiveProfileMapping);
            _settings.ConversionProfiles.Add(_autosaveProfile);
            _settings.ConversionProfiles.Add(_interactiveProfile);

            _th.JobInfo.SourceFiles[0].PrinterName = _autosaveProfileMapping.PrinterName;
            _workflow = WorkflowFactory.CreateWorkflow(_th.JobInfo, _settings);
            Assert.AreEqual(_autosaveProfile, _workflow.Job.Profile, "Wrong Profile in Job of workflow.");
        }
Example #5
0
        public void CreateConversionWorkflowTest_PrinterIsNotListedInMapping_ReturnWorkflowWithDefaultProfile()
        {
            _settings.ApplicationSettings.PrinterMappings.Add(_autosaveProfileMapping);
            _settings.ApplicationSettings.PrinterMappings.Add(_interactiveProfileMapping);
            _settings.ConversionProfiles.Add(_autosaveProfile); //For this test the default profile must not be the first in list!
            _interactiveProfile.Guid = "DefaultGuid";
            _settings.ConversionProfiles.Add(_interactiveProfile);

            _th.JobInfo.SourceFiles[0].PrinterName = "PrinterNameNotInMapping";

            _workflow = WorkflowFactory.CreateWorkflow(_th.JobInfo, _settings);
            Assert.AreEqual(_interactiveProfile, _workflow.Job.Profile, "Wrong Profile in Job of workflow.");
        }
Example #6
0
        public void SetUp()
        {
            _jobInfo          = new JobInfo();
            _jobInfo.Metadata = new Metadata();
            _job            = new Job(_jobInfo, _profile, new JobTranslations(), new Accounts());
            _profileChecker = Substitute.For <IProfileChecker>();
            _profileChecker.ProfileCheck(Arg.Any <ConversionProfile>(), Arg.Any <Accounts>()).Returns(_validActionResult);

            _query          = Substitute.For <ITargetFileNameComposer>();
            _jobRunner      = Substitute.For <IJobRunner>();
            _jobDataUpdater = Substitute.For <IJobDataUpdater>();
            _errorNotifier  = Substitute.For <IErrorNotifier>();
            _workflow       = new ConversionWorkflow(_profileChecker, _query, _jobRunner, _jobDataUpdater, _errorNotifier);
        }
Example #7
0
        /// <summary>
        /// Does the actual conversion process of the job
        /// </summary>
        private void DoConversion()
        {
            DisableIrrelevantProfileSettings();
            _job.JobInfo.Metadata = _metadata;

            try
            {
                if (JobInfo.SourceFiles.Count != 0)
                {
                    Logger.Trace("COM: Creating workflow");

                    _workflow = new ComWorkflow(_job, SettingsHelper.Settings);

                    Logger.Trace("COM: Running workflow");
                    _workflow.RunWorkflow();

                    if (_workflow.WorkflowStep != WorkflowStep.Finished)
                    {
                        IsFinished = true;
                        if (_workflow.WorkflowStep == WorkflowStep.AbortedByUser)
                        {
                            Logger.Info("COM: The job '{0}' was aborted by the user.",
                                        _workflow.Job.JobInfo.Metadata.Title, _workflow.WorkflowStep);
                        }
                        else
                        {
                            Logger.Error("COM: The job '{0}' terminated at step {1} and did not end successfully.",
                                         _workflow.Job.JobInfo.Metadata.Title, _workflow.WorkflowStep);
                        }
                    }
                    else
                    {
                        IsFinished   = true;
                        IsSuccessful = true;
                    }
                }
                else
                {
                    IsFinished = true;
                    Logger.Info("COM: JobInfo has no source files and will be skipped");
                }
            }
            catch (Exception e)
            {
                IsFinished = true;
                throw new COMException(e.Message);
            }
        }
Example #8
0
        public void CreateConversionWorkflowTest_PrinterMappingToInvalidProfile_ReturnWorkflowWithDefaultProfile()
        {
            _settings.ApplicationSettings.PrinterMappings.Add(_autosaveProfileMapping);
            _settings.ApplicationSettings.PrinterMappings.Add(_interactiveProfileMapping);
            const string somePrinterName    = "somePrinterName";
            const string someProfileGuid    = "someProfileNotInProfilesListGuid";
            var          somePrinterMapping = new PrinterMapping(somePrinterName, someProfileGuid);

            _settings.ApplicationSettings.PrinterMappings.Add(somePrinterMapping);
            _settings.ConversionProfiles.Add(_autosaveProfile); //For this test the default profile must not be the first in list!
            _interactiveProfile.Guid = "DefaultGuid";
            _settings.ConversionProfiles.Add(_interactiveProfile);

            _th.JobInfo.SourceFiles[0].PrinterName = somePrinterName;

            _workflow = WorkflowFactory.CreateWorkflow(_th.JobInfo, _settings);
            Assert.AreEqual(_interactiveProfile, _workflow.Job.Profile, "Wrong Profile in Job of workflow.");
        }
Example #9
0
        public void SetUp()
        {
            _jobInfo = new JobInfo
            {
                Metadata = new Metadata
                {
                    Title = "Test"
                }
            };
            _profile = new ConversionProfile();
            _job     = new Job(_jobInfo, _profile, new JobTranslations(), new Accounts());
            _job.OutputFiles.Add("X:\\test.pdf");
            _profileChecker = Substitute.For <IProfileChecker>();
            _profileChecker.CheckJob(Arg.Any <Job>()).Returns(_validActionResult);

            _query               = Substitute.For <ITargetFileNameComposer>();
            _jobRunner           = Substitute.For <IJobRunner>();
            _jobDataUpdater      = Substitute.For <IJobDataUpdater>();
            _notificationService = Substitute.For <INotificationService>();

            _workflow = new AutoSaveWorkflow(_jobDataUpdater, _jobRunner, _profileChecker, _query, null, _notificationService);
        }
Example #10
0
        /// <summary>
        /// Process a single job
        /// </summary>
        /// <param name="jobInfo">The jobinfo to process</param>
        /// <returns>True if the job was processed. If the user decided to manage the print jobs instead, this returns false</returns>
        private void ProcessJob(IJobInfo jobInfo)
        {
            _logger.Trace("Creating job workflow");
            ConversionWorkflow cw = WorkflowFactory.CreateWorkflow(jobInfo, SettingsHelper.Settings);

            _logger.Trace("Running workflow");
            cw.RunWorkflow();

            if (cw.WorkflowStep != WorkflowStep.Finished)
            {
                if (cw.WorkflowStep == WorkflowStep.AbortedByUser)
                {
                    _logger.Info("The job '{0}' was aborted by the user.",
                                 cw.Job.JobInfo.Metadata.Title, cw.WorkflowStep);
                }
                else
                {
                    _logger.Error("The job '{0}' terminated at step {1} and did not end successfully.",
                                  cw.Job.JobInfo.Metadata.Title, cw.WorkflowStep);
                }
            }
        }
Example #11
0
 public void CreateConversionWorkflowTest_SingleProfileInteractive_ReturnInteractiveWorkflow()
 {
     _settings.ConversionProfiles.Add(_interactiveProfile);
     _workflow = WorkflowFactory.CreateWorkflow(_th.JobInfo, _settings);
     Assert.IsInstanceOf <InteractiveWorkflow>(_workflow, "Wrong type of workflow.");
 }