LayersTests.cs 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. using System.Collections.Generic;
  2. using NUnit.Framework;
  3. using QuestPDF.Drawing.SpacePlan;
  4. using QuestPDF.Elements;
  5. using QuestPDF.Infrastructure;
  6. using QuestPDF.UnitTests.TestEngine;
  7. namespace QuestPDF.UnitTests
  8. {
  9. [TestFixture]
  10. public class LayersTests
  11. {
  12. private const string BackgroundLayer = "background";
  13. private const string MainLayer = "main";
  14. private const string ForegroundLayer = "foreground";
  15. private static Layers GetLayers(TestPlan x)
  16. {
  17. return new Layers
  18. {
  19. Children = new List<Layer>
  20. {
  21. new Layer
  22. {
  23. Child = x.CreateChild(BackgroundLayer)
  24. },
  25. new Layer
  26. {
  27. Child = x.CreateChild(MainLayer),
  28. IsPrimary = true
  29. },
  30. new Layer
  31. {
  32. Child = x.CreateChild(ForegroundLayer)
  33. }
  34. }
  35. };
  36. }
  37. #region measure
  38. [Test]
  39. public void Measure_Wrap()
  40. {
  41. TestPlan
  42. .For(GetLayers)
  43. .MeasureElement(new Size(800, 600))
  44. .ExpectChildMeasure(MainLayer, new Size(800, 600), new Wrap())
  45. .CheckMeasureResult(new Wrap());
  46. }
  47. [Test]
  48. public void Measure_PartialRender()
  49. {
  50. TestPlan
  51. .For(GetLayers)
  52. .MeasureElement(new Size(800, 600))
  53. .ExpectChildMeasure(MainLayer, new Size(800, 600), new PartialRender(700, 500))
  54. .CheckMeasureResult(new PartialRender(700, 500));
  55. }
  56. [Test]
  57. public void Measure_FullRender()
  58. {
  59. TestPlan
  60. .For(GetLayers)
  61. .MeasureElement(new Size(800, 600))
  62. .ExpectChildMeasure(MainLayer, new Size(800, 600), new FullRender(500, 400))
  63. .CheckMeasureResult(new FullRender(500, 400));
  64. }
  65. #endregion
  66. #region draw
  67. [Test]
  68. public void Draw_Simple()
  69. {
  70. TestPlan
  71. .For(GetLayers)
  72. .MeasureElement(new Size(800, 600))
  73. .ExpectChildMeasure(BackgroundLayer, new Size(800, 600), new FullRender(100, 200))
  74. .ExpectChildMeasure(MainLayer, new Size(800, 600), new PartialRender(200, 300))
  75. .ExpectChildMeasure(ForegroundLayer, new Size(800, 600), new FullRender(300, 400))
  76. .ExpectChildDraw(BackgroundLayer, new Size(800, 600))
  77. .ExpectChildDraw(MainLayer, new Size(800, 600))
  78. .ExpectChildDraw(ForegroundLayer, new Size(800, 600))
  79. .CheckDrawResult();
  80. }
  81. [Test]
  82. public void Draw_WhenSecondaryLayerReturnsWrap_SkipThatLayer_1()
  83. {
  84. TestPlan
  85. .For(GetLayers)
  86. .MeasureElement(new Size(800, 600))
  87. .ExpectChildMeasure(BackgroundLayer, new Size(800, 600), new PartialRender(100, 200))
  88. .ExpectChildMeasure(MainLayer, new Size(800, 600), new PartialRender(200, 300))
  89. .ExpectChildMeasure(ForegroundLayer, new Size(800, 600), new Wrap())
  90. .ExpectChildDraw(BackgroundLayer, new Size(800, 600))
  91. .ExpectChildDraw(MainLayer, new Size(800, 600))
  92. .CheckDrawResult();
  93. }
  94. [Test]
  95. public void Draw_WhenSecondaryLayerReturnsWrap_SkipThatLayer_2()
  96. {
  97. TestPlan
  98. .For(GetLayers)
  99. .MeasureElement(new Size(800, 600))
  100. .ExpectChildMeasure(BackgroundLayer, new Size(800, 600), new Wrap())
  101. .ExpectChildMeasure(MainLayer, new Size(800, 600), new PartialRender(200, 300))
  102. .ExpectChildMeasure(ForegroundLayer, new Size(800, 600), new PartialRender(300, 400))
  103. .ExpectChildDraw(MainLayer, new Size(800, 600))
  104. .ExpectChildDraw(ForegroundLayer, new Size(800, 600))
  105. .CheckDrawResult();
  106. }
  107. #endregion
  108. }
  109. }