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);
        }
        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());
        }
        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);
        }