Ejemplo n.º 1
0
        public void Draw(ICanvas <TPixelData> canvas, Point start, Point end, IPixel <TPixelData> colour)
        {
            _logger.LogDebug($"[DrawRectangle] start: {start}, end: {end}, colour: {colour}");

            Guard.ThrowIfNull(canvas, nameof(canvas));
            Guard.ThrowIfNull(colour, nameof(colour));
            canvas.ValidatePointWithinCanvas(start);
            canvas.ValidatePointWithinCanvas(end);

            var corners = new[]
            {
                start,
                new Point(start.X, end.Y),
                end,
                new Point(end.X, start.Y)
            };

            DrawSide(0, 1);
            DrawSide(1, 2);
            DrawSide(2, 3);
            DrawSide(3, 0);

            void DrawSide(int cornerIndex1, int cornerIndex2)
            {
                _drawStraightLine.Draw(canvas, corners[cornerIndex1], corners[cornerIndex2], colour);
            }
        }
Ejemplo n.º 2
0
 public void Draw_NullCanvas_ThrowsValidationException()
 {
     Assert.ThrowsException <ArgumentNullException>(() =>
                                                    _subject.Draw(null, new Point(1, 1), new Point(1, 1), new PixelStub()));
 }