public void AddFileToQueue(string path) { PathCheck(path); var fileExtension = _pathSafe.GetExtension(path) ?? string.Empty; var legalFileTypes = new List <string> { ".ps", ".pdf" }; fileExtension = fileExtension.ToLowerInvariant(); if (!legalFileTypes.Contains(fileExtension)) { throw new COMException("Only .ps and .pdf files can be directly added to the queue."); } var spoolFolder = _spoolerProvider.SpoolFolder; if (!_spoolFolderAccess.CanAccess()) { throw new COMException("Accessing the spool folder failed."); } var isPdf = fileExtension.EndsWith(".pdf"); var fileHelper = isPdf ? _directConversionProvider.GetPdfConversion() : _directConversionProvider.GetPsConversion(); var infFile = fileHelper.TransformToInfFile(path, spoolFolder); _jobInfoQueue.Add(_jobInfoManager.ReadFromInfFile(infFile)); }
public void ConvertDirectly_WithValidFile_AddsJobToJobInfoQueue() { const string expectedInfFile = "X:\\MyFile.inf"; var pdfDirectConversion = _fixture.Freeze <IDirectConversion>(); pdfDirectConversion.TransformToInfFile(Arg.Any <string>(), Arg.Any <string>()).Returns(expectedInfFile); _directConversionProvider.GetPdfConversion().Returns(pdfDirectConversion); var jobInfoManager = _fixture.Freeze <IJobInfoManager>(); jobInfoManager.ReadFromInfFile(Arg.Any <string>()).Returns(x => new JobInfo { InfFile = x.Arg <string>() }); var directConversionHelper = _fixture.Create <DirectConversionHelper>(); directConversionHelper.ConvertDirectly(@"C:\InvalidFile.pdf"); _jobInfoQueue.Received(1).Add(Arg.Is <JobInfo>(jobInfo => jobInfo.InfFile == expectedInfFile)); }
private IDirectConversion GetCorrectConverterForFile(string file) { return(IsPdfFile(file) ? _provider.GetPdfConversion() : _provider.GetPsConversion()); }