ConstrainedTests.cs 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  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 ConstrainedTests
  10. {
  11. #region Height
  12. [Test]
  13. public void Measure_MinHeight_ExpectWrap()
  14. {
  15. TestPlan
  16. .For(x => new Constrained
  17. {
  18. MinHeight = 100
  19. })
  20. .MeasureElement(new Size(400, 50))
  21. .CheckMeasureResult(SpacePlan.Wrap());
  22. }
  23. [Test]
  24. public void Measure_MinHeight_ExtendHeight()
  25. {
  26. TestPlan
  27. .For(x => new Constrained
  28. {
  29. MinHeight = 100,
  30. Child = x.CreateChild()
  31. })
  32. .MeasureElement(new Size(400, 200))
  33. .ExpectChildMeasure(Size.Zero, SpacePlan.PartialRender(Size.Zero))
  34. .ExpectChildMeasure(new Size(400, 200), SpacePlan.FullRender(400, 50))
  35. .CheckMeasureResult(SpacePlan.FullRender(400, 100));
  36. }
  37. [Test]
  38. public void Measure_MinHeight_PassHeight()
  39. {
  40. TestPlan
  41. .For(x => new Constrained
  42. {
  43. MinHeight = 100,
  44. Child = x.CreateChild()
  45. })
  46. .MeasureElement(new Size(400, 200))
  47. .ExpectChildMeasure(Size.Zero, SpacePlan.PartialRender(Size.Zero))
  48. .ExpectChildMeasure(new Size(400, 200), SpacePlan.FullRender(400, 150))
  49. .CheckMeasureResult(SpacePlan.FullRender(400, 150));
  50. }
  51. [Test]
  52. public void Measure_MaxHeight_Empty()
  53. {
  54. TestPlan
  55. .For(x => new Constrained
  56. {
  57. MaxHeight = 100
  58. })
  59. .MeasureElement(new Size(400, 150))
  60. .CheckMeasureResult(SpacePlan.FullRender(0, 0));
  61. }
  62. [Test]
  63. public void Measure_MaxHeight_PartialRender()
  64. {
  65. TestPlan
  66. .For(x => new Constrained
  67. {
  68. MaxHeight = 100,
  69. Child = x.CreateChild()
  70. })
  71. .MeasureElement(new Size(400, 200))
  72. .ExpectChildMeasure(Size.Zero, SpacePlan.PartialRender(Size.Zero))
  73. .ExpectChildMeasure(new Size(400, 100), SpacePlan.PartialRender(400, 75))
  74. .CheckMeasureResult(SpacePlan.PartialRender(400, 75));
  75. }
  76. [Test]
  77. public void Measure_MaxHeight_ExpectWrap()
  78. {
  79. TestPlan
  80. .For(x => new Constrained
  81. {
  82. MaxHeight = 100,
  83. Child = x.CreateChild()
  84. })
  85. .MeasureElement(new Size(400, 200))
  86. .ExpectChildMeasure(Size.Zero, SpacePlan.PartialRender(Size.Zero))
  87. .ExpectChildMeasure(new Size(400, 100), SpacePlan.Wrap())
  88. .CheckMeasureResult(SpacePlan.Wrap());
  89. }
  90. #endregion
  91. #region Width
  92. [Test]
  93. public void Measure_MinWidth_ExpectWrap()
  94. {
  95. TestPlan
  96. .For(x => new Constrained
  97. {
  98. MinWidth = 100
  99. })
  100. .MeasureElement(new Size(50, 400))
  101. .CheckMeasureResult(SpacePlan.Wrap());
  102. }
  103. [Test]
  104. public void Measure_MinWidth_ExtendHeight()
  105. {
  106. TestPlan
  107. .For(x => new Constrained
  108. {
  109. MinWidth = 100,
  110. Child = x.CreateChild()
  111. })
  112. .MeasureElement(new Size(200, 400))
  113. .ExpectChildMeasure(Size.Zero, SpacePlan.PartialRender(Size.Zero))
  114. .ExpectChildMeasure(new Size(200, 400), SpacePlan.FullRender(50, 400))
  115. .CheckMeasureResult(SpacePlan.FullRender(100, 400));
  116. }
  117. [Test]
  118. public void Measure_MinWidth_PassHeight()
  119. {
  120. TestPlan
  121. .For(x => new Constrained
  122. {
  123. MinWidth = 100,
  124. Child = x.CreateChild()
  125. })
  126. .MeasureElement(new Size(200, 400))
  127. .ExpectChildMeasure(Size.Zero, SpacePlan.PartialRender(Size.Zero))
  128. .ExpectChildMeasure(new Size(200, 400), SpacePlan.FullRender(150, 400))
  129. .CheckMeasureResult(SpacePlan.FullRender(150, 400));
  130. }
  131. [Test]
  132. public void Measure_MaxWidth_Empty()
  133. {
  134. TestPlan
  135. .For(x => new Constrained
  136. {
  137. MaxWidth = 100
  138. })
  139. .MeasureElement(new Size(150, 400))
  140. .CheckMeasureResult(SpacePlan.FullRender(0, 0));
  141. }
  142. [Test]
  143. public void Measure_MaxWidth_PartialRender()
  144. {
  145. TestPlan
  146. .For(x => new Constrained
  147. {
  148. MaxWidth = 100,
  149. Child = x.CreateChild()
  150. })
  151. .MeasureElement(new Size(200, 400))
  152. .ExpectChildMeasure(Size.Zero, SpacePlan.PartialRender(Size.Zero))
  153. .ExpectChildMeasure(new Size(100, 400), SpacePlan.PartialRender(75, 400))
  154. .CheckMeasureResult(SpacePlan.PartialRender(75, 400));
  155. }
  156. [Test]
  157. public void Measure_MaxWidth_ExpectWrap()
  158. {
  159. TestPlan
  160. .For(x => new Constrained
  161. {
  162. MaxWidth = 100,
  163. Child = x.CreateChild()
  164. })
  165. .MeasureElement(new Size(200, 400))
  166. .ExpectChildMeasure(Size.Zero, SpacePlan.PartialRender(Size.Zero))
  167. .ExpectChildMeasure(new Size(100, 400), SpacePlan.Wrap())
  168. .CheckMeasureResult(SpacePlan.Wrap());
  169. }
  170. #endregion
  171. }
  172. }