static Serialize()
            {
                Data = new TheoryData <HtmlToPdfConverterOptions, string>();

                var data1 = new HtmlToPdfConverterOptions();

                data1.PaperSize.Margins     = Margins.Normal;
                data1.PaperSize.Orientation = Orientation.Portrait;
                Data.Add(data1, "{\\\"paperSize\\\":{\\\"format\\\":\\\"Letter\\\",\\\"orientation\\\":\\\"portrait\\\",\\\"margin\\\":{\\\"top\\\":\\\"1in\\\",\\\"right\\\":\\\"1in\\\",\\\"bottom\\\":\\\"1in\\\",\\\"left\\\":\\\"1in\\\"}},\\\"viewportSize\\\":{\\\"width\\\":600,\\\"height\\\":600},\\\"zoomFactor\\\":1}");

                var data2 = new HtmlToPdfConverterOptions
                {
                    PaperSize    = new PaperSizeMeasurements(new Size(10, Unit.Centimeter), new Size(11, Unit.Centimeter)),
                    ZoomFactor   = 2,
                    ViewportSize = new ViewportSize {
                        Width = 1, Height = 2
                    },
                    ClipRectangle = new ClipRectangle {
                        Top = 1, Left = 2, Width = 3, Height = 4
                    }
                };

                data2.PaperSize.Margins     = new Margins(new Size(1, Unit.Inch), new Size(2, Unit.Inch), new Size(3, Unit.Inch), new Size(4, Unit.Inch));
                data2.PaperSize.Orientation = Orientation.Landscape;
                Data.Add(data2, "{\\\"paperSize\\\":{\\\"width\\\":\\\"10cm\\\",\\\"height\\\":\\\"11cm\\\",\\\"orientation\\\":\\\"landscape\\\",\\\"margin\\\":{\\\"top\\\":\\\"1in\\\",\\\"right\\\":\\\"2in\\\",\\\"bottom\\\":\\\"3in\\\",\\\"left\\\":\\\"4in\\\"}},\\\"viewportSize\\\":{\\\"width\\\":1,\\\"height\\\":2},\\\"zoomFactor\\\":2,\\\"clipRect\\\":{\\\"top\\\":1,\\\"left\\\":2,\\\"width\\\":3,\\\"height\\\":4}}");
            }
            public void Should_convert_options_to_json(HtmlToPdfConverterOptions optionsToSerialize, string expectedJson)
            {
                // Act
                var result = sut.Serialize(optionsToSerialize);

                // Assert
                Assert.Equal(expectedJson, result);
            }
Beispiel #3
0
        private static void AssertDefaults(HtmlToPdfConverterOptions sut)
        {
            var paperSizeFormat = Assert.IsType <PaperSizeFormat>(sut.PaperSize);

            Assert.Equal(PaperSizeFormat.Letter.Format, paperSizeFormat.Format);
            Assert.Equal(Orientation.Portrait, sut.PaperSize.Orientation);
            Assert.Equal(Margins.Normal, sut.PaperSize.Margins);
            Assert.Equal(ViewportSize.Default, sut.ViewportSize);
            Assert.Equal(1, sut.ZoomFactor);
            Assert.Equal(ClipRectangle.Null, sut.ClipRectangle);
        }
Beispiel #4
0
            public void Should_set_the_PhantomRootDirectory()
            {
                // Arrange
                var currentDirectory = Directory.GetCurrentDirectory();
                var expectedRoot     = Path.Combine(currentDirectory, "PhantomJs", "TestRoot");

                // Act
                var sut = new HtmlToPdfConverterOptions(expectedRoot);

                // Assert
                Assert.Equal(expectedRoot, sut.PhantomRootDirectory);
                AssertDefaults(sut);
            }
        public string Serialize(HtmlToPdfConverterOptions options)
        {
            var settings = new Dictionary <string, object>
            {
                { "paperSize", options.PaperSize.SerializeTo(new Dictionary <string, object>()) },
                { "viewportSize", options.ViewportSize.SerializeTo(new Dictionary <string, object>()) },
                { "zoomFactor", options.ZoomFactor }
            };

            if (!options.ClipRectangle.Equals(ClipRectangle.Null))
            {
                settings.Add("clipRect", options.ClipRectangle.SerializeTo(new Dictionary <string, object>()));
            }

            var json = JsonSerializer.Serialize(settings);

            return(json.Replace("\"", "\\\""));
        }
Beispiel #6
0
        public HtmlToPdfConverterTest()
        {
            _options = new HtmlToPdfConverterOptions();

            _executableNameFinderMock = new Mock <IExecutableNameFinder>();
            _executableNameFinderMock
            .Setup(x => x.Find())
            .Returns("ArgsLoggerConsole.exe");

            _optionsSerializerMock = new Mock <IHtmlToPdfConverterOptionsSerializer>();
            _optionsSerializerMock
            .Setup(x => x.Serialize(It.IsAny <HtmlToPdfConverterOptions>()))
            .Returns(SerializedOptions);

            sut = new HtmlToPdfConverter(
                _options,
                _executableNameFinderMock.Object,
                _optionsSerializerMock.Object
                );

            _currentDirectory = Directory.GetCurrentDirectory();
            _targetDirectory  = Path.Combine(_currentDirectory, "PhantomJs", "Target");
        }
Beispiel #7
0
 public HtmlToPdfConverterOptionsTest()
 {
     sut = new HtmlToPdfConverterOptions();
 }
 public HtmlToPdfConverter(HtmlToPdfConverterOptions options, IExecutableNameFinder executableNameFinder, IHtmlToPdfConverterOptionsSerializer optionsSerializer)
 {
     _options = options ?? throw new ArgumentNullException(nameof(options));
     _executableNameFinder = executableNameFinder ?? throw new ArgumentNullException(nameof(executableNameFinder));
     _optionsSerializer    = optionsSerializer ?? throw new ArgumentNullException(nameof(optionsSerializer));
 }