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