EnsureSpaceTests.cs 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  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 EnsureSpaceTests
  10. {
  11. [Test]
  12. public void Measure_ReturnsPartialRenderWithZeroSize_WhenChildReturnsWrap()
  13. {
  14. TestPlan
  15. .For(x => new EnsureSpace
  16. {
  17. Child = x.CreateChild(),
  18. MinHeight = 200
  19. })
  20. .MeasureElement(new Size(400, 100))
  21. .ExpectChildMeasure(new Size(400, 100), SpacePlan.Wrap("Mock"))
  22. .CheckMeasureResult(SpacePlan.PartialRender(Size.Zero));
  23. }
  24. [Test]
  25. public void Measure_ReturnsPartialRenderWithZeroSize_WhenChildReturnsPartialRender_AndNotEnoughSpace()
  26. {
  27. TestPlan
  28. .For(x => new EnsureSpace
  29. {
  30. Child = x.CreateChild(),
  31. MinHeight = 200
  32. })
  33. .MeasureElement(new Size(400, 100))
  34. .ExpectChildMeasure(new Size(400, 100), SpacePlan.PartialRender(300, 50))
  35. .CheckMeasureResult(SpacePlan.PartialRender(Size.Zero));
  36. }
  37. [Test]
  38. public void Measure_ReturnsPartialRender_WhenChildReturnsPartialRender_AndEnoughSpace()
  39. {
  40. TestPlan
  41. .For(x => new EnsureSpace
  42. {
  43. Child = x.CreateChild(),
  44. MinHeight = 200
  45. })
  46. .MeasureElement(new Size(400, 300))
  47. .ExpectChildMeasure(new Size(400, 300), SpacePlan.PartialRender(300, 250))
  48. .CheckMeasureResult(SpacePlan.PartialRender(300, 250));
  49. }
  50. [Test]
  51. public void Measure_ReturnsFullRender_WhenChildReturnsFullRender_AndNotEnoughSpace()
  52. {
  53. TestPlan
  54. .For(x => new EnsureSpace
  55. {
  56. Child = x.CreateChild(),
  57. MinHeight = 200
  58. })
  59. .MeasureElement(new Size(400, 100))
  60. .ExpectChildMeasure(new Size(400, 100), SpacePlan.FullRender(300, 50))
  61. .CheckMeasureResult(SpacePlan.FullRender(300, 50));
  62. }
  63. [Test]
  64. public void Measure_ReturnsFullRender_WhenChildReturnsFullRender_AndEnoughSpace()
  65. {
  66. TestPlan
  67. .For(x => new EnsureSpace
  68. {
  69. Child = x.CreateChild(),
  70. MinHeight = 200
  71. })
  72. .MeasureElement(new Size(400, 300))
  73. .ExpectChildMeasure(new Size(400, 300), SpacePlan.FullRender(300, 250))
  74. .CheckMeasureResult(SpacePlan.FullRender(300, 250));
  75. }
  76. }
  77. }