251 lines
7.6 KiB
C#
251 lines
7.6 KiB
C#
using FluentAssertions;
|
|
using NUnit.Framework;
|
|
using QuestPDF.Elements;
|
|
using QuestPDF.Fluent;
|
|
using QuestPDF.UnitTests.TestEngine;
|
|
|
|
namespace QuestPDF.UnitTests
|
|
{
|
|
[TestFixture]
|
|
public class GridTests
|
|
{
|
|
#region Alignment
|
|
|
|
[Test]
|
|
public void AlignLeft()
|
|
{
|
|
// arrange
|
|
var structure = new Container();
|
|
|
|
var childA = TestPlan.CreateUniqueElement();
|
|
var childB = TestPlan.CreateUniqueElement();
|
|
var childC = TestPlan.CreateUniqueElement();
|
|
var childD = TestPlan.CreateUniqueElement();
|
|
var childE = TestPlan.CreateUniqueElement();
|
|
|
|
// act
|
|
structure
|
|
.Grid(grid =>
|
|
{
|
|
grid.AlignLeft();
|
|
|
|
grid.Item(6).Element(childA);
|
|
grid.Item(4).Element(childB);
|
|
grid.Item(4).Element(childC);
|
|
grid.Item(2).Element(childD);
|
|
grid.Item(8).Element(childE);
|
|
});
|
|
|
|
// assert
|
|
var expected = new Container();
|
|
|
|
expected.Column(column =>
|
|
{
|
|
column.Item().Row(row =>
|
|
{
|
|
row.RelativeItem(6).Element(childA);
|
|
row.RelativeItem(4).Element(childB);
|
|
row.RelativeItem(2);
|
|
});
|
|
|
|
column.Item().Row(row =>
|
|
{
|
|
row.RelativeItem(4).Element(childC);
|
|
row.RelativeItem(2).Element(childD);
|
|
row.RelativeItem(6);
|
|
});
|
|
|
|
column.Item().Row(row =>
|
|
{
|
|
row.RelativeItem(8).Element(childE);
|
|
row.RelativeItem(4);
|
|
});
|
|
});
|
|
|
|
TestPlan.CompareOperations(structure, expected);
|
|
}
|
|
|
|
[Test]
|
|
public void AlignCenter()
|
|
{
|
|
// arrange
|
|
var structure = new Container();
|
|
|
|
var childA = TestPlan.CreateUniqueElement();
|
|
var childB = TestPlan.CreateUniqueElement();
|
|
var childC = TestPlan.CreateUniqueElement();
|
|
var childD = TestPlan.CreateUniqueElement();
|
|
var childE = TestPlan.CreateUniqueElement();
|
|
|
|
// act
|
|
structure
|
|
.Grid(grid =>
|
|
{
|
|
grid.AlignCenter();
|
|
|
|
grid.Item(6).Element(childA);
|
|
grid.Item(4).Element(childB);
|
|
grid.Item(4).Element(childC);
|
|
grid.Item(2).Element(childD);
|
|
grid.Item(8).Element(childE);
|
|
});
|
|
|
|
// assert
|
|
var expected = new Container();
|
|
|
|
expected.Column(column =>
|
|
{
|
|
column.Item().Row(row =>
|
|
{
|
|
row.RelativeItem(1);
|
|
row.RelativeItem(6).Element(childA);
|
|
row.RelativeItem(4).Element(childB);
|
|
row.RelativeItem(1);
|
|
});
|
|
|
|
column.Item().Row(row =>
|
|
{
|
|
row.RelativeItem(3);
|
|
row.RelativeItem(4).Element(childC);
|
|
row.RelativeItem(2).Element(childD);
|
|
row.RelativeItem(3);
|
|
});
|
|
|
|
column.Item().Row(row =>
|
|
{
|
|
row.RelativeItem(2);
|
|
row.RelativeItem(8).Element(childE);
|
|
row.RelativeItem(2);
|
|
});
|
|
});
|
|
|
|
TestPlan.CompareOperations(structure, expected);
|
|
}
|
|
|
|
[Test]
|
|
public void AlignRight()
|
|
{
|
|
// arrange
|
|
var structure = new Container();
|
|
|
|
var childA = TestPlan.CreateUniqueElement();
|
|
var childB = TestPlan.CreateUniqueElement();
|
|
var childC = TestPlan.CreateUniqueElement();
|
|
var childD = TestPlan.CreateUniqueElement();
|
|
var childE = TestPlan.CreateUniqueElement();
|
|
|
|
// act
|
|
structure
|
|
.Grid(grid =>
|
|
{
|
|
grid.AlignRight();
|
|
|
|
grid.Item(6).Element(childA);
|
|
grid.Item(4).Element(childB);
|
|
grid.Item(4).Element(childC);
|
|
grid.Item(2).Element(childD);
|
|
grid.Item(8).Element(childE);
|
|
});
|
|
|
|
// assert
|
|
var expected = new Container();
|
|
|
|
expected.Column(column =>
|
|
{
|
|
column.Item().Row(row =>
|
|
{
|
|
row.RelativeItem(2);
|
|
row.RelativeItem(6).Element(childA);
|
|
row.RelativeItem(4).Element(childB);
|
|
});
|
|
|
|
column.Item().Row(row =>
|
|
{
|
|
row.RelativeItem(6);
|
|
row.RelativeItem(4).Element(childC);
|
|
row.RelativeItem(2).Element(childD);
|
|
});
|
|
|
|
column.Item().Row(row =>
|
|
{
|
|
row.RelativeItem(4);
|
|
row.RelativeItem(8).Element(childE);
|
|
});
|
|
});
|
|
|
|
TestPlan.CompareOperations(structure, expected);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Spacing
|
|
|
|
[Test]
|
|
public void Spacing()
|
|
{
|
|
// arrange
|
|
var structure = new Container();
|
|
|
|
var childA = TestPlan.CreateUniqueElement();
|
|
var childB = TestPlan.CreateUniqueElement();
|
|
var childC = TestPlan.CreateUniqueElement();
|
|
var childD = TestPlan.CreateUniqueElement();
|
|
|
|
// act
|
|
structure
|
|
.Grid(grid =>
|
|
{
|
|
grid.Columns(16);
|
|
grid.AlignCenter();
|
|
|
|
grid.VerticalSpacing(20);
|
|
grid.HorizontalSpacing(30);
|
|
|
|
grid.Item(5).Element(childA);
|
|
grid.Item(5).Element(childB);
|
|
grid.Item(10).Element(childC);
|
|
grid.Item(12).Element(childD);
|
|
});
|
|
|
|
// assert
|
|
var expected = new Container();
|
|
|
|
expected.Column(column =>
|
|
{
|
|
column.Spacing(20);
|
|
|
|
column.Item().Row(row =>
|
|
{
|
|
row.Spacing(30);
|
|
|
|
row.RelativeItem(3);
|
|
row.RelativeItem(5).Element(childA);
|
|
row.RelativeItem(5).Element(childB);
|
|
row.RelativeItem(3);
|
|
});
|
|
|
|
column.Item().Row(row =>
|
|
{
|
|
row.Spacing(30);
|
|
|
|
row.RelativeItem(3);
|
|
row.RelativeItem(10).Element(childC);
|
|
row.RelativeItem(3);
|
|
});
|
|
|
|
column.Item().Row(row =>
|
|
{
|
|
row.Spacing(30);
|
|
|
|
row.RelativeItem(2);
|
|
row.RelativeItem(12).Element(childD);
|
|
row.RelativeItem(2);
|
|
});
|
|
});
|
|
|
|
TestPlan.CompareOperations(structure, expected);
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
} |