private string PersistDocxFile(RenderPdfInput inputMessage, DisposableWorkSpace renderDirectory) { var reportPath = Path.Combine(renderDirectory.TmpPath, "report.docx"); WriteTo(reportPath, inputMessage.Base64DocxReport); return(reportPath); }
public void Ctor_ShouldSetFileNamePropertyToDefault() { // arrange // act var actual = new RenderPdfInput(); // assert Assert.Equal("Report", actual.FileName); }
public void Ctor_WhenNoNameGiven_ShouldDefaultToReport() { //---------------Arrange------------------- //---------------Act---------------------- var sut = new RenderPdfInput(); //---------------Assert----------------------- var expected = "Report"; Assert.Equal(expected, sut.FileName); }
public void Ctor_WhenNameGiven_ShouldUseName() { //---------------Arrange------------------- //---------------Act---------------------- var sut = new RenderPdfInput { FileName = "NewReport" }; //---------------Assert----------------------- var expected = "NewReport"; Assert.Equal(expected, sut.FileName); }
public RenderedDocumentOutput ConvertToPdf(RenderPdfInput inputMessage) { using (var renderDirectory = GetWorkspace()) { var pdfPresenter = new PropertyPresenter <string, ErrorOutput>(); var reportPath = PersistDocxFile(inputMessage, renderDirectory); CovertToPdf(reportPath, renderDirectory, pdfPresenter); return(RenderingErrors(pdfPresenter) ? ReturnErrors(pdfPresenter) : ReturnPdf(reportPath)); } }
public void Execute(RenderPdfInput inputTo, IRespondWithSuccessOrError <IFileOutput, ErrorOutput> presenter) { var output = _pdfGateway.ConvertToPdf(inputTo); if (Render_Errors(output)) { Respond_With_Errors(presenter, output); return; } Respond_With_Pdf(inputTo, presenter, output); }
private static RenderPdfInput Create_Pdf_Input(PropertyPresenter <IFileOutput, ErrorOutput> docxPresenter) { var input = new RenderPdfInput(); using (var stream = docxPresenter.SuccessContent.GetStream()) { using (var memoryStream = new MemoryStream()) { stream.CopyTo(memoryStream); var reportBytes = memoryStream.ToArray(); input.Base64DocxReport = Convert.ToBase64String(reportBytes); } } return(input); }
public void Execute_WhenValidInputTo_ShouldRespondWithPdfContentType() { //---------------Arrange------------------- var gatewayResult = new RenderedDocumentOutput { Base64String = "eA==" }; var pdfGateway = Create_Report_Gateway(gatewayResult); var input = new RenderPdfInput { Base64DocxReport = "cHVzc3k=", FileName = "report.docx" }; var presenter = new PropertyPresenter <IFileOutput, ErrorOutput>(); var usecase = new RenderWordToPdfUseCase(pdfGateway); //---------------Act---------------------- usecase.Execute(input, presenter); //---------------Assert----------------------- Assert.Equal("application/pdf", presenter.SuccessContent.ContentType); }
public void Execute_WhenRenderErrors_ShouldRespondWithErrors() { //---------------Arrange------------------- var gatewayResult = new RenderedDocumentOutput { ErrorMessages = new List <string> { "error" } }; var pdfGateway = Create_Report_Gateway(gatewayResult); var input = new RenderPdfInput { Base64DocxReport = "cHVzc3k=", FileName = "report.docx" }; var presenter = new PropertyPresenter <IFileOutput, ErrorOutput>(); var usecase = new RenderWordToPdfUseCase(pdfGateway); //---------------Act---------------------- usecase.Execute(input, presenter); //---------------Assert----------------------- Assert.True(presenter.IsErrorResponse()); }
private void Respond_With_Pdf(RenderPdfInput inputTo, IRespondWithSuccessOrError <IFileOutput, ErrorOutput> presenter, RenderedDocumentOutput output) { presenter.Respond(new PdfFileOutput(inputTo.FileName, output.FetchDocumentAsByteArray())); }