BorderTests.cs 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. using System.Drawing;
  2. using NUnit.Framework;
  3. using QuestPDF.Drawing;
  4. using QuestPDF.Elements;
  5. using QuestPDF.Helpers;
  6. using QuestPDF.Infrastructure;
  7. using QuestPDF.UnitTests.TestEngine;
  8. using Size = QuestPDF.Infrastructure.Size;
  9. namespace QuestPDF.UnitTests
  10. {
  11. [TestFixture]
  12. public class BorderTests
  13. {
  14. [Test]
  15. public void Measure() => SimpleContainerTests.Measure<Border>();
  16. [Test]
  17. public void ComponentShouldNotAffectLayout()
  18. {
  19. TestPlan
  20. .For(x => new Border
  21. {
  22. Top = 10,
  23. Right = 20,
  24. Bottom = 30,
  25. Left = 40,
  26. Child = x.CreateChild()
  27. })
  28. .MeasureElement(new Size(400, 300))
  29. .ExpectChildMeasure(expectedInput: new Size(400, 300), returns: SpacePlan.FullRender(new Size(100, 50)))
  30. .CheckMeasureResult( SpacePlan.FullRender(new Size(100, 50)));
  31. }
  32. [Test]
  33. public void Draw_SameWidths_Optimized()
  34. {
  35. TestPlan
  36. .For(x => new Border
  37. {
  38. Top = 10,
  39. Right = 10,
  40. Bottom = 10,
  41. Left = 10,
  42. Color = Colors.Red.Medium,
  43. Child = x.CreateChild()
  44. })
  45. .DrawElement(new Size(400, 300))
  46. .ExpectChildDraw(new Size(400, 300))
  47. .ExpectCanvasDrawStrokedRectangle(new Size(400, 300), Colors.Red.Medium, 10)
  48. .ExpectChildDraw(new Size(400, 300))
  49. .CheckDrawResult();
  50. }
  51. [Test]
  52. public void Draw_VariousWidths()
  53. {
  54. TestPlan
  55. .For(x => new Border
  56. {
  57. Top = 10,
  58. Right = 20,
  59. Bottom = 30,
  60. Left = 40,
  61. Color = Colors.Red.Medium,
  62. Child = x.CreateChild()
  63. })
  64. .DrawElement(new Size(400, 300))
  65. .ExpectChildDraw(new Size(400, 300))
  66. .ExpectCanvasDrawFilledRectangle(new Position(-20, -5), new Size(430, 10), Colors.Red.Medium) // top
  67. .ExpectCanvasDrawFilledRectangle(new Position(-20, -5), new Size(40, 320), Colors.Red.Medium) // left
  68. .ExpectCanvasDrawFilledRectangle(new Position(-20, 285), new Size(430, 30), Colors.Red.Medium) // bottom
  69. .ExpectCanvasDrawFilledRectangle(new Position(390, -5), new Size(20, 320), Colors.Red.Medium) // right
  70. .ExpectChildDraw(new Size(400, 300))
  71. .CheckDrawResult();
  72. }
  73. }
  74. }