public Gradient Construct()
        {
            var parsed = new CssGradientParser().ParseCss(StyleSheet);

            if (parsed.Length != 1)
            {
                throw new InvalidOperationException("StyleSheet must contain single gradient function.");
            }
            return(parsed.First());
        }
        public void ParseCss_SimpleGradients_CorrectlyParsed(string css, LinearGradient expected)
        {
            // Arrange
            var parser = new CssGradientParser();

            // Act
            var gradients = parser.ParseCss(css);

            // Assert
            gradients.Should().HaveCount(1);
            gradients[0].Should().BeEquivalentTo(expected);
        }
        public void ParseCss_EmptyCss_EmptyGradientArrayReturned(string css)
        {
            // Arrange
            var parser = new CssGradientParser();

            // Act
            var gradients = parser.ParseCss(css);

            // Assert
            gradients.Should().NotBeNull();
            gradients.Should().HaveCount(0);
        }
示例#4
0
        public void ParseCss_GradientsWithoutOffsets_AutomaticallyAssignedOffsets(string css, LinearGradient expected)
        {
            // Arrange
            var parser = new CssGradientParser();

            // Act
            var gradients = parser.ParseCss(css);

            // Assert
            gradients.Should().HaveCount(1);
            gradients[0].Should().BeEquivalentTo(expected);
        }
示例#5
0
        public void ParseCss_GradientsWithoutOffsets_AutomaticallyAssignedOffsets(string css, LinearGradient expected)
        {
            // Arrange
            var parser = new CssGradientParser();

            // Act
            var gradients = parser.ParseCss(css);

            gradients.ForEach(x => x.Measure(0, 0));

            // Assert
            gradients.Should().HaveCount(1);
            gradients[0].Should().BeEquivalentTo(expected, options => options.IgnoringCyclicReferences());
        }
        public void ParseCss_SimpleGradients_CorrectlyParsed(string css, LinearGradient expected)
        {
            // Arrange
            var parser = new CssGradientParser();

            // Act
            var gradients = parser.ParseCss(css);

            // Assert
            using (new AssertionScope())
            {
                gradients.Should().HaveCount(1);
                gradients[0].Should().BeEquivalentTo(expected, options => options.IgnoringCyclicReferences());
            }
        }
        public void ParseCss_ComplexGradientsCss_EachGradientHaveCorrectAngleAndStopsCount()
        {
            // Arrange
            var css = CssGradientParserTestData.ComplexGradientsCss;
            var expectedGradients = CssGradientParserTestData.ComplexGradientsExpected;
            var parser            = new CssGradientParser();

            // Act
            var gradients = parser.ParseCss(css);

            // Assert
            gradients.Should().HaveCount(expectedGradients.Length);

            for (var i = 0; i < gradients.Length; i++)
            {
                gradients[i].Stops.Should().HaveCount(expectedGradients[i].Stops.Count);
            }
        }
        public void ParseCss_ComplexGradientsCss_EachGradientHaveCorrectAngleAndStopsCount(string css, Gradient[] expectedGradients)
        {
            // Arrange
            var parser = new CssGradientParser();

            // Act
            var gradients = parser.ParseCss(css);

            // Assert
            using (new AssertionScope())
            {
                gradients.Should().HaveCount(expectedGradients.Length);

                for (var i = 0; i < gradients.Length; i++)
                {
                    gradients[i].Stops.Should().HaveCount(expectedGradients[i].Stops.Count);
                }
            }
        }