AspectRatioTests.cs 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  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 AspectRatioTests
  10. {
  11. [Test]
  12. public void Measure_FitWidth_EnoughSpace_FullRender()
  13. {
  14. TestPlan
  15. .For(x => new AspectRatio
  16. {
  17. Child = x.CreateChild(),
  18. Option = AspectRatioOption.FitArea,
  19. Ratio = 2f
  20. })
  21. .MeasureElement(new Size(400, 201))
  22. .ExpectChildMeasure(new Size(400, 200), SpacePlan.FullRender(100, 50))
  23. .CheckMeasureResult(SpacePlan.FullRender(400, 200));
  24. }
  25. [Test]
  26. public void Measure_FitWidth_EnoughSpace_PartialRender()
  27. {
  28. TestPlan
  29. .For(x => new AspectRatio
  30. {
  31. Child = x.CreateChild(),
  32. Option = AspectRatioOption.FitArea,
  33. Ratio = 2f
  34. })
  35. .MeasureElement(new Size(400, 201))
  36. .ExpectChildMeasure(new Size(400, 200), SpacePlan.PartialRender(100, 50))
  37. .CheckMeasureResult(SpacePlan.PartialRender(400, 200));
  38. }
  39. [Test]
  40. public void Measure_FitWidth_EnoughSpace_Wrap()
  41. {
  42. TestPlan
  43. .For(x => new AspectRatio
  44. {
  45. Child = x.CreateChild(),
  46. Option = AspectRatioOption.FitArea,
  47. Ratio = 2f
  48. })
  49. .MeasureElement(new Size(400, 201))
  50. .ExpectChildMeasure(new Size(400, 200), SpacePlan.Wrap())
  51. .CheckMeasureResult(SpacePlan.Wrap());
  52. }
  53. [Test]
  54. public void Measure_FitWidth_EnoughSpace()
  55. {
  56. TestPlan
  57. .For(x => new AspectRatio
  58. {
  59. Child = x.CreateChild(),
  60. Option = AspectRatioOption.FitWidth,
  61. Ratio = 2f
  62. })
  63. .MeasureElement(new Size(400, 201))
  64. .ExpectChildMeasure(new Size(400, 200), SpacePlan.FullRender(100, 50))
  65. .CheckMeasureResult(SpacePlan.FullRender(400, 200));
  66. }
  67. [Test]
  68. public void Measure_FitWidth_NotEnoughSpace()
  69. {
  70. TestPlan
  71. .For(x => new AspectRatio
  72. {
  73. Child = x.CreateChild(),
  74. Option = AspectRatioOption.FitWidth,
  75. Ratio = 2f
  76. })
  77. .MeasureElement(new Size(400, 199))
  78. .CheckMeasureResult(SpacePlan.Wrap());
  79. }
  80. [Test]
  81. public void Measure_FitHeight_EnoughSpace()
  82. {
  83. TestPlan
  84. .For(x => new AspectRatio
  85. {
  86. Child = x.CreateChild(),
  87. Option = AspectRatioOption.FitHeight,
  88. Ratio = 2f
  89. })
  90. .MeasureElement(new Size(401, 200))
  91. .ExpectChildMeasure(new Size(400, 200), SpacePlan.FullRender(100, 50))
  92. .CheckMeasureResult(SpacePlan.FullRender(400, 200));
  93. }
  94. [Test]
  95. public void Measure_FitHeight_NotEnoughSpace()
  96. {
  97. TestPlan
  98. .For(x => new AspectRatio
  99. {
  100. Child = x.CreateChild(),
  101. Option = AspectRatioOption.FitHeight,
  102. Ratio = 2f
  103. })
  104. .MeasureElement(new Size(399, 200))
  105. .CheckMeasureResult(SpacePlan.Wrap());
  106. }
  107. [Test]
  108. public void Measure_FitArea_ToWidth()
  109. {
  110. TestPlan
  111. .For(x => new AspectRatio
  112. {
  113. Child = x.CreateChild(),
  114. Option = AspectRatioOption.FitArea,
  115. Ratio = 2f
  116. })
  117. .MeasureElement(new Size(400, 300))
  118. .ExpectChildMeasure(new Size(400, 200), SpacePlan.FullRender(100, 50))
  119. .CheckMeasureResult(SpacePlan.FullRender(400, 200));
  120. }
  121. [Test]
  122. public void Measure_FitArea_ToHeight()
  123. {
  124. TestPlan
  125. .For(x => new AspectRatio
  126. {
  127. Child = x.CreateChild(),
  128. Option = AspectRatioOption.FitArea,
  129. Ratio = 2f
  130. })
  131. .MeasureElement(new Size(500, 200))
  132. .ExpectChildMeasure(new Size(400, 200), SpacePlan.FullRender(100, 50))
  133. .CheckMeasureResult(SpacePlan.FullRender(400, 200));
  134. }
  135. [Test]
  136. public void DrawChild_PerWidth()
  137. {
  138. TestPlan
  139. .For(x => new AspectRatio
  140. {
  141. Child = x.CreateChild(),
  142. Option = AspectRatioOption.FitArea,
  143. Ratio = 2f
  144. })
  145. .DrawElement(new Size(500, 200))
  146. .ExpectChildDraw(new Size(400, 200))
  147. .CheckDrawResult();
  148. }
  149. [Test]
  150. public void DrawChild_PerHeight()
  151. {
  152. TestPlan
  153. .For(x => new AspectRatio
  154. {
  155. Child = x.CreateChild(),
  156. Option = AspectRatioOption.FitArea,
  157. Ratio = 2f
  158. })
  159. .DrawElement(new Size(400, 300))
  160. .ExpectChildDraw(new Size(400, 200))
  161. .CheckDrawResult();
  162. }
  163. }
  164. }