public void Parse(CssReader reader, GradientBuilder builder) { var color = (Color)ColorConverter.ConvertFromInvariantString(GetColorString(reader)); if (TryConvertPercentToOffset(reader.ReadNext(), out var offset)) { builder.AddStop(color, offset); } else { builder.AddStop(color); reader.Rollback(); } }
public void Parse(CssReader reader, GradientBuilder builder) { var parts = reader.Read().Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); var color = parts.Length > 0 ? (Color)ColorConverter.ConvertFromInvariantString(parts[0]) : Color.Black; if (parts.Length > 1 && TryConvertPercentToOffset(parts[1], out var offset)) { builder.AddStop(color, offset); } else { builder.AddStop(color); } }
public void AddOnlyStops_DefaultGradientWithStops() { // Arrange var builder = new GradientBuilder(); // Act builder.AddStop(Colors.White); builder.AddStop(Colors.Black); var gradients = builder.Build(); // Assert using (new AssertionScope()) { gradients.Should().HaveCount(1); gradients[0].Should().BeOfType <LinearGradient>(); gradients[0].GetStops().Should().HaveCount(2); } }
public void AddGradient_AndStops_SingleGradientWithStops(GradientBuilderTestCase testCase) { // Arrange var builder = new GradientBuilder(); // Act testCase.AddGradientTo(builder); builder.AddStop(Colors.White); builder.AddStop(Colors.Black); var gradients = builder.Build(); // Assert using (new AssertionScope()) { gradients.Should().HaveCount(1); gradients[0].GetStops().Should().HaveCount(2); } }
public void AddStops_AndGradient_AndStops_TwoGradientsWithStops(GradientBuilderTestCase testCase) { // Arrange var builder = new GradientBuilder(); // Act builder.AddStop(Color.Red); testCase.AddGradientTo(builder); builder.AddStop(Color.White); builder.AddStop(Color.Black); var gradients = builder.Build(); // Assert using (new AssertionScope()) { gradients.Should().HaveCount(2); gradients[0].Stops.Should().HaveCount(1); gradients[1].Stops.Should().HaveCount(2); } }
public void Parse(CssReader reader, GradientBuilder builder) { var parts = reader.Read().Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); var color = (Color)ColorConverter.ConvertFromInvariantString(parts[0]); if (parts.TryConvertOffsets(out var offsets)) { builder.AddStops(color, offsets); } else { builder.AddStop(color); } }
public void Parse(CssReader reader, GradientBuilder builder) { var parts = reader.Read().Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); var color = GetNamedColor(parts[0]); var offsets = GetOffsets(parts); if (offsets.Any()) { builder.AddStops(color, offsets); } else { builder.AddStop(color); } }
public void Parse(CssReader reader, GradientBuilder builder) { var colorString = GetColorString(reader); var color = (Color)ColorConverter.ConvertFromInvariantString(colorString); var parts = reader.ReadNext().Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); var offsets = GetOffsets(parts); if (offsets.Any()) { builder.AddStops(color, offsets); } else { builder.AddStop(color); reader.Rollback(); } }