| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235 |
- using NUnit.Framework;
- using QuestPDF.Drawing.SpacePlan;
- using QuestPDF.Elements;
- using QuestPDF.Infrastructure;
- using QuestPDF.UnitTests.TestEngine;
- namespace QuestPDF.UnitTests
- {
- [TestFixture]
- public class StackTests
- {
- #region Measure
- [Test]
- public void Measure_ReturnsWrap_WhenFirstChildWraps()
- {
- TestPlan
- .For(x => new SimpleStack
- {
- First = x.CreateChild("first"),
- Second = x.CreateChild("second")
- })
- .MeasureElement(new Size(400, 300))
- .ExpectChildMeasure("first", new Size(400, 300), new Wrap())
- .CheckMeasureResult(new Wrap());
- }
-
- [Test]
- public void Measure_ReturnsPartialRender_WhenFirstChildReturnsPartialRender()
- {
- TestPlan
- .For(x => new SimpleStack
- {
- First = x.CreateChild("first"),
- Second = x.CreateChild("second")
- })
- .MeasureElement(new Size(400, 300))
- .ExpectChildMeasure("first", new Size(400, 300), new PartialRender(300, 200))
- .CheckMeasureResult(new PartialRender(300, 200));
- }
-
- [Test]
- public void Measure_ReturnsPartialRender_WhenSecondChildWraps()
- {
- TestPlan
- .For(x => new SimpleStack
- {
- First = x.CreateChild("first"),
- Second = x.CreateChild("second")
- })
- .MeasureElement(new Size(400, 300))
- .ExpectChildMeasure("first", new Size(400, 300), new FullRender(200, 100))
- .ExpectChildMeasure("second", new Size(400, 200), new Wrap())
- .CheckMeasureResult(new PartialRender(200, 100));
- }
-
- [Test]
- public void Measure_ReturnsPartialRender_WhenSecondChildReturnsPartialRender()
- {
- TestPlan
- .For(x => new SimpleStack
- {
- First = x.CreateChild("first"),
- Second = x.CreateChild("second")
- })
- .MeasureElement(new Size(400, 300))
- .ExpectChildMeasure("first", new Size(400, 300), new FullRender(200, 100))
- .ExpectChildMeasure("second", new Size(400, 200), new PartialRender(300, 150))
- .CheckMeasureResult(new PartialRender(300, 250));
- }
-
- [Test]
- public void Measure_ReturnsFullRender_WhenSecondChildReturnsFullRender()
- {
- TestPlan
- .For(x => new SimpleStack
- {
- First = x.CreateChild("first"),
- Second = x.CreateChild("second")
- })
- .MeasureElement(new Size(400, 300))
- .ExpectChildMeasure("first", new Size(400, 300), new FullRender(200, 100))
- .ExpectChildMeasure("second", new Size(400, 200), new FullRender(100, 50))
- .CheckMeasureResult(new FullRender(200, 150));
- }
-
- [Test]
- public void Measure_UsesEmpty_WhenFirstChildIsRendered()
- {
- TestPlan
- .For(x => new SimpleStack
- {
- First = x.CreateChild("first"),
- Second = x.CreateChild("second"),
-
- IsFirstRendered = true
- })
- .MeasureElement(new Size(400, 300))
- .ExpectChildMeasure("second", new Size(400, 300), new FullRender(200, 300))
- .CheckMeasureResult(new FullRender(200, 300));
- }
-
- #endregion
-
- #region Draw
-
- [Test]
- public void Draw_WhenFirstChildWraps()
- {
- TestPlan
- .For(x => new SimpleStack
- {
- First = x.CreateChild("first"),
- Second = x.CreateChild("second")
- })
- .DrawElement(new Size(400, 300))
- .ExpectChildMeasure("first", new Size(400, 300), new Wrap())
- .CheckDrawResult();
- }
-
- [Test]
- public void Draw_WhenFirstChildPartiallyRenders()
- {
- TestPlan
- .For(x => new SimpleStack
- {
- First = x.CreateChild("first"),
- Second = x.CreateChild("second")
- })
- .DrawElement(new Size(400, 300))
- .ExpectChildMeasure("first", new Size(400, 300), new PartialRender(200, 100))
- .ExpectChildDraw("first", new Size(400, 100))
- .CheckDrawResult();
- }
-
- [Test]
- public void Draw_WhenFirstChildFullyRenders_AndSecondChildWraps()
- {
- TestPlan
- .For(x => new SimpleStack
- {
- First = x.CreateChild("first"),
- Second = x.CreateChild("second")
- })
- .DrawElement(new Size(400, 300))
- .ExpectChildMeasure("first", new Size(400, 300), new FullRender(200, 100))
- .ExpectChildDraw("first", new Size(400, 100))
- .ExpectChildMeasure("second", new Size(400, 200), new Wrap())
- .CheckDrawResult();
- }
-
- [Test]
- public void Draw_WhenFirstChildFullyRenders_AndSecondChildPartiallyRenders()
- {
- TestPlan
- .For(x => new SimpleStack
- {
- First = x.CreateChild("first"),
- Second = x.CreateChild("second")
- })
- .DrawElement(new Size(400, 300))
- .ExpectChildMeasure("first", new Size(400, 300), new FullRender(200, 100))
- .ExpectChildDraw("first", new Size(400, 100))
- .ExpectChildMeasure("second", new Size(400, 200), new PartialRender(250, 150))
- .ExpectCanvasTranslate(0, 100)
- .ExpectChildDraw("second", new Size(400, 150))
- .ExpectCanvasTranslate(0, -100)
- .CheckDrawResult();
- }
-
- [Test]
- public void Draw_WhenFirstChildFullyRenders_AndSecondChildFullyRenders()
- {
- TestPlan
- .For(x => new SimpleStack
- {
- First = x.CreateChild("first"),
- Second = x.CreateChild("second")
- })
- .DrawElement(new Size(400, 300))
- .ExpectChildMeasure("first", new Size(400, 300), new FullRender(200, 100))
- .ExpectChildDraw("first", new Size(400, 100))
- .ExpectChildMeasure("second", new Size(400, 200), new FullRender(250, 150))
- .ExpectCanvasTranslate(0, 100)
- .ExpectChildDraw("second", new Size(400, 150))
- .ExpectCanvasTranslate(0, -100)
- .CheckDrawResult();
- }
-
- [Test]
- public void Draw_UsesEmpty_WhenFirstChildIsRendered()
- {
- TestPlan
- .For(x => new SimpleStack
- {
- First = x.CreateChild("first"),
- Second = x.CreateChild("second"),
-
- IsFirstRendered = true
- })
- .DrawElement(new Size(400, 300))
- .ExpectChildMeasure("second", new Size(400, 300), new PartialRender(200, 300))
- .ExpectCanvasTranslate(0, 0)
- .ExpectChildDraw("second", new Size(400, 300))
- .ExpectCanvasTranslate(0, 0)
- .CheckState<SimpleStack>(x => x.IsFirstRendered)
- .CheckDrawResult();
- }
-
- [Test]
- public void Draw_TogglesFirstRenderedFlag_WhenSecondFullyRenders()
- {
- TestPlan
- .For(x => new SimpleStack
- {
- First = x.CreateChild("first"),
- Second = x.CreateChild("second"),
-
- IsFirstRendered = true
- })
- .DrawElement(new Size(400, 300))
- .ExpectChildMeasure("second", new Size(400, 300), new FullRender(200, 300))
- .ExpectCanvasTranslate(0, 0)
- .ExpectChildDraw("second", new Size(400, 300))
- .ExpectCanvasTranslate(0, 0)
- .CheckDrawResult()
- .CheckState<SimpleStack>(x => !x.IsFirstRendered);
- }
-
- #endregion
-
- // TODO: add tests for the spacing property
- // TODO: add tests for the tree builder method
- }
- }
|