ScaleTests.cs 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  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 ScaleTests
  10. {
  11. #region measure
  12. [Test]
  13. public void Measure_Wrap()
  14. {
  15. TestPlan
  16. .For(x => new Scale
  17. {
  18. Child = x.CreateChild(),
  19. ScaleX = 3,
  20. ScaleY = 2
  21. })
  22. .MeasureElement(new Size(900, 800))
  23. .ExpectChildMeasure(new Size(300, 400), SpacePlan.Wrap("Mock"))
  24. .CheckMeasureResult(SpacePlan.Wrap("Forwarded from child"));
  25. }
  26. [Test]
  27. public void Measure_PartialRender()
  28. {
  29. TestPlan
  30. .For(x => new Scale
  31. {
  32. Child = x.CreateChild(),
  33. ScaleX = 3,
  34. ScaleY = 2
  35. })
  36. .MeasureElement(new Size(900, 800))
  37. .ExpectChildMeasure(new Size(300, 400), SpacePlan.PartialRender(200, 350))
  38. .CheckMeasureResult(SpacePlan.PartialRender(600, 700));
  39. }
  40. [Test]
  41. public void Measure_FullRender()
  42. {
  43. TestPlan
  44. .For(x => new Scale
  45. {
  46. Child = x.CreateChild(),
  47. ScaleX = 3,
  48. ScaleY = 2
  49. })
  50. .MeasureElement(new Size(900, 800))
  51. .ExpectChildMeasure(new Size(300, 400), SpacePlan.FullRender(250, 300))
  52. .CheckMeasureResult(SpacePlan.FullRender(750, 600));
  53. }
  54. [Test]
  55. public void Measure_NegativeScaleX()
  56. {
  57. TestPlan
  58. .For(x => new Scale
  59. {
  60. Child = x.CreateChild(),
  61. ScaleX = -2,
  62. ScaleY = 1
  63. })
  64. .MeasureElement(new Size(800, 600))
  65. .ExpectChildMeasure(new Size(400, 600), SpacePlan.FullRender(300, 500))
  66. .CheckMeasureResult(SpacePlan.FullRender(600, 500));
  67. }
  68. [Test]
  69. public void Measure_NegativeScaleY()
  70. {
  71. TestPlan
  72. .For(x => new Scale
  73. {
  74. Child = x.CreateChild(),
  75. ScaleX = 1,
  76. ScaleY = -3
  77. })
  78. .MeasureElement(new Size(800, 600))
  79. .ExpectChildMeasure(new Size(800, 200), SpacePlan.FullRender(800, 100))
  80. .CheckMeasureResult(SpacePlan.FullRender(800, 300));
  81. }
  82. #endregion
  83. #region draw
  84. [Test]
  85. public void Draw_Simple()
  86. {
  87. TestPlan
  88. .For(x => new Scale
  89. {
  90. Child = x.CreateChild(),
  91. ScaleX = 3,
  92. ScaleY = 2
  93. })
  94. .DrawElement(new Size(900, 800))
  95. .ExpectCanvasTranslate(0, 0)
  96. .ExpectCanvasScale(3, 2)
  97. .ExpectChildDraw(new Size(300, 400))
  98. .ExpectCanvasScale(1/3f, 1/2f)
  99. .ExpectCanvasTranslate(0, 0)
  100. .CheckDrawResult();
  101. }
  102. [Test]
  103. public void Draw_NegativeScaleX()
  104. {
  105. TestPlan
  106. .For(x => new Scale
  107. {
  108. Child = x.CreateChild(),
  109. ScaleX = -3,
  110. ScaleY = 2
  111. })
  112. .DrawElement(new Size(900, 800))
  113. .ExpectCanvasTranslate(900, 0)
  114. .ExpectCanvasScale(-3, 2)
  115. .ExpectChildDraw(new Size(300, 400))
  116. .ExpectCanvasScale(-1/3f, 1/2f)
  117. .ExpectCanvasTranslate(-900, 0)
  118. .CheckDrawResult();
  119. }
  120. [Test]
  121. public void Draw_NegativeScaleY()
  122. {
  123. TestPlan
  124. .For(x => new Scale
  125. {
  126. Child = x.CreateChild(),
  127. ScaleX = 3,
  128. ScaleY = -2
  129. })
  130. .DrawElement(new Size(900, 800))
  131. .ExpectCanvasTranslate(0, 800)
  132. .ExpectCanvasScale(3, -2)
  133. .ExpectChildDraw(new Size(300, 400))
  134. .ExpectCanvasScale(1/3f, -1/2f)
  135. .ExpectCanvasTranslate(0, -800)
  136. .CheckDrawResult();
  137. }
  138. #endregion
  139. }
  140. }