Exemple #1
0
        public async Task Png_Should_return_a_png_image_file_content()
        {
            // Arrange
            var fixture         = new Fixture();
            var html            = fixture.Create <string>();
            var htmlAsByteArray = fixture.Create <byte[]>();

            var htmlToImageMock = new Mock <IHtmlToImage>();

            htmlToImageMock.Setup(x => x.FromStringToPngAsync(html, null, null))
            .ReturnsAsync(htmlAsByteArray);

            var sut = new HtmlToImageController(
                Mock.Of <ILogger <HtmlToImageController> >(),
                htmlToImageMock.Object);

            var payload = new HtmlToImageModel()
            {
                Html = html
            };

            // Act
            var response = await sut.Png(payload);

            var responseAction = response as FileContentResult;

            // Assert
            Assert.IsType <FileContentResult>(response);
            Assert.Equal(htmlAsByteArray, responseAction.FileContents);
            Assert.Equal("image/png", responseAction.ContentType);
        }
Exemple #2
0
        public async Task <IActionResult> Png([FromBody] HtmlToImageModel htmlToImageModel)
        {
            try
            {
                _logger.LogInformation("Converting HTML to PNG image");

                var imageAsBytes = await _htmlToImage.FromStringToPngAsync(htmlToImageModel.Html, htmlToImageModel.Height, htmlToImageModel.Width);

                return(File(imageAsBytes, "image/png"));
            }
            catch (Exception ex)
            {
                _logger.LogError("Error converting HTML text to PNG image", ex);
                return(BadRequest(ex));
            }
        }