public void Execute_WhenValidInputTo_ShouldRespondWithPdfContentType() { //---------------Arrange------------------- var input = new RenderWordInput { JsonModel = "{}", ReportName = "Test.docx", TemplateName = "Test" }; var reportResult = new RenderedDocumentOutput { Base64String = "", ContentType = ContentTypes.Word }; var pdfResult = new RenderedDocumentOutput { Base64String = "", ContentType = ContentTypes.Pdf }; var presenter = new PropertyPresenter <IFileOutput, ErrorOutput>(); var reportGateway = Create_Report_Gateway(reportResult); var pdfGateway = Create_Pdf_Gateway(pdfResult); var wordUsecase = new RenderWordUseCase(reportGateway); var pdfUsecase = new RenderWordToPdfUseCase(pdfGateway); var sut = new RenderAsWordThenPdfUseCase(wordUsecase, pdfUsecase); //---------------Act----------------------- sut.Execute(input, presenter); //---------------Assert-------------------- Assert.Equal("application/pdf", presenter.SuccessContent.ContentType); }
private static IReportGateway Create_Report_Gateway(RenderedDocumentOutput gatewayResult) { var gateway = Substitute.For <IReportGateway>(); gateway.CreateWordReport(Arg.Any <RenderWordInput>()).Returns(gatewayResult); return(gateway); }
private RenderedDocumentOutput ReturnInvalidReportTemplatePathError(string templatePath) { var result = new RenderedDocumentOutput(); result.ErrorMessages.Add($"Invalid Report Template [{templatePath}]"); return(result); }
private RenderedDocumentOutput ReturnErrors(PropertyPresenter <string, ErrorOutput> presenter) { var result = new RenderedDocumentOutput(); result.ErrorMessages.AddRange(presenter.ErrorContent.Errors); return(result); }
private static IPdfGateway Create_Report_Gateway(RenderedDocumentOutput gatewayResult) { var gateway = Substitute.For <IPdfGateway>(); gateway.ConvertToPdf(Arg.Any <RenderPdfInput>()).Returns(gatewayResult); return(gateway); }
private void Respond_With_File(RenderWordInput inputTo, IRespondWithSuccessOrError <IFileOutput, ErrorOutput> presenter, RenderedDocumentOutput result) { var reportMessage = new WordFileOutput(inputTo.ReportName, result.FetchDocumentAsByteArray()); presenter.Respond(reportMessage); }
private void Respond_With_Errors(IRespondWithSuccessOrError <IFileOutput, ErrorOutput> presenter, RenderedDocumentOutput output) { var errorOutput = new ErrorOutput(); errorOutput.AddErrors(output.ErrorMessages); presenter.Respond(errorOutput); }
public void HasErrors_WhenNoErrors_ShouldReturnFalse() { //---------------Arrange------------------ //---------------Act---------------------- var renderedDocumentOutput = new RenderedDocumentOutput(); //---------------Assert------------------- Assert.False(renderedDocumentOutput.HasErrors()); }
public void FetchDocumetnAsByteArray_WhenNullBase64String_ShouldReturnEmptyByteArray() { //---------------Arrange------------------ var renderedDocumentOutput = new RenderedDocumentOutput(); //---------------Act---------------------- //---------------Assert------------------- Assert.Empty(renderedDocumentOutput.FetchDocumentAsByteArray()); }
public void Ctor_ShouldInitializeErrorList() { //---------------Arrange------------------ //---------------Act---------------------- var renderedDocumentOutput = new RenderedDocumentOutput(); //---------------Assert------------------- Assert.NotNull(renderedDocumentOutput.ErrorMessages); }
private RenderedDocumentOutput ReturnPdf(string reportPath) { var filePath = reportPath.Replace(".xlsx", ".csv"); var result = new RenderedDocumentOutput { Base64String = Convert.ToBase64String(File.ReadAllBytes(filePath)), ContentType = ContentTypes.Pdf }; return result; }
public void HasErrors_Errors_ShouldReturnTrue() { //---------------Arrange------------------ var renderedDocumentOutput = new RenderedDocumentOutput(); //---------------Act---------------------- renderedDocumentOutput.ErrorMessages.Add("error 1"); //---------------Assert------------------- Assert.True(renderedDocumentOutput.HasErrors()); }
private RenderedDocumentOutput ReturnPdf(string reportPath) { var pdfPath = reportPath.Replace(".docx", ".pdf"); var result = new RenderedDocumentOutput { Base64String = Convert.ToBase64String(File.ReadAllBytes(pdfPath)), ContentType = ContentTypes.Pdf }; return(result); }
public void FetchDocumetnAsByteArray_WhenValidBase64String_ShouldReturnByteArray() { //---------------Arrange------------------ var renderedDocumentOutput = new RenderedDocumentOutput { //---------------Act---------------------- Base64String = "R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" }; //---------------Assert------------------- Assert.NotEmpty(renderedDocumentOutput.FetchDocumentAsByteArray()); }
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()); }
public void Execute_WhenValidInputTo_ShouldRespondWithWordContentType() { //---------------Arrange------------------- var gatewayResult = new RenderedDocumentOutput { Base64String = "eA==" }; var gateway = Create_Report_Gateway(gatewayResult); var input = new RenderWordInput { JsonModel = "", ReportName = "Test.docx", TemplateName = "Test" }; var presenter = new PropertyPresenter <IFileOutput, ErrorOutput>(); var usecase = new RenderWordUseCase(gateway); //---------------Act---------------------- usecase.Execute(input, presenter); //---------------Assert----------------------- var expected = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"; Assert.Equal(expected, presenter.SuccessContent.ContentType); }
public void Execute_WhenRenderErrors_ShouldRespondWithErrors() { //---------------Arrange------------------- var gatewayResult = new RenderedDocumentOutput { ErrorMessages = new List <string> { "error" } }; var gateway = Create_Report_Gateway(gatewayResult); var input = new RenderWordInput { JsonModel = "", ReportName = "Test.docx", TemplateName = "Test" }; var presenter = new PropertyPresenter <IFileOutput, ErrorOutput>(); var usecase = new RenderWordUseCase(gateway); //---------------Act---------------------- usecase.Execute(input, presenter); //---------------Assert----------------------- Assert.True(presenter.IsErrorResponse()); }
private bool Render_Errors(RenderedDocumentOutput output) { return(output.HasErrors()); }
private void Respond_With_Pdf(RenderPdfInput inputTo, IRespondWithSuccessOrError <IFileOutput, ErrorOutput> presenter, RenderedDocumentOutput output) { presenter.Respond(new PdfFileOutput(inputTo.FileName, output.FetchDocumentAsByteArray())); }