PaddingTests.cs 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241
  1. using NUnit.Framework;
  2. using QuestPDF.Drawing;
  3. using QuestPDF.Elements;
  4. using QuestPDF.Fluent;
  5. using QuestPDF.Infrastructure;
  6. using QuestPDF.UnitTests.TestEngine;
  7. namespace QuestPDF.UnitTests
  8. {
  9. [TestFixture]
  10. public class PaddingTests
  11. {
  12. [TestCase(0, 0, 0, 0, "")]
  13. [TestCase(10, 0, 0, 0, "L=10")]
  14. [TestCase(0, 15, 0, 0, "T=15")]
  15. [TestCase(0, 0, 20, 0, "R=20")]
  16. [TestCase(0, 0, 0, 25, "B=25")]
  17. [TestCase(50, 0, 50, 0, "H=50")]
  18. [TestCase(0, 60, 0, 60, "V=60")]
  19. [TestCase(10, -20, 10, -30, "L=10 T=-20 R=10 B=-30")]
  20. [TestCase(-5, -10, 15, -10, "L=-5 T=-10 R=15 B=-10")]
  21. [TestCase(1.234f, -2.345f, 3.456f, -4.567f, "L=1.2 T=-2.3 R=3.5 B=-4.6")]
  22. [TestCase(5, 5, 5, 5, "A=5")]
  23. public void CompanionHint(float left, float top, float right, float bottom, string expected)
  24. {
  25. var container = EmptyContainer.Create();
  26. container
  27. .PaddingLeft(left)
  28. .PaddingTop(top)
  29. .PaddingRight(right)
  30. .PaddingBottom(bottom);
  31. var translationElement = container.Child as Padding;
  32. var companionHint = translationElement?.GetCompanionHint();
  33. Assert.That(companionHint, Is.EqualTo(expected));
  34. }
  35. #region Cumulative Property
  36. [Test]
  37. public void PaddingLeftIsCumulative()
  38. {
  39. var container = EmptyContainer.Create();
  40. container.PaddingLeft(-20).PaddingLeft(25).PaddingLeft(30);
  41. var rowContainer = container.Child as Padding;
  42. Assert.That(rowContainer?.Left, Is.EqualTo(35));
  43. }
  44. [Test]
  45. public void PaddingTopIsCumulative()
  46. {
  47. var container = EmptyContainer.Create();
  48. container.PaddingTop(20).PaddingTop(-25).PaddingTop(30);
  49. var rowContainer = container.Child as Padding;
  50. Assert.That(rowContainer?.Top, Is.EqualTo(25));
  51. }
  52. [Test]
  53. public void PaddingRightIsCumulative()
  54. {
  55. var container = EmptyContainer.Create();
  56. container.PaddingRight(20).PaddingRight(25).PaddingRight(-30);
  57. var rowContainer = container.Child as Padding;
  58. Assert.That(rowContainer?.Right, Is.EqualTo(15));
  59. }
  60. [Test]
  61. public void PaddingBottomIsCumulative()
  62. {
  63. var container = EmptyContainer.Create();
  64. container.PaddingBottom(-20).PaddingBottom(-25).PaddingBottom(30);
  65. var rowContainer = container.Child as Padding;
  66. Assert.That(rowContainer?.Bottom, Is.EqualTo(-15));
  67. }
  68. #endregion
  69. #region Simple Asignment
  70. [Test]
  71. public void PaddingVerticalShorthandWorksCorrectly()
  72. {
  73. var container = EmptyContainer.Create();
  74. container.PaddingVertical(123);
  75. var rowContainer = container.Child as Padding;
  76. Assert.That(rowContainer?.Left, Is.Zero);
  77. Assert.That(rowContainer?.Top, Is.EqualTo(123));
  78. Assert.That(rowContainer?.Right, Is.Zero);
  79. Assert.That(rowContainer?.Bottom, Is.EqualTo(123));
  80. }
  81. [Test]
  82. public void PaddingHorizontalShorthandWorksCorrectly()
  83. {
  84. var container = EmptyContainer.Create();
  85. container.PaddingHorizontal(234);
  86. var rowContainer = container.Child as Padding;
  87. Assert.That(rowContainer?.Left, Is.EqualTo(234));
  88. Assert.That(rowContainer?.Top, Is.Zero);
  89. Assert.That(rowContainer?.Right, Is.EqualTo(234));
  90. Assert.That(rowContainer?.Bottom, Is.Zero);
  91. }
  92. [Test]
  93. public void PaddingAllShorthandWorksCorrectly()
  94. {
  95. var container = EmptyContainer.Create();
  96. container.Padding(456);
  97. var rowContainer = container.Child as Padding;
  98. Assert.That(rowContainer?.Left, Is.EqualTo(456));
  99. Assert.That(rowContainer?.Top, Is.EqualTo(456));
  100. Assert.That(rowContainer?.Right, Is.EqualTo(456));
  101. Assert.That(rowContainer?.Bottom, Is.EqualTo(456));
  102. }
  103. #endregion
  104. #region Unit Conversion
  105. [Test]
  106. public void PaddingLeftAppliesUnitConversion()
  107. {
  108. var container = EmptyContainer.Create();
  109. container.PaddingLeft(2, Unit.Inch);
  110. var rowContainer = container.Child as Padding;
  111. Assert.That(rowContainer?.Left, Is.EqualTo(144));
  112. }
  113. [Test]
  114. public void PaddingTopAppliesUnitConversion()
  115. {
  116. var container = EmptyContainer.Create();
  117. container.PaddingTop(3, Unit.Inch);
  118. var rowContainer = container.Child as Padding;
  119. Assert.That(rowContainer?.Top, Is.EqualTo(216));
  120. }
  121. [Test]
  122. public void PaddingRightAppliesUnitConversion()
  123. {
  124. var container = EmptyContainer.Create();
  125. container.PaddingRight(4, Unit.Inch);
  126. var rowContainer = container.Child as Padding;
  127. Assert.That(rowContainer?.Right, Is.EqualTo(288));
  128. }
  129. [Test]
  130. public void PaddingBottomAppliesUnitConversion()
  131. {
  132. var container = EmptyContainer.Create();
  133. container.PaddingBottom(5, Unit.Inch);
  134. var rowContainer = container.Child as Padding;
  135. Assert.That(rowContainer?.Bottom, Is.EqualTo(360));
  136. }
  137. [Test]
  138. public void PaddingVerticalAppliesUnitConversion()
  139. {
  140. var container = EmptyContainer.Create();
  141. container.PaddingVertical(6, Unit.Inch);
  142. var rowContainer = container.Child as Padding;
  143. Assert.That(rowContainer?.Top, Is.EqualTo(432));
  144. Assert.That(rowContainer?.Bottom, Is.EqualTo(432));
  145. }
  146. [Test]
  147. public void PaddingHorizontalAppliesUnitConversion()
  148. {
  149. var container = EmptyContainer.Create();
  150. container.PaddingHorizontal(7, Unit.Inch);
  151. var rowContainer = container.Child as Padding;
  152. Assert.That(rowContainer?.Left, Is.EqualTo(504));
  153. Assert.That(rowContainer?.Right, Is.EqualTo(504));
  154. }
  155. [Test]
  156. public void PaddingAllAppliesUnitConversion()
  157. {
  158. var container = EmptyContainer.Create();
  159. container.Padding(8, Unit.Inch);
  160. var rowContainer = container.Child as Padding;
  161. Assert.That(rowContainer?.Left, Is.EqualTo(576));
  162. Assert.That(rowContainer?.Top, Is.EqualTo(576));
  163. Assert.That(rowContainer?.Right, Is.EqualTo(576));
  164. Assert.That(rowContainer?.Bottom, Is.EqualTo(576));
  165. }
  166. #endregion
  167. [Test]
  168. public void PaddingAppliesCorrectValues()
  169. {
  170. var container = EmptyContainer.Create();
  171. container
  172. .PaddingLeft(20)
  173. .PaddingTop(25)
  174. .PaddingRight(30)
  175. .PaddingBottom(35)
  176. .PaddingVertical(-5)
  177. .PaddingHorizontal(-15)
  178. .Padding(10);
  179. var rowContainer = container.Child as Padding;
  180. Assert.That(rowContainer?.Left, Is.EqualTo(15));
  181. Assert.That(rowContainer?.Top, Is.EqualTo(30));
  182. Assert.That(rowContainer?.Right, Is.EqualTo(25));
  183. Assert.That(rowContainer?.Bottom, Is.EqualTo(40));
  184. }
  185. }
  186. }