DecorationTests.cs 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. using NUnit.Framework;
  2. using QuestPDF.Drawing;
  3. using QuestPDF.Elements;
  4. using QuestPDF.Infrastructure;
  5. using QuestPDF.UnitTests.TestEngine;
  6. namespace QuestPDF.UnitTests
  7. {
  8. [TestFixture]
  9. public class DecorationTests
  10. {
  11. private Decoration CreateDecoration(TestPlan testPlan)
  12. {
  13. return new Decoration
  14. {
  15. Before = testPlan.CreateChild("before"),
  16. Content = testPlan.CreateChild("content"),
  17. After = testPlan.CreateChild("after"),
  18. };
  19. }
  20. #region Measure
  21. [Test]
  22. public void Measure_ReturnsWrap_WhenBeforeReturnsWrap()
  23. {
  24. TestPlan
  25. .For(CreateDecoration)
  26. .MeasureElement(new Size(400, 300))
  27. .ExpectChildMeasure("before", new Size(400, 300), SpacePlan.Wrap())
  28. .ExpectChildMeasure("after", new Size(400, 300), SpacePlan.FullRender(100, 50))
  29. .ExpectChildMeasure("content", new Size(400, 250), SpacePlan.FullRender(100, 100))
  30. .CheckMeasureResult(SpacePlan.Wrap());
  31. }
  32. [Test]
  33. public void Measure_ReturnsWrap_WhenContentReturnsWrap()
  34. {
  35. TestPlan
  36. .For(CreateDecoration)
  37. .MeasureElement(new Size(400, 300))
  38. .ExpectChildMeasure("before", new Size(400, 300), SpacePlan.FullRender(100, 50))
  39. .ExpectChildMeasure("after", new Size(400, 300), SpacePlan.FullRender(100, 50))
  40. .ExpectChildMeasure("content", new Size(400, 200), SpacePlan.Wrap())
  41. .CheckMeasureResult(SpacePlan.Wrap());
  42. }
  43. [Test]
  44. public void Measure_ReturnsWrap_WhenAfterReturnsWrap()
  45. {
  46. TestPlan
  47. .For(CreateDecoration)
  48. .MeasureElement(new Size(400, 300))
  49. .ExpectChildMeasure("before", new Size(400, 300), SpacePlan.FullRender(100, 50))
  50. .ExpectChildMeasure("after", new Size(400, 300), SpacePlan.Wrap())
  51. .ExpectChildMeasure("content", new Size(400, 250), SpacePlan.FullRender(100, 100))
  52. .CheckMeasureResult(SpacePlan.Wrap());
  53. }
  54. [Test]
  55. public void Measure_ReturnsWrap_WhenBeforeReturnsPartialRender()
  56. {
  57. TestPlan
  58. .For(CreateDecoration)
  59. .MeasureElement(new Size(400, 300))
  60. .ExpectChildMeasure("before", new Size(400, 300), SpacePlan.PartialRender(100, 50))
  61. .ExpectChildMeasure("after", new Size(400, 300), SpacePlan.FullRender(100, 50))
  62. .ExpectChildMeasure("content", new Size(400, 250), SpacePlan.FullRender(100, 100))
  63. .CheckMeasureResult(SpacePlan.Wrap());
  64. }
  65. [Test]
  66. public void Measure_ReturnsWrap_WhenAfterReturnsPartialRender()
  67. {
  68. TestPlan
  69. .For(CreateDecoration)
  70. .MeasureElement(new Size(400, 300))
  71. .ExpectChildMeasure("before", new Size(400, 300), SpacePlan.FullRender(100, 50))
  72. .ExpectChildMeasure("after", new Size(400, 300), SpacePlan.PartialRender(100, 50))
  73. .ExpectChildMeasure("content", new Size(400, 250), SpacePlan.FullRender(100, 100))
  74. .CheckMeasureResult(SpacePlan.Wrap());
  75. }
  76. [Test]
  77. public void Measure_ReturnsWrap_WhenContentReturnsPartialRender()
  78. {
  79. TestPlan
  80. .For(CreateDecoration)
  81. .MeasureElement(new Size(400, 300))
  82. .ExpectChildMeasure("before", new Size(400, 300), SpacePlan.FullRender(100, 50))
  83. .ExpectChildMeasure("after", new Size(400, 300), SpacePlan.FullRender(100, 50))
  84. .ExpectChildMeasure("content", new Size(400, 200), SpacePlan.PartialRender(150, 100))
  85. .CheckMeasureResult(SpacePlan.PartialRender(150, 200));
  86. }
  87. [Test]
  88. public void Measure_ReturnsWrap_WhenContentReturnsFullRender()
  89. {
  90. TestPlan
  91. .For(CreateDecoration)
  92. .MeasureElement(new Size(400, 300))
  93. .ExpectChildMeasure("before", new Size(400, 300), SpacePlan.FullRender(100, 50))
  94. .ExpectChildMeasure("after", new Size(400, 300), SpacePlan.FullRender(100, 50))
  95. .ExpectChildMeasure("content", new Size(400, 200), SpacePlan.FullRender(150, 100))
  96. .CheckMeasureResult(SpacePlan.FullRender(150, 200));
  97. }
  98. #endregion
  99. #region Draw
  100. [Test]
  101. public void Draw_Append()
  102. {
  103. TestPlan
  104. .For(CreateDecoration)
  105. .DrawElement(new Size(400, 300))
  106. .ExpectChildMeasure("before", new Size(400, 300), SpacePlan.FullRender(200, 40))
  107. .ExpectChildMeasure("after", new Size(400, 300), SpacePlan.FullRender(200, 60))
  108. .ExpectChildMeasure("content", new Size(400, 200), SpacePlan.FullRender(300, 100))
  109. .ExpectCanvasTranslate(0, 0)
  110. .ExpectChildDraw("before", new Size(300, 40))
  111. .ExpectCanvasTranslate(0, 0)
  112. .ExpectCanvasTranslate(0, 40)
  113. .ExpectChildDraw("content", new Size(300, 100))
  114. .ExpectCanvasTranslate(0, -40)
  115. .ExpectCanvasTranslate(0, 140)
  116. .ExpectChildDraw("after", new Size(300, 60))
  117. .ExpectCanvasTranslate(0, -140)
  118. .CheckDrawResult();
  119. }
  120. #endregion
  121. }
  122. }