BorderTests.cs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. using NUnit.Framework;
  2. using QuestPDF.Drawing.SpacePlan;
  3. using QuestPDF.Elements;
  4. using QuestPDF.Helpers;
  5. using QuestPDF.Infrastructure;
  6. using QuestPDF.UnitTests.TestEngine;
  7. namespace QuestPDF.UnitTests
  8. {
  9. [TestFixture]
  10. public class BorderTests
  11. {
  12. [Test]
  13. public void Measure_ShouldHandleNullChild() => new Border().MeasureWithoutChild();
  14. [Test]
  15. public void ComponentShouldNotAffectLayout()
  16. {
  17. TestPlan
  18. .For(x => new Border
  19. {
  20. Top = 10,
  21. Right = 20,
  22. Bottom = 30,
  23. Left = 40,
  24. Child = x.CreateChild()
  25. })
  26. .MeasureElement(new Size(400, 300))
  27. .ExpectChildMeasure(expectedInput: new Size(400, 300), returns: new FullRender(new Size(100, 50)))
  28. .CheckMeasureResult( new FullRender(new Size(100, 50)));
  29. }
  30. [Test]
  31. public void Draw_HorizontalRight_VerticalTop()
  32. {
  33. TestPlan
  34. .For(x => new Border
  35. {
  36. Top = 10,
  37. Right = 20,
  38. Bottom = 30,
  39. Left = 40,
  40. Color = Colors.Red.Medium,
  41. Child = x.CreateChild()
  42. })
  43. .DrawElement(new Size(400, 300))
  44. .ExpectChildDraw(new Size(400, 300))
  45. .ExpectCanvasDrawRectangle(new Position(-20, -5), new Size(430, 10), Colors.Red.Medium) // top
  46. .ExpectCanvasDrawRectangle(new Position(-20, -5), new Size(40, 320), Colors.Red.Medium) // left
  47. .ExpectCanvasDrawRectangle(new Position(-20, 285), new Size(430, 30), Colors.Red.Medium) // bottom
  48. .ExpectCanvasDrawRectangle(new Position(390, -5), new Size(20, 320), Colors.Red.Medium) // right
  49. .ExpectChildDraw(new Size(400, 300))
  50. .CheckDrawResult();
  51. }
  52. }
  53. }