RowTests.cs 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  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 RowTests
  10. {
  11. #region Measure
  12. [Test]
  13. public void Measure_ReturnsWrap_WhenLeftChildReturnsWrap()
  14. {
  15. TestPlan
  16. .For(x => new SimpleRow
  17. {
  18. Left = x.CreateChild("left"),
  19. Right = x.CreateChild("right")
  20. })
  21. .MeasureElement(new Size(400, 300))
  22. .ExpectChildMeasure("left", new Size(400, 300), new Wrap())
  23. .CheckMeasureResult(new Wrap());
  24. }
  25. [Test]
  26. public void Measure_ReturnsWrap_WhenRightChildReturnsWrap()
  27. {
  28. TestPlan
  29. .For(x => new SimpleRow
  30. {
  31. Left = x.CreateChild("left"),
  32. Right = x.CreateChild("right")
  33. })
  34. .MeasureElement(new Size(400, 300))
  35. .ExpectChildMeasure("left", new Size(400, 300), new FullRender(250, 150))
  36. .ExpectChildMeasure("right", new Size(150, 300), new Wrap())
  37. .CheckMeasureResult(new Wrap());
  38. }
  39. [Test]
  40. public void Measure_ReturnsPartialRender_WhenLeftChildReturnsPartialRender()
  41. {
  42. TestPlan
  43. .For(x => new SimpleRow
  44. {
  45. Left = x.CreateChild("left"),
  46. Right = x.CreateChild("right")
  47. })
  48. .MeasureElement(new Size(400, 300))
  49. .ExpectChildMeasure("left", new Size(400, 300), new PartialRender(250, 150))
  50. .ExpectChildMeasure("right", new Size(150, 300), new FullRender(100, 100))
  51. .CheckMeasureResult(new PartialRender(350, 150));
  52. }
  53. [Test]
  54. public void Measure_ReturnsPartialRender_WhenRightChildReturnsPartialRender()
  55. {
  56. TestPlan
  57. .For(x => new SimpleRow
  58. {
  59. Left = x.CreateChild("left"),
  60. Right = x.CreateChild("right")
  61. })
  62. .MeasureElement(new Size(400, 300))
  63. .ExpectChildMeasure("left", new Size(400, 300), new FullRender(250, 150))
  64. .ExpectChildMeasure("right", new Size(150, 300), new PartialRender(100, 100))
  65. .CheckMeasureResult(new PartialRender(350, 150));
  66. }
  67. [Test]
  68. public void Measure_ReturnsFullRender_WhenBothChildrenReturnFullRender()
  69. {
  70. TestPlan
  71. .For(x => new SimpleRow
  72. {
  73. Left = x.CreateChild("left"),
  74. Right = x.CreateChild("right")
  75. })
  76. .MeasureElement(new Size(400, 300))
  77. .ExpectChildMeasure("left", new Size(400, 300), new FullRender(200, 150))
  78. .ExpectChildMeasure("right", new Size(200, 300), new FullRender(100, 100))
  79. .CheckMeasureResult(new FullRender(300, 150));
  80. }
  81. #endregion
  82. #region Draw
  83. [Test]
  84. public void Draw()
  85. {
  86. TestPlan
  87. .For(x => new SimpleRow
  88. {
  89. Left = x.CreateChild("left"),
  90. Right = x.CreateChild("right")
  91. })
  92. .DrawElement(new Size(400, 300))
  93. .ExpectChildMeasure("left", new Size(400, 300), new FullRender(250, 150))
  94. .ExpectChildDraw("left", new Size(250, 300))
  95. .ExpectCanvasTranslate(250, 0)
  96. .ExpectChildDraw("right", new Size(150, 300))
  97. .ExpectCanvasTranslate(-250, 0)
  98. .CheckDrawResult();
  99. }
  100. #endregion
  101. // TODO: add tests for the spacing property
  102. // TODO: add tests for the tree builder method
  103. // TODO: add tests for relative column
  104. }
  105. }