|
@@ -1,4 +1,5 @@
|
|
|
-using NUnit.Framework;
|
|
|
|
|
|
|
+using System.Linq;
|
|
|
|
|
+using NUnit.Framework;
|
|
|
using QuestPDF.Drawing;
|
|
using QuestPDF.Drawing;
|
|
|
using QuestPDF.Elements;
|
|
using QuestPDF.Elements;
|
|
|
using QuestPDF.Fluent;
|
|
using QuestPDF.Fluent;
|
|
@@ -8,19 +9,40 @@ using QuestPDF.UnitTests.TestEngine;
|
|
|
namespace QuestPDF.UnitTests
|
|
namespace QuestPDF.UnitTests
|
|
|
{
|
|
{
|
|
|
[TestFixture]
|
|
[TestFixture]
|
|
|
- public class columnTests
|
|
|
|
|
|
|
+ public class ColumnTests
|
|
|
{
|
|
{
|
|
|
#region Measure
|
|
#region Measure
|
|
|
|
|
|
|
|
|
|
+ private Column CreateColumnWithTwoItems(TestPlan testPlan)
|
|
|
|
|
+ {
|
|
|
|
|
+ return new Column
|
|
|
|
|
+ {
|
|
|
|
|
+ Items =
|
|
|
|
|
+ {
|
|
|
|
|
+ new ColumnItem
|
|
|
|
|
+ {
|
|
|
|
|
+ Child = testPlan.CreateChild("first")
|
|
|
|
|
+ },
|
|
|
|
|
+ new ColumnItem
|
|
|
|
|
+ {
|
|
|
|
|
+ Child = testPlan.CreateChild("second")
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ };
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private Column CreateColumnWithTwoItemsWhereFirstIsFullyRendered(TestPlan testPlan)
|
|
|
|
|
+ {
|
|
|
|
|
+ var column = CreateColumnWithTwoItems(testPlan);
|
|
|
|
|
+ column.Items.First().IsRendered = true;
|
|
|
|
|
+ return column;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
[Test]
|
|
[Test]
|
|
|
public void Measure_ReturnsWrap_WhenFirstChildWraps()
|
|
public void Measure_ReturnsWrap_WhenFirstChildWraps()
|
|
|
{
|
|
{
|
|
|
TestPlan
|
|
TestPlan
|
|
|
- .For(x => new Binarycolumn
|
|
|
|
|
- {
|
|
|
|
|
- First = x.CreateChild("first"),
|
|
|
|
|
- Second = x.CreateChild("second")
|
|
|
|
|
- })
|
|
|
|
|
|
|
+ .For(CreateColumnWithTwoItems)
|
|
|
.MeasureElement(new Size(400, 300))
|
|
.MeasureElement(new Size(400, 300))
|
|
|
.ExpectChildMeasure("first", new Size(400, 300), SpacePlan.Wrap())
|
|
.ExpectChildMeasure("first", new Size(400, 300), SpacePlan.Wrap())
|
|
|
.CheckMeasureResult(SpacePlan.Wrap());
|
|
.CheckMeasureResult(SpacePlan.Wrap());
|
|
@@ -30,11 +52,7 @@ namespace QuestPDF.UnitTests
|
|
|
public void Measure_ReturnsPartialRender_WhenFirstChildReturnsPartialRender()
|
|
public void Measure_ReturnsPartialRender_WhenFirstChildReturnsPartialRender()
|
|
|
{
|
|
{
|
|
|
TestPlan
|
|
TestPlan
|
|
|
- .For(x => new Binarycolumn
|
|
|
|
|
- {
|
|
|
|
|
- First = x.CreateChild("first"),
|
|
|
|
|
- Second = x.CreateChild("second")
|
|
|
|
|
- })
|
|
|
|
|
|
|
+ .For(CreateColumnWithTwoItems)
|
|
|
.MeasureElement(new Size(400, 300))
|
|
.MeasureElement(new Size(400, 300))
|
|
|
.ExpectChildMeasure("first", new Size(400, 300), SpacePlan.PartialRender(300, 200))
|
|
.ExpectChildMeasure("first", new Size(400, 300), SpacePlan.PartialRender(300, 200))
|
|
|
.CheckMeasureResult(SpacePlan.PartialRender(300, 200));
|
|
.CheckMeasureResult(SpacePlan.PartialRender(300, 200));
|
|
@@ -44,11 +62,7 @@ namespace QuestPDF.UnitTests
|
|
|
public void Measure_ReturnsPartialRender_WhenSecondChildWraps()
|
|
public void Measure_ReturnsPartialRender_WhenSecondChildWraps()
|
|
|
{
|
|
{
|
|
|
TestPlan
|
|
TestPlan
|
|
|
- .For(x => new Binarycolumn
|
|
|
|
|
- {
|
|
|
|
|
- First = x.CreateChild("first"),
|
|
|
|
|
- Second = x.CreateChild("second")
|
|
|
|
|
- })
|
|
|
|
|
|
|
+ .For(CreateColumnWithTwoItems)
|
|
|
.MeasureElement(new Size(400, 300))
|
|
.MeasureElement(new Size(400, 300))
|
|
|
.ExpectChildMeasure("first", new Size(400, 300), SpacePlan.FullRender(200, 100))
|
|
.ExpectChildMeasure("first", new Size(400, 300), SpacePlan.FullRender(200, 100))
|
|
|
.ExpectChildMeasure("second", new Size(400, 200), SpacePlan.Wrap())
|
|
.ExpectChildMeasure("second", new Size(400, 200), SpacePlan.Wrap())
|
|
@@ -59,11 +73,7 @@ namespace QuestPDF.UnitTests
|
|
|
public void Measure_ReturnsPartialRender_WhenSecondChildReturnsPartialRender()
|
|
public void Measure_ReturnsPartialRender_WhenSecondChildReturnsPartialRender()
|
|
|
{
|
|
{
|
|
|
TestPlan
|
|
TestPlan
|
|
|
- .For(x => new Binarycolumn
|
|
|
|
|
- {
|
|
|
|
|
- First = x.CreateChild("first"),
|
|
|
|
|
- Second = x.CreateChild("second")
|
|
|
|
|
- })
|
|
|
|
|
|
|
+ .For(CreateColumnWithTwoItems)
|
|
|
.MeasureElement(new Size(400, 300))
|
|
.MeasureElement(new Size(400, 300))
|
|
|
.ExpectChildMeasure("first", new Size(400, 300), SpacePlan.FullRender(200, 100))
|
|
.ExpectChildMeasure("first", new Size(400, 300), SpacePlan.FullRender(200, 100))
|
|
|
.ExpectChildMeasure("second", new Size(400, 200), SpacePlan.PartialRender(300, 150))
|
|
.ExpectChildMeasure("second", new Size(400, 200), SpacePlan.PartialRender(300, 150))
|
|
@@ -74,33 +84,13 @@ namespace QuestPDF.UnitTests
|
|
|
public void Measure_ReturnsFullRender_WhenSecondChildReturnsFullRender()
|
|
public void Measure_ReturnsFullRender_WhenSecondChildReturnsFullRender()
|
|
|
{
|
|
{
|
|
|
TestPlan
|
|
TestPlan
|
|
|
- .For(x => new Binarycolumn
|
|
|
|
|
- {
|
|
|
|
|
- First = x.CreateChild("first"),
|
|
|
|
|
- Second = x.CreateChild("second")
|
|
|
|
|
- })
|
|
|
|
|
|
|
+ .For(CreateColumnWithTwoItems)
|
|
|
.MeasureElement(new Size(400, 300))
|
|
.MeasureElement(new Size(400, 300))
|
|
|
.ExpectChildMeasure("first", new Size(400, 300), SpacePlan.FullRender(200, 100))
|
|
.ExpectChildMeasure("first", new Size(400, 300), SpacePlan.FullRender(200, 100))
|
|
|
.ExpectChildMeasure("second", new Size(400, 200), SpacePlan.FullRender(100, 50))
|
|
.ExpectChildMeasure("second", new Size(400, 200), SpacePlan.FullRender(100, 50))
|
|
|
.CheckMeasureResult(SpacePlan.FullRender(200, 150));
|
|
.CheckMeasureResult(SpacePlan.FullRender(200, 150));
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
- [Test]
|
|
|
|
|
- public void Measure_UsesEmpty_WhenFirstChildIsRendered()
|
|
|
|
|
- {
|
|
|
|
|
- TestPlan
|
|
|
|
|
- .For(x => new Binarycolumn
|
|
|
|
|
- {
|
|
|
|
|
- First = x.CreateChild("first"),
|
|
|
|
|
- Second = x.CreateChild("second"),
|
|
|
|
|
-
|
|
|
|
|
- IsFirstRendered = true
|
|
|
|
|
- })
|
|
|
|
|
- .MeasureElement(new Size(400, 300))
|
|
|
|
|
- .ExpectChildMeasure("second", new Size(400, 300), SpacePlan.FullRender(200, 300))
|
|
|
|
|
- .CheckMeasureResult(SpacePlan.FullRender(200, 300));
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
#endregion
|
|
#endregion
|
|
|
|
|
|
|
|
#region Draw
|
|
#region Draw
|
|
@@ -109,11 +99,7 @@ namespace QuestPDF.UnitTests
|
|
|
public void Draw_WhenFirstChildWraps()
|
|
public void Draw_WhenFirstChildWraps()
|
|
|
{
|
|
{
|
|
|
TestPlan
|
|
TestPlan
|
|
|
- .For(x => new Binarycolumn
|
|
|
|
|
- {
|
|
|
|
|
- First = x.CreateChild("first"),
|
|
|
|
|
- Second = x.CreateChild("second")
|
|
|
|
|
- })
|
|
|
|
|
|
|
+ .For(CreateColumnWithTwoItems)
|
|
|
.DrawElement(new Size(400, 300))
|
|
.DrawElement(new Size(400, 300))
|
|
|
.ExpectChildMeasure("first", new Size(400, 300), SpacePlan.Wrap())
|
|
.ExpectChildMeasure("first", new Size(400, 300), SpacePlan.Wrap())
|
|
|
.CheckDrawResult();
|
|
.CheckDrawResult();
|
|
@@ -123,14 +109,12 @@ namespace QuestPDF.UnitTests
|
|
|
public void Draw_WhenFirstChildPartiallyRenders()
|
|
public void Draw_WhenFirstChildPartiallyRenders()
|
|
|
{
|
|
{
|
|
|
TestPlan
|
|
TestPlan
|
|
|
- .For(x => new Binarycolumn
|
|
|
|
|
- {
|
|
|
|
|
- First = x.CreateChild("first"),
|
|
|
|
|
- Second = x.CreateChild("second")
|
|
|
|
|
- })
|
|
|
|
|
|
|
+ .For(CreateColumnWithTwoItems)
|
|
|
.DrawElement(new Size(400, 300))
|
|
.DrawElement(new Size(400, 300))
|
|
|
.ExpectChildMeasure("first", new Size(400, 300), SpacePlan.PartialRender(200, 100))
|
|
.ExpectChildMeasure("first", new Size(400, 300), SpacePlan.PartialRender(200, 100))
|
|
|
|
|
+ .ExpectCanvasTranslate(0, 0)
|
|
|
.ExpectChildDraw("first", new Size(400, 100))
|
|
.ExpectChildDraw("first", new Size(400, 100))
|
|
|
|
|
+ .ExpectCanvasTranslate(0, 0)
|
|
|
.CheckDrawResult();
|
|
.CheckDrawResult();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -138,15 +122,13 @@ namespace QuestPDF.UnitTests
|
|
|
public void Draw_WhenFirstChildFullyRenders_AndSecondChildWraps()
|
|
public void Draw_WhenFirstChildFullyRenders_AndSecondChildWraps()
|
|
|
{
|
|
{
|
|
|
TestPlan
|
|
TestPlan
|
|
|
- .For(x => new Binarycolumn
|
|
|
|
|
- {
|
|
|
|
|
- First = x.CreateChild("first"),
|
|
|
|
|
- Second = x.CreateChild("second")
|
|
|
|
|
- })
|
|
|
|
|
|
|
+ .For(CreateColumnWithTwoItems)
|
|
|
.DrawElement(new Size(400, 300))
|
|
.DrawElement(new Size(400, 300))
|
|
|
.ExpectChildMeasure("first", new Size(400, 300), SpacePlan.FullRender(200, 100))
|
|
.ExpectChildMeasure("first", new Size(400, 300), SpacePlan.FullRender(200, 100))
|
|
|
- .ExpectChildDraw("first", new Size(400, 100))
|
|
|
|
|
.ExpectChildMeasure("second", new Size(400, 200), SpacePlan.Wrap())
|
|
.ExpectChildMeasure("second", new Size(400, 200), SpacePlan.Wrap())
|
|
|
|
|
+ .ExpectCanvasTranslate(0, 0)
|
|
|
|
|
+ .ExpectChildDraw("first", new Size(400, 100))
|
|
|
|
|
+ .ExpectCanvasTranslate(0, 0)
|
|
|
.CheckDrawResult();
|
|
.CheckDrawResult();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -154,15 +136,13 @@ namespace QuestPDF.UnitTests
|
|
|
public void Draw_WhenFirstChildFullyRenders_AndSecondChildPartiallyRenders()
|
|
public void Draw_WhenFirstChildFullyRenders_AndSecondChildPartiallyRenders()
|
|
|
{
|
|
{
|
|
|
TestPlan
|
|
TestPlan
|
|
|
- .For(x => new Binarycolumn
|
|
|
|
|
- {
|
|
|
|
|
- First = x.CreateChild("first"),
|
|
|
|
|
- Second = x.CreateChild("second")
|
|
|
|
|
- })
|
|
|
|
|
|
|
+ .For(CreateColumnWithTwoItems)
|
|
|
.DrawElement(new Size(400, 300))
|
|
.DrawElement(new Size(400, 300))
|
|
|
.ExpectChildMeasure("first", new Size(400, 300), SpacePlan.FullRender(200, 100))
|
|
.ExpectChildMeasure("first", new Size(400, 300), SpacePlan.FullRender(200, 100))
|
|
|
- .ExpectChildDraw("first", new Size(400, 100))
|
|
|
|
|
.ExpectChildMeasure("second", new Size(400, 200), SpacePlan.PartialRender(250, 150))
|
|
.ExpectChildMeasure("second", new Size(400, 200), SpacePlan.PartialRender(250, 150))
|
|
|
|
|
+ .ExpectCanvasTranslate(0, 0)
|
|
|
|
|
+ .ExpectChildDraw("first", new Size(400, 100))
|
|
|
|
|
+ .ExpectCanvasTranslate(0, 0)
|
|
|
.ExpectCanvasTranslate(0, 100)
|
|
.ExpectCanvasTranslate(0, 100)
|
|
|
.ExpectChildDraw("second", new Size(400, 150))
|
|
.ExpectChildDraw("second", new Size(400, 150))
|
|
|
.ExpectCanvasTranslate(0, -100)
|
|
.ExpectCanvasTranslate(0, -100)
|
|
@@ -173,15 +153,13 @@ namespace QuestPDF.UnitTests
|
|
|
public void Draw_WhenFirstChildFullyRenders_AndSecondChildFullyRenders()
|
|
public void Draw_WhenFirstChildFullyRenders_AndSecondChildFullyRenders()
|
|
|
{
|
|
{
|
|
|
TestPlan
|
|
TestPlan
|
|
|
- .For(x => new Binarycolumn
|
|
|
|
|
- {
|
|
|
|
|
- First = x.CreateChild("first"),
|
|
|
|
|
- Second = x.CreateChild("second")
|
|
|
|
|
- })
|
|
|
|
|
|
|
+ .For(CreateColumnWithTwoItems)
|
|
|
.DrawElement(new Size(400, 300))
|
|
.DrawElement(new Size(400, 300))
|
|
|
.ExpectChildMeasure("first", new Size(400, 300), SpacePlan.FullRender(200, 100))
|
|
.ExpectChildMeasure("first", new Size(400, 300), SpacePlan.FullRender(200, 100))
|
|
|
- .ExpectChildDraw("first", new Size(400, 100))
|
|
|
|
|
.ExpectChildMeasure("second", new Size(400, 200), SpacePlan.FullRender(250, 150))
|
|
.ExpectChildMeasure("second", new Size(400, 200), SpacePlan.FullRender(250, 150))
|
|
|
|
|
+ .ExpectCanvasTranslate(0, 0)
|
|
|
|
|
+ .ExpectChildDraw("first", new Size(400, 100))
|
|
|
|
|
+ .ExpectCanvasTranslate(0, 0)
|
|
|
.ExpectCanvasTranslate(0, 100)
|
|
.ExpectCanvasTranslate(0, 100)
|
|
|
.ExpectChildDraw("second", new Size(400, 150))
|
|
.ExpectChildDraw("second", new Size(400, 150))
|
|
|
.ExpectCanvasTranslate(0, -100)
|
|
.ExpectCanvasTranslate(0, -100)
|
|
@@ -192,19 +170,13 @@ namespace QuestPDF.UnitTests
|
|
|
public void Draw_UsesEmpty_WhenFirstChildIsRendered()
|
|
public void Draw_UsesEmpty_WhenFirstChildIsRendered()
|
|
|
{
|
|
{
|
|
|
TestPlan
|
|
TestPlan
|
|
|
- .For(x => new Binarycolumn
|
|
|
|
|
- {
|
|
|
|
|
- First = x.CreateChild("first"),
|
|
|
|
|
- Second = x.CreateChild("second"),
|
|
|
|
|
-
|
|
|
|
|
- IsFirstRendered = true
|
|
|
|
|
- })
|
|
|
|
|
|
|
+ .For(CreateColumnWithTwoItemsWhereFirstIsFullyRendered)
|
|
|
.DrawElement(new Size(400, 300))
|
|
.DrawElement(new Size(400, 300))
|
|
|
.ExpectChildMeasure("second", new Size(400, 300), SpacePlan.PartialRender(200, 300))
|
|
.ExpectChildMeasure("second", new Size(400, 300), SpacePlan.PartialRender(200, 300))
|
|
|
.ExpectCanvasTranslate(0, 0)
|
|
.ExpectCanvasTranslate(0, 0)
|
|
|
.ExpectChildDraw("second", new Size(400, 300))
|
|
.ExpectChildDraw("second", new Size(400, 300))
|
|
|
.ExpectCanvasTranslate(0, 0)
|
|
.ExpectCanvasTranslate(0, 0)
|
|
|
- .CheckState<Binarycolumn>(x => x.IsFirstRendered)
|
|
|
|
|
|
|
+ .CheckState<Column>(x => x.Items.First().IsRendered)
|
|
|
.CheckDrawResult();
|
|
.CheckDrawResult();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -212,97 +184,14 @@ namespace QuestPDF.UnitTests
|
|
|
public void Draw_TogglesFirstRenderedFlag_WhenSecondFullyRenders()
|
|
public void Draw_TogglesFirstRenderedFlag_WhenSecondFullyRenders()
|
|
|
{
|
|
{
|
|
|
TestPlan
|
|
TestPlan
|
|
|
- .For(x => new Binarycolumn
|
|
|
|
|
- {
|
|
|
|
|
- First = x.CreateChild("first"),
|
|
|
|
|
- Second = x.CreateChild("second"),
|
|
|
|
|
-
|
|
|
|
|
- IsFirstRendered = true
|
|
|
|
|
- })
|
|
|
|
|
|
|
+ .For(CreateColumnWithTwoItemsWhereFirstIsFullyRendered)
|
|
|
.DrawElement(new Size(400, 300))
|
|
.DrawElement(new Size(400, 300))
|
|
|
.ExpectChildMeasure("second", new Size(400, 300), SpacePlan.FullRender(200, 300))
|
|
.ExpectChildMeasure("second", new Size(400, 300), SpacePlan.FullRender(200, 300))
|
|
|
.ExpectCanvasTranslate(0, 0)
|
|
.ExpectCanvasTranslate(0, 0)
|
|
|
.ExpectChildDraw("second", new Size(400, 300))
|
|
.ExpectChildDraw("second", new Size(400, 300))
|
|
|
.ExpectCanvasTranslate(0, 0)
|
|
.ExpectCanvasTranslate(0, 0)
|
|
|
.CheckDrawResult()
|
|
.CheckDrawResult()
|
|
|
- .CheckState<Binarycolumn>(x => !x.IsFirstRendered);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- #endregion
|
|
|
|
|
-
|
|
|
|
|
- #region Structure
|
|
|
|
|
-
|
|
|
|
|
- [Test]
|
|
|
|
|
- public void Structure_Simple()
|
|
|
|
|
- {
|
|
|
|
|
- // arrange
|
|
|
|
|
- var childA = TestPlan.CreateUniqueElement();
|
|
|
|
|
- var childB = TestPlan.CreateUniqueElement();
|
|
|
|
|
- var childC = TestPlan.CreateUniqueElement();
|
|
|
|
|
- var childD = TestPlan.CreateUniqueElement();
|
|
|
|
|
- var childE = TestPlan.CreateUniqueElement();
|
|
|
|
|
-
|
|
|
|
|
- const int spacing = 20;
|
|
|
|
|
-
|
|
|
|
|
- // act
|
|
|
|
|
- var structure = new Container();
|
|
|
|
|
-
|
|
|
|
|
- structure.Column(column =>
|
|
|
|
|
- {
|
|
|
|
|
- column.Spacing(spacing);
|
|
|
|
|
-
|
|
|
|
|
- column.Item().Element(childA);
|
|
|
|
|
- column.Item().Element(childB);
|
|
|
|
|
- column.Item().Element(childC);
|
|
|
|
|
- column.Item().Element(childD);
|
|
|
|
|
- column.Item().Element(childE);
|
|
|
|
|
- });
|
|
|
|
|
-
|
|
|
|
|
- // assert
|
|
|
|
|
- var expected = new Padding
|
|
|
|
|
- {
|
|
|
|
|
- Bottom = -spacing,
|
|
|
|
|
-
|
|
|
|
|
- Child = new Binarycolumn
|
|
|
|
|
- {
|
|
|
|
|
- First = new Binarycolumn
|
|
|
|
|
- {
|
|
|
|
|
- First = new Padding
|
|
|
|
|
- {
|
|
|
|
|
- Bottom = spacing,
|
|
|
|
|
- Child = childA
|
|
|
|
|
- },
|
|
|
|
|
- Second = new Padding
|
|
|
|
|
- {
|
|
|
|
|
- Bottom = spacing,
|
|
|
|
|
- Child = childB
|
|
|
|
|
- }
|
|
|
|
|
- },
|
|
|
|
|
- Second = new Binarycolumn
|
|
|
|
|
- {
|
|
|
|
|
- First = new Padding
|
|
|
|
|
- {
|
|
|
|
|
- Bottom = spacing,
|
|
|
|
|
- Child = childC
|
|
|
|
|
- },
|
|
|
|
|
- Second = new Binarycolumn
|
|
|
|
|
- {
|
|
|
|
|
- First = new Padding
|
|
|
|
|
- {
|
|
|
|
|
- Bottom = spacing,
|
|
|
|
|
- Child = childD
|
|
|
|
|
- },
|
|
|
|
|
- Second = new Padding
|
|
|
|
|
- {
|
|
|
|
|
- Bottom = spacing,
|
|
|
|
|
- Child = childE
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- };
|
|
|
|
|
-
|
|
|
|
|
- TestPlan.CompareOperations(structure, expected);
|
|
|
|
|
|
|
+ .CheckState<Column>(x => !x.Items.First().IsRendered);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
#endregion
|
|
#endregion
|