Ejemplo n.º 1
0
        public void MoveOutputFiles_MultipleFiles_FileAppendixIncrements()
        {
            var fileStub = MockRepository.GenerateStub <IFile>();

            _th.GenerateGsJob(PSfiles.ThreePDFCreatorTestpages, OutputFormat.Png);
            var outputFileMover = new AutosaveOutputFileMover(new DirectoryWrap(), fileStub, _pathUtil);

            _th.Job.TempOutputFiles          = _multipleTempOutputFiles;
            _th.Job.Profile.AutoSave.Enabled = true;
            var filenameTemplate = _th.Job.OutputFilenameTemplate; //Save it, because it can change in MoveOutputFiles

            outputFileMover.MoveOutputFiles(_th.Job);

            fileStub.AssertWasCalled(x => x.Copy("ignore", "ignore2", true),
                                     options => options.IgnoreArguments().Repeat.Times(3)); //Three times, once for each file
            fileStub.AssertWasCalled(x => x.Delete("ignore"), options => options.IgnoreArguments().Repeat.Times(3));
            //Three times, once for each file
            Assert.AreEqual(3, _th.Job.OutputFiles.Count, "Wrong number of outputfiles.");
            var templateWithoutExtension = RemoveExtension(filenameTemplate);

            StringAssert.StartsWith(templateWithoutExtension, _th.Job.OutputFiles[0],
                                    "First outputfile is not based on template from job.");
            StringAssert.EndsWith("1.png", _th.Job.OutputFiles[0], "Failure in file appendix.");
            StringAssert.StartsWith(templateWithoutExtension, _th.Job.OutputFiles[1],
                                    "Second outputfile is not based on template from job.");
            StringAssert.EndsWith("2.png", _th.Job.OutputFiles[1], "Failure in file appendix.");
            StringAssert.StartsWith(templateWithoutExtension, _th.Job.OutputFiles[2],
                                    "Third outputfile is not based on template from job.");
            StringAssert.EndsWith("3.png", _th.Job.OutputFiles[2], "Failure in file appendix.");
        }
Ejemplo n.º 2
0
        public void MoveOutputFiles_SingleFile_FirstAttemptToCopyFailsSecondIsSuccessful_OutputfileMustHaveAppendix()
        {
            var fileStub = MockRepository.GenerateStub <IFile>();

            fileStub.Stub(x => x.Copy(Arg <string> .Is.Anything, Arg <string> .Is.Anything, Arg <bool> .Is.Anything))
            .Throw(new IOException("IoException"))
            .Repeat.Once();
            fileStub.Stub(x => x.Exists(Arg <string> .Is.Anything)).Return(true).Repeat.Once();
            //Simulate existing file in first request for unique filename
            fileStub.Stub(x => x.Exists(Arg <string> .Is.Anything)).IgnoreArguments().Return(false);
            _th.GenerateGsJob(PSfiles.PDFCreatorTestpage, OutputFormat.Pdf);
            _th.Job.Profile.AutoSave.Enabled = true;

            var outputFileMover = new AutosaveOutputFileMover(new DirectoryWrap(), fileStub, _pathUtil);

            _th.Job.TempOutputFiles = _singleTempOutputfile;
            var filenameTemplate = _th.Job.OutputFilenameTemplate; //Save it, because it can change in MoveOutputFiles

            outputFileMover.MoveOutputFiles(_th.Job);

            fileStub.AssertWasCalled(x => x.Delete("ignore"), options => options.IgnoreArguments().Repeat.Once());
            //Delete must only be called once
            var templateWithoutExtension = RemoveExtension(filenameTemplate);

            StringAssert.StartsWith(templateWithoutExtension, _th.Job.OutputFiles[0],
                                    "Outputfile is not based on template from job.");
            StringAssert.EndsWith("_2.pdf", _th.Job.OutputFiles[0], "Failure in file appendix");
        }
Ejemplo n.º 3
0
        public void MoveOutputFiles_MultipleFiles_AutoSaveWithoutEnsureUniqueFilenames_FirstFileExists_OutputfileMustNotHaveAppendix()
        {
            var fileStub = MockRepository.GenerateStub <IFile>();

            fileStub.Stub(x => x.Copy(Arg <string> .Is.Anything, Arg <string> .Is.Anything, Arg <bool> .Is.Anything))
            .Repeat.Once();
            fileStub.Stub(x => x.Exists(Arg <string> .Is.Anything)).Return(true).Repeat.Once();
            //Simulate existing file in first request for unique filename
            fileStub.Stub(x => x.Exists(Arg <string> .Is.Anything)).IgnoreArguments().Return(false);
            _th.GenerateGsJob(PSfiles.ThreePDFCreatorTestpages, OutputFormat.Pdf);
            var outputFileMover = new AutosaveOutputFileMover(new DirectoryWrap(), fileStub, _pathUtil);

            _th.Job.Profile.AutoSave.Enabled = true;
            _th.Job.Profile.AutoSave.EnsureUniqueFilenames = false;
            _th.Job.TempOutputFiles = _multipleTempOutputFiles;
            var filenameTemplate = _th.Job.OutputFilenameTemplate; //Save it, because it can change in MoveOutputFiles

            outputFileMover.MoveOutputFiles(_th.Job);

            fileStub.AssertWasCalled(x => x.Copy("ignore", "ignore2", true),
                                     options => options.IgnoreArguments().Repeat.Times(3)); //Three times, once for each file
            fileStub.AssertWasCalled(x => x.Delete("ignore"), options => options.IgnoreArguments().Repeat.Times(3));
            //Three times, once for each file
            var templateWithoutExtension = RemoveExtension(filenameTemplate);

            StringAssert.StartsWith(templateWithoutExtension, _th.Job.OutputFiles[0],
                                    "First outputfile is not based on template from job.");
            StringAssert.EndsWith("1.png", _th.Job.OutputFiles[0], "Failure in file appendix.");
            StringAssert.StartsWith(templateWithoutExtension, _th.Job.OutputFiles[1],
                                    "Second outputfile is not based on template from job.");
            StringAssert.EndsWith("2.png", _th.Job.OutputFiles[1], "Failure in file appendix.");
            StringAssert.StartsWith(templateWithoutExtension, _th.Job.OutputFiles[2],
                                    "Third outputfile is not based on template from job.");
            StringAssert.EndsWith("3.png", _th.Job.OutputFiles[2], "Failure in file appendix.");
        }
 public ConversionWorkflowTestFactory(IProfileChecker profileChecker, ITargetFileNameComposer targetFileNameComposer, IJobRunner jobRunner, IJobDataUpdater jobDataUpdater, AutosaveOutputFileMover outputFileMover)
 {
     _profileChecker         = profileChecker;
     _targetFileNameComposer = targetFileNameComposer;
     _jobRunner       = jobRunner;
     _jobDataUpdater  = jobDataUpdater;
     _outputFileMover = outputFileMover;
 }
Ejemplo n.º 5
0
 public AutoSaveWorkflow(IJobDataUpdater jobDataUpdater, IJobRunner jobRunner, IProfileChecker profileChecker, ITargetFileNameComposer targetFileNameComposer, AutosaveOutputFileMover outputFileMover)
 {
     JobDataUpdater          = jobDataUpdater;
     _jobRunner              = jobRunner;
     _profileChecker         = profileChecker;
     _targetFileNameComposer = targetFileNameComposer;
     _outputFileMover        = outputFileMover;
 }
Ejemplo n.º 6
0
        public void RunGsJob()
        {
            SetUpGhostscript();
            InitMissingData();

            var outputFileMover = new AutosaveOutputFileMover(new DirectoryWrap(), new FileWrap(), new PathUtil(new PathWrap(), new DirectoryWrap()), new DirectoryHelper(new DirectoryWrap()));

            _jobRunner.RunJob(Job, outputFileMover);
        }
Ejemplo n.º 7
0
 public AutoSaveWorkflow(IJobDataUpdater jobDataUpdater, IJobRunner jobRunner, IProfileChecker profileChecker,
                         ITargetFileNameComposer targetFileNameComposer, AutosaveOutputFileMover outputFileMover, INotificationService notificationService)
 {
     JobDataUpdater          = jobDataUpdater;
     _jobRunner              = jobRunner;
     _profileChecker         = profileChecker;
     _targetFileNameComposer = targetFileNameComposer;
     _outputFileMover        = outputFileMover;
     _notificationService    = notificationService;
 }
Ejemplo n.º 8
0
        public void MoveOutputFiles_MultipleFilesWithTwoDigits_OutputfileAppendixMustHaveTwoDigits()
        {
            var fileStub = MockRepository.GenerateStub <IFile>();

            _th.GenerateGsJob(PSfiles.ThreePDFCreatorTestpages, OutputFormat.Pdf);
            var outputFileMover = new AutosaveOutputFileMover(new DirectoryWrap(), fileStub, _pathUtil);

            _th.Job.Profile.AutoSave.Enabled = true;
            _th.Job.TempOutputFiles          = _multipleTempOutputFilesWithTwoDigits;
            var filenameTemplate = _th.Job.OutputFilenameTemplate; //Save it, because it can change in MoveOutputFiles

            outputFileMover.MoveOutputFiles(_th.Job);

            fileStub.AssertWasCalled(x => x.Copy("ignore", "ignore2", true),
                                     options => options.IgnoreArguments().Repeat.Times(10)); //Ten times, once for each file
            fileStub.AssertWasCalled(x => x.Delete("ignore"), options => options.IgnoreArguments().Repeat.Times(10));
            //Ten times, once for each file
            Assert.AreEqual(10, _th.Job.OutputFiles.Count, "Wrong number of outputfiles.");
            var templateWithoutExtension = RemoveExtension(filenameTemplate);

            StringAssert.StartsWith(templateWithoutExtension, _th.Job.OutputFiles[0],
                                    "First outputfile is not based on template from job.");
            StringAssert.EndsWith("01.png", _th.Job.OutputFiles[0], "Failure in file appendix.");
            StringAssert.StartsWith(templateWithoutExtension, _th.Job.OutputFiles[1],
                                    "Second outputfile is not based on template from job.");
            StringAssert.EndsWith("02.png", _th.Job.OutputFiles[1], "Failure in file appendix.");
            StringAssert.StartsWith(templateWithoutExtension, _th.Job.OutputFiles[2],
                                    "Third outputfile is not based on template from job.");
            StringAssert.EndsWith("03.png", _th.Job.OutputFiles[2], "Failure in file appendix.");
            StringAssert.StartsWith(templateWithoutExtension, _th.Job.OutputFiles[0],
                                    "Fouth outputfile is not based on template from job.");
            StringAssert.EndsWith("04.png", _th.Job.OutputFiles[3], "Failure in file appendix.");
            StringAssert.StartsWith(templateWithoutExtension, _th.Job.OutputFiles[1],
                                    "Fifth outputfile is not based on template from job.");
            StringAssert.EndsWith("05.png", _th.Job.OutputFiles[4], "Failure in file appendix.");
            StringAssert.StartsWith(templateWithoutExtension, _th.Job.OutputFiles[2],
                                    "Sixth outputfile is not based on template from job.");
            StringAssert.EndsWith("06.png", _th.Job.OutputFiles[5], "Failure in file appendix.");
            StringAssert.StartsWith(templateWithoutExtension, _th.Job.OutputFiles[0],
                                    "Seventh outputfile is not based on template from job.");
            StringAssert.EndsWith("07.png", _th.Job.OutputFiles[6], "Failure in file appendix.");
            StringAssert.StartsWith(templateWithoutExtension, _th.Job.OutputFiles[1],
                                    "Eighth outputfile is not based on template from job.");
            StringAssert.EndsWith("08.png", _th.Job.OutputFiles[7], "Failure in file appendix.");
            StringAssert.StartsWith(templateWithoutExtension, _th.Job.OutputFiles[2],
                                    "Nineth outputfile is not based on template from job.");
            StringAssert.EndsWith("09.png", _th.Job.OutputFiles[8], "Failure in file appendix.");
            StringAssert.StartsWith(templateWithoutExtension, _th.Job.OutputFiles[2],
                                    "Tenth outputfile is not based on template from job.");
            StringAssert.EndsWith("10.png", _th.Job.OutputFiles[9], "Failure in file appendix.");
        }
        public void Test_CollectOutputFiles()
        {
            var fileStub      = MockRepository.GenerateStub <IFile>();
            var directoryStub = MockRepository.GenerateStub <IDirectory>();

            //the only directory.GetFiles call will be in "CollectTemporaryOutputFiles, so the argument can be ignored
            directoryStub.Stub(x => x.GetFiles("")).Return(_singleTempOutputfile).IgnoreArguments();
            _th.GenerateGsJob(PSfiles.PDFCreatorTestpage, OutputFormat.Pdf);
            _th.Job.Profile.AutoSave.Enabled = true;
            var outputFileMover = new AutosaveOutputFileMover(new DirectoryWrap(), fileStub, _pathUtil);

            //_th.Job.CollectTemporaryOutputFiles();

            Assert.AreEqual(_singleTempOutputfile, _th.Job.TempOutputFiles, "Wrong outputfiles.");
        }
Ejemplo n.º 10
0
        public void Setup()
        {
            var jobInfo = new JobInfo();

            _job = new Job(jobInfo, new ConversionProfile(), new JobTranslations(), new Accounts());
            _job.OutputFilenameTemplate = @"X:\temp\test.pdf";

            _singleTempOutputfile = new[] { @"output1.pdf" };

            _file = Substitute.For <IFile>();
            _file.Exists(Arg.Any <string>()).Returns(true);
            _directoryHelper = Substitute.For <IDirectoryHelper>();

            var path = Substitute.For <IPath>();

            _pathUtil = new PathUtil(path, Substitute.For <IDirectory>());

            _autosaveOutputFileMover = new AutosaveOutputFileMover(Substitute.For <IDirectory>(), _file, _pathUtil, _directoryHelper);
        }
Ejemplo n.º 11
0
        public void MoveOutputFiles_SingleFile_TwoAttemptsToCopyFail_ThrowsProcessingException()
        {
            var fileStub = MockRepository.GenerateStub <IFile>();

            fileStub.Stub(x => x.Copy("ignore", "ignore2", true)).IgnoreArguments().Throw(new IOException(""));
            //Deny all attempts to copy
            _th.GenerateGsJob(PSfiles.ThreePDFCreatorTestpages, OutputFormat.Pdf);
            var outputFileMover = new AutosaveOutputFileMover(new DirectoryWrap(), fileStub, _pathUtil);

            _th.Job.TempOutputFiles          = _singleTempOutputfile;
            _th.Job.Profile.AutoSave.Enabled = true;

            var ex = Assert.Throws <ProcessingException>(() => outputFileMover.MoveOutputFiles(_th.Job));

            Assert.AreEqual(ErrorCode.Conversion_ErrorWhileCopyingOutputFile, ex.ErrorCode);

            fileStub.AssertWasCalled(x => x.Copy("", "", true), options => options.IgnoreArguments().Repeat.Twice());
            //DeviceException should be thrown after second denied copy call
            fileStub.AssertWasNotCalled(x => x.Delete("ignore"), options => options.IgnoreArguments());
            //Delete never gets called
        }
Ejemplo n.º 12
0
        public void MoveOutputFiles_SingleFile_AutoSaveWithoutEnsureUniqueFilenames_FileExists_OutputfileMustNotHaveAppendix()
        {
            var fileStub = MockRepository.GenerateStub <IFile>();

            fileStub.Stub(x => x.Exists(Arg <string> .Is.Anything)).Return(true).Repeat.Once();
            //Simulate existing file in first request for unique filename
            fileStub.Stub(x => x.Exists(Arg <string> .Is.Anything)).IgnoreArguments().Return(false);
            _th.GenerateGsJob(PSfiles.PDFCreatorTestpage, OutputFormat.Pdf);
            var outputFileMover = new AutosaveOutputFileMover(new DirectoryWrap(), fileStub, _pathUtil);

            _th.Job.Profile.AutoSave.Enabled = true;
            _th.Job.Profile.AutoSave.EnsureUniqueFilenames = false;
            _th.Job.TempOutputFiles = _singleTempOutputfile;
            var filenameTemplate = _th.Job.OutputFilenameTemplate; //Save it, because it can change in MoveOutputFiles

            outputFileMover.MoveOutputFiles(_th.Job);

            fileStub.AssertWasCalled(x => x.Copy("ignore", "ignore", false),
                                     options => options.IgnoreArguments().Repeat.Once()); //Copy must only be called once
            fileStub.AssertWasCalled(x => x.Delete("ignore"), options => options.IgnoreArguments().Repeat.Once());
            //Delete must only be called once
            StringAssert.AreEqualIgnoringCase(filenameTemplate, _th.Job.OutputFiles[0],
                                              "Outputfile is not the template in job.");
        }