AlignmentTests.cs 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. using NUnit.Framework;
  2. using QuestPDF.Drawing.SpacePlan;
  3. using QuestPDF.Elements;
  4. using QuestPDF.Infrastructure;
  5. using QuestPDF.UnitTests.TestEngine;
  6. namespace QuestPDF.UnitTests
  7. {
  8. [TestFixture]
  9. public class AlignmentTests
  10. {
  11. [Test]
  12. public void Measure_ShouldHandleNullChild() => new Alignment().MeasureWithoutChild();
  13. [Test]
  14. public void Draw_ShouldHandleNullChild() => new Alignment().DrawWithoutChild();
  15. [Test]
  16. public void Measure_ShouldReturnWrap_WhenChildReturnsWrap()
  17. {
  18. TestPlan
  19. .For(x => new Alignment
  20. {
  21. Child = x.CreateChild("child")
  22. })
  23. .MeasureElement(new Size(1000, 500))
  24. .ExpectChildMeasure("child", expectedInput: new Size(1000, 500), returns: new Wrap())
  25. .CheckMeasureResult(new Wrap());
  26. }
  27. [Test]
  28. public void Draw_HorizontalCenter_VerticalCenter()
  29. {
  30. TestPlan
  31. .For(x => new Alignment
  32. {
  33. Horizontal = HorizontalAlignment.Center,
  34. Vertical = VerticalAlignment.Middle,
  35. Child = x.CreateChild("child")
  36. })
  37. .DrawElement(new Size(1000, 500))
  38. .ExpectChildMeasure("child", expectedInput: new Size(1000, 500), returns: new PartialRender(new Size(400, 200)))
  39. .ExpectCanvasTranslate(new Position(300, 150))
  40. .ExpectChildDraw("child", new Size(400, 200))
  41. .ExpectCanvasTranslate(new Position(-300, -150))
  42. .CheckDrawResult();
  43. }
  44. [Test]
  45. public void Draw_HorizontalLeft_VerticalCenter()
  46. {
  47. TestPlan
  48. .For(x => new Alignment
  49. {
  50. Horizontal = HorizontalAlignment.Left,
  51. Vertical = VerticalAlignment.Middle,
  52. Child = x.CreateChild("child")
  53. })
  54. .DrawElement(new Size(400, 300))
  55. .ExpectChildMeasure("child", expectedInput: new Size(400, 300), returns: new FullRender(new Size(100, 50)))
  56. .ExpectCanvasTranslate(new Position(0, 125))
  57. .ExpectChildDraw("child", new Size(100, 50))
  58. .ExpectCanvasTranslate(new Position(0, -125))
  59. .CheckDrawResult();
  60. }
  61. [Test]
  62. public void Draw_HorizontalCenter_VerticalBottom()
  63. {
  64. TestPlan
  65. .For(x => new Alignment
  66. {
  67. Horizontal = HorizontalAlignment.Center,
  68. Vertical = VerticalAlignment.Bottom,
  69. Child = x.CreateChild("child")
  70. })
  71. .DrawElement(new Size(400, 300))
  72. .ExpectChildMeasure("child", expectedInput: new Size(400, 300), returns: new FullRender(new Size(100, 50)))
  73. .ExpectCanvasTranslate(new Position(150, 250))
  74. .ExpectChildDraw("child", new Size(100, 50))
  75. .ExpectCanvasTranslate(new Position(-150, -250))
  76. .CheckDrawResult();
  77. }
  78. [Test]
  79. public void Draw_HorizontalRight_VerticalTop()
  80. {
  81. TestPlan
  82. .For(x => new Alignment
  83. {
  84. Horizontal = HorizontalAlignment.Right,
  85. Vertical = VerticalAlignment.Top,
  86. Child = x.CreateChild("child")
  87. })
  88. .DrawElement(new Size(400, 300))
  89. .ExpectChildMeasure("child", expectedInput: new Size(400, 300), returns: new FullRender(new Size(100, 50)))
  90. .ExpectCanvasTranslate(new Position(300, 0))
  91. .ExpectChildDraw("child", new Size(100, 50))
  92. .ExpectCanvasTranslate(new Position(-300, 0))
  93. .CheckDrawResult();
  94. }
  95. }
  96. }