MockCanvas.cs 1.6 KB

123456789101112131415161718192021222324252627282930
  1. using System;
  2. using QuestPDF.Infrastructure;
  3. using SkiaSharp;
  4. namespace QuestPDF.UnitTests.TestEngine
  5. {
  6. internal class MockCanvas : ICanvas
  7. {
  8. public Action<Position> TranslateFunc { get; set; }
  9. public Action<float> RotateFunc { get; set; }
  10. public Action<float, float> ScaleFunc { get; set; }
  11. public Action<SKImage, Position, Size> DrawImageFunc { get; set; }
  12. public Action<string, Position, TextStyle> DrawTextFunc { get; set; }
  13. public Action<Position, Size, string> DrawFilledRectangleFunc { get; set; }
  14. public Action<Size, string, float> DrawStrokedRectangleFunc { get; set; }
  15. public void Translate(Position vector) => TranslateFunc(vector);
  16. public void Rotate(float angle) => RotateFunc(angle);
  17. public void Scale(float scaleX, float scaleY) => ScaleFunc(scaleX, scaleY);
  18. public void DrawFilledRectangle(Position vector, Size size, string color) => DrawFilledRectangleFunc(vector, size, color);
  19. public void DrawStrokedRectangle(Size size, string color, float width) => DrawStrokedRectangleFunc(size, color, width);
  20. public void DrawText(string text, Position position, TextStyle style) => DrawTextFunc(text, position, style);
  21. public void DrawImage(SKImage image, Position position, Size size) => DrawImageFunc(image, position, size);
  22. public void DrawExternalLink(string url, Size size) => throw new NotImplementedException();
  23. public void DrawLocationLink(string locationName, Size size) => throw new NotImplementedException();
  24. public void DrawLocation(string locationName) => throw new NotImplementedException();
  25. }
  26. }