Пример #1
0
        public void ShouldReturnTheGeneratedFilenameWithCorrectExtension()
        {
            // Arrange
            var blobStorageUrl = "https://domchk53.blob.core.windows.net/domchk53pdfcontainer";

            var mockHtmlGenerator = Substitute.For<IHtmlGenerator>();
            var mockPdfGenerator = Substitute.For<IPdfGenerator>();
            var mockStorageProvider = Substitute.For<IStorageProvider>();
            var mockFilenameGenerator = Substitute.For<IFilenameGenerator>();

            mockFilenameGenerator.GenerateFilename()
                .Returns("testfile");

            var expectedOutput = $"{blobStorageUrl}/testfile.pdf";

            var controller = new PdfOutputController(mockHtmlGenerator, mockPdfGenerator, mockStorageProvider, mockFilenameGenerator);
            var model = new SearchResultModel() { Parameters = "", Results = new List<SearchResult>() { new SearchResult() { Tld = "com", Domain = "test", Availability = "Available", CheckDate = "Today", Status = "Completed" } } };

            // Act
            IHttpActionResult actionResult = controller.GetPdfUrl(model);

            // Assert
            var result = Assert.IsType<OkNegotiatedContentResult<PdfOutputResponse>>(actionResult);
            Assert.Equal(expectedOutput, result.Content.Url);
        }
Пример #2
0
        public void PopulatedHtmlShouldContainModelData()
        {
            // Arrange
            var razorHtmlGenerator = new RazorEngineHtmlGenerator();
            var model = new SearchResultModel() { Parameters = "TEST-PARAMETERS" };
            string template = "@Model.Parameters";
            string expectedResult = "TEST-PARAMETERS";

            // Act
            string actualResult = razorHtmlGenerator.GenerateHtml(template, model);

            // Assert
            Assert.Equal(expectedResult, actualResult);
        }
Пример #3
0
        public void AllGeneratorsShouldReceiveCalls()
        {
            // Arrange
            var mockHtmlGenerator = Substitute.For<IHtmlGenerator>();
            var mockPdfGenerator = Substitute.For<IPdfGenerator>();
            var mockStorageProvider = Substitute.For<IStorageProvider>();
            var mockFilenameGenerator = Substitute.For<IFilenameGenerator>();

            var controller = new PdfOutputController(mockHtmlGenerator, mockPdfGenerator, mockStorageProvider, mockFilenameGenerator);
            var model = new SearchResultModel();

            // Act
            IHttpActionResult actionResult = controller.GetPdfUrl(model);

            // Assert
            mockHtmlGenerator.Received().GenerateHtml(Arg.Any<string>(), Arg.Any<SearchResultModel>());
            mockStorageProvider.Received().DownloadTemplate("PdfTemplate.html");
            mockPdfGenerator.Received().GetPdfData(Arg.Any<string>());
            mockStorageProvider.Received().UploadFile(Arg.Any<string>(), Arg.Any<byte[]>());
        }
Пример #4
0
 public string GenerateHtml(string template, SearchResultModel model)
 {
     var result = Engine.Razor.RunCompile(template, "domchk53PdfTemplate", null, model);
     return result;
 }