Added structural tests for: Row, Stack.

This commit is contained in:
Marcin Ziąbek
2021-09-18 23:40:21 +02:00
parent cc6d1c81c8
commit 188fbc22a7
19 changed files with 408 additions and 113 deletions
+15
View File
@@ -0,0 +1,15 @@
using NUnit.Framework;
using QuestPDF.Elements;
using QuestPDF.UnitTests.TestEngine;
namespace QuestPDF.UnitTests
{
[TestFixture]
public class ExternalLinkTests
{
[Test]
public void Measure() => SimpleContainerTests.Measure<ExternalLink>();
// TODO: consider tests for the Draw method
}
}
+27 -27
View File
@@ -40,30 +40,30 @@ namespace QuestPDF.UnitTests
// assert
var expected = new Container();
expected.Container().Stack(stack =>
expected.Stack(stack =>
{
stack.Item().Row(row =>
{
row.RelativeColumn(6).Container().Element(childA);
row.RelativeColumn(4).Container().Element(childB);
row.RelativeColumn(6).Element(childA);
row.RelativeColumn(4).Element(childB);
row.RelativeColumn(2);
});
stack.Item().Row(row =>
{
row.RelativeColumn(4).Container().Element(childC);
row.RelativeColumn(2).Container().Element(childD);
row.RelativeColumn(4).Element(childC);
row.RelativeColumn(2).Element(childD);
row.RelativeColumn(6);
});
stack.Item().Row(row =>
{
row.RelativeColumn(8).Container().Element(childE);
row.RelativeColumn(8).Element(childE);
row.RelativeColumn(4);
});
});
structure.Should().BeEquivalentTo(expected);
TestPlan.CompareOperations(structure, expected);
}
[Test]
@@ -94,33 +94,33 @@ namespace QuestPDF.UnitTests
// assert
var expected = new Container();
expected.Container().Stack(stack =>
expected.Stack(stack =>
{
stack.Item().Row(row =>
{
row.RelativeColumn(1);
row.RelativeColumn(6).Container().Element(childA);
row.RelativeColumn(4).Container().Element(childB);
row.RelativeColumn(6).Element(childA);
row.RelativeColumn(4).Element(childB);
row.RelativeColumn(1);
});
stack.Item().Row(row =>
{
row.RelativeColumn(3);
row.RelativeColumn(4).Container().Element(childC);
row.RelativeColumn(2).Container().Element(childD);
row.RelativeColumn(4).Element(childC);
row.RelativeColumn(2).Element(childD);
row.RelativeColumn(3);
});
stack.Item().Row(row =>
{
row.RelativeColumn(2);
row.RelativeColumn(8).Container().Element(childE);
row.RelativeColumn(8).Element(childE);
row.RelativeColumn(2);
});
});
structure.Should().BeEquivalentTo(expected);
TestPlan.CompareOperations(structure, expected);
}
[Test]
@@ -151,30 +151,30 @@ namespace QuestPDF.UnitTests
// assert
var expected = new Container();
expected.Container().Stack(stack =>
expected.Stack(stack =>
{
stack.Item().Row(row =>
{
row.RelativeColumn(2);
row.RelativeColumn(6).Container().Element(childA);
row.RelativeColumn(4).Container().Element(childB);
row.RelativeColumn(6).Element(childA);
row.RelativeColumn(4).Element(childB);
});
stack.Item().Row(row =>
{
row.RelativeColumn(6);
row.RelativeColumn(4).Container().Element(childC);
row.RelativeColumn(2).Container().Element(childD);
row.RelativeColumn(4).Element(childC);
row.RelativeColumn(2).Element(childD);
});
stack.Item().Row(row =>
{
row.RelativeColumn(4);
row.RelativeColumn(8).Container().Element(childE);
row.RelativeColumn(8).Element(childE);
});
});
structure.Should().BeEquivalentTo(expected);
TestPlan.CompareOperations(structure, expected);
}
#endregion
@@ -211,7 +211,7 @@ namespace QuestPDF.UnitTests
// assert
var expected = new Container();
expected.Container().Stack(stack =>
expected.Stack(stack =>
{
stack.Spacing(20);
@@ -220,8 +220,8 @@ namespace QuestPDF.UnitTests
row.Spacing(30);
row.RelativeColumn(3);
row.RelativeColumn(5).Container().Element(childA);
row.RelativeColumn(5).Container().Element(childB);
row.RelativeColumn(5).Element(childA);
row.RelativeColumn(5).Element(childB);
row.RelativeColumn(3);
});
@@ -230,7 +230,7 @@ namespace QuestPDF.UnitTests
row.Spacing(30);
row.RelativeColumn(3);
row.RelativeColumn(10).Container().Element(childC);
row.RelativeColumn(10).Element(childC);
row.RelativeColumn(3);
});
@@ -239,12 +239,12 @@ namespace QuestPDF.UnitTests
row.Spacing(30);
row.RelativeColumn(2);
row.RelativeColumn(12).Container().Element(childD);
row.RelativeColumn(12).Element(childD);
row.RelativeColumn(2);
});
});
structure.Should().BeEquivalentTo(expected);
TestPlan.CompareOperations(structure, expected);
}
#endregion
+15
View File
@@ -0,0 +1,15 @@
using NUnit.Framework;
using QuestPDF.Elements;
using QuestPDF.UnitTests.TestEngine;
namespace QuestPDF.UnitTests
{
[TestFixture]
public class InternalLinkTests
{
[Test]
public void Measure() => SimpleContainerTests.Measure<InternalLink>();
// TODO: consider tests for the Draw method
}
}
@@ -0,0 +1,15 @@
using NUnit.Framework;
using QuestPDF.Elements;
using QuestPDF.UnitTests.TestEngine;
namespace QuestPDF.UnitTests
{
[TestFixture]
public class InternalLocationTests
{
[Test]
public void Measure() => SimpleContainerTests.Measure<InternalLink>();
// TODO: consider tests for the Draw method
}
}
+154 -3
View File
@@ -1,6 +1,7 @@
using NUnit.Framework;
using QuestPDF.Drawing.SpacePlan;
using QuestPDF.Elements;
using QuestPDF.Fluent;
using QuestPDF.Infrastructure;
using QuestPDF.UnitTests.TestEngine;
@@ -109,8 +110,158 @@ namespace QuestPDF.UnitTests
#endregion
// TODO: add tests for the spacing property
// TODO: add tests for the tree builder method
// TODO: add tests for relative column
#region Structure
[Test]
public void Structure_RelativeColumnsHandling()
{
// arrange
var childA = TestPlan.CreateUniqueElement();
var childB = TestPlan.CreateUniqueElement();
var childC = TestPlan.CreateUniqueElement();
var childD = TestPlan.CreateUniqueElement();
var childE = TestPlan.CreateUniqueElement();
const int spacing = 25;
var availableSpace = new Size(1100, 400);
// act
var value = new Container();
value.Row(row =>
{
row.Spacing(spacing);
row.ConstantColumn(150).Element(childA);
row.ConstantColumn(250).Element(childB);
row.RelativeColumn(1).Element(childC);
row.RelativeColumn(2).Element(childD);
row.RelativeColumn(3).Element(childE);
});
// assert
var expected = new Container();
expected.Row(row =>
{
row.Spacing(spacing);
row.ConstantColumn(150).Element(childA);
row.ConstantColumn(250).Element(childB);
row.ConstantColumn(100).Element(childC);
row.ConstantColumn(200).Element(childD);
row.ConstantColumn(300).Element(childE);
});
TestPlan.CompareOperations(value, expected, availableSpace);
}
[Test]
public void Structure_Tree()
{
// arrange
var childA = TestPlan.CreateUniqueElement();
var childB = TestPlan.CreateUniqueElement();
var childC = TestPlan.CreateUniqueElement();
var childD = TestPlan.CreateUniqueElement();
var childE = TestPlan.CreateUniqueElement();
const int spacing = 25;
var availableSpace = new Size(1200, 400);
// act
var value = new Container();
value.Row(row =>
{
row.Spacing(spacing);
row.ConstantColumn(150).Element(childA);
row.ConstantColumn(200).Element(childB);
row.ConstantColumn(250).Element(childC);
row.RelativeColumn(2).Element(childD);
row.RelativeColumn(3).Element(childE);
});
// assert
var expected = new SimpleRow
{
Left = new SimpleRow
{
Left = new SimpleRow
{
Left = new Constrained
{
MinWidth = 150,
MaxWidth = 150,
Child = childA
},
Right = new Constrained
{
MinWidth = 25,
MaxWidth = 25
}
},
Right = new SimpleRow
{
Left = new Constrained
{
MinWidth = 200,
MaxWidth = 200,
Child = childB
},
Right = new Constrained
{
MinWidth = 25,
MaxWidth = 25
}
}
},
Right = new SimpleRow
{
Left = new SimpleRow
{
Left = new Constrained
{
MinWidth = 250,
MaxWidth = 250,
Child = childC
},
Right = new Constrained
{
MinWidth = 25,
MaxWidth = 25
}
},
Right = new SimpleRow
{
Left = new Constrained
{
MinWidth = 200,
MaxWidth = 200,
Child = childD
},
Right = new SimpleRow
{
Left = new Constrained
{
MinWidth = 25,
MaxWidth = 25
},
Right = new Constrained
{
MinWidth = 300,
MaxWidth = 300,
Child = childE
}
}
}
}
};
TestPlan.CompareOperations(value, expected, availableSpace);
}
#endregion
}
}
+79 -3
View File
@@ -1,6 +1,8 @@
using NUnit.Framework;
using FluentAssertions;
using NUnit.Framework;
using QuestPDF.Drawing.SpacePlan;
using QuestPDF.Elements;
using QuestPDF.Fluent;
using QuestPDF.Infrastructure;
using QuestPDF.UnitTests.TestEngine;
@@ -229,7 +231,81 @@ namespace QuestPDF.UnitTests
#endregion
// TODO: add tests for the spacing property
// TODO: add tests for the tree builder method
#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.Stack(stack =>
{
stack.Spacing(spacing);
stack.Item().Element(childA);
stack.Item().Element(childB);
stack.Item().Element(childC);
stack.Item().Element(childD);
stack.Item().Element(childE);
});
// assert
var expected = new Padding
{
Bottom = -spacing,
Child = new SimpleStack
{
First = new SimpleStack
{
First = new Padding
{
Bottom = spacing,
Child = childA
},
Second = new Padding
{
Bottom = spacing,
Child = childB
}
},
Second = new SimpleStack
{
First = new Padding
{
Bottom = spacing,
Child = childC
},
Second = new SimpleStack
{
First = new Padding
{
Bottom = spacing,
Child = childD
},
Second = new Padding
{
Bottom = spacing,
Child = childE
}
}
}
}
};
TestPlan.CompareOperations(structure, expected);
}
#endregion
}
}
@@ -4,7 +4,7 @@ using SkiaSharp;
namespace QuestPDF.UnitTests.TestEngine
{
internal class CanvasMock : ICanvas
internal class MockCanvas : ICanvas
{
public Action<Position> TranslateFunc { get; set; }
public Action<float> RotateFunc { get; set; }
@@ -21,29 +21,8 @@ namespace QuestPDF.UnitTests.TestEngine
public void DrawText(string text, Position position, TextStyle style) => DrawTextFunc(text, position, style);
public void DrawImage(SKImage image, Position position, Size size) => DrawImageFunc(image, position, size);
public void DrawExternalLink(string url, Size size)
{
throw new NotImplementedException();
}
public void DrawLocationLink(string locationName, Size size)
{
throw new NotImplementedException();
}
public void DrawLocation(string locationName)
{
throw new NotImplementedException();
}
public void DrawLink(string url, Size size)
{
throw new NotImplementedException();
}
public Size MeasureText(string text, TextStyle style)
{
return new Size(text.Length * style.Size, style.Size);
}
public void DrawExternalLink(string url, Size size) => throw new NotImplementedException();
public void DrawLocationLink(string locationName, Size size) => throw new NotImplementedException();
public void DrawLocation(string locationName) => throw new NotImplementedException();
}
}
@@ -0,0 +1,25 @@
using System;
using System.Collections.Generic;
using QuestPDF.Infrastructure;
using QuestPDF.UnitTests.TestEngine.Operations;
using SkiaSharp;
namespace QuestPDF.UnitTests.TestEngine
{
internal class OperationRecordingCanvas : ICanvas
{
public ICollection<OperationBase> Operations { get; } = new List<OperationBase>();
public void Translate(Position vector) => Operations.Add(new CanvasTranslateOperation(vector));
public void Rotate(float angle) => Operations.Add(new CanvasRotateOperation(angle));
public void Scale(float scaleX, float scaleY) => Operations.Add(new CanvasScaleOperation(scaleX, scaleY));
public void DrawRectangle(Position vector, Size size, string color) => Operations.Add(new CanvasDrawRectangleOperation(vector, size, color));
public void DrawText(string text, Position position, TextStyle style) => Operations.Add(new CanvasDrawTextOperation(text, position, style));
public void DrawImage(SKImage image, Position position, Size size) => Operations.Add(new CanvasDrawImageOperation(position, size));
public void DrawExternalLink(string url, Size size) => throw new NotImplementedException();
public void DrawLocationLink(string locationName, Size size) => throw new NotImplementedException();
public void DrawLocation(string locationName) => throw new NotImplementedException();
}
}
@@ -2,12 +2,12 @@
namespace QuestPDF.UnitTests.TestEngine.Operations
{
internal class CanvasDrawImageOperationBase : OperationBase
internal class CanvasDrawImageOperation : OperationBase
{
public Position Position { get; }
public Size Size { get; }
public CanvasDrawImageOperationBase(Position position, Size size)
public CanvasDrawImageOperation(Position position, Size size)
{
Position = position;
Size = size;
@@ -2,13 +2,13 @@
namespace QuestPDF.UnitTests.TestEngine.Operations
{
internal class CanvasDrawRectangleOperationBase : OperationBase
internal class CanvasDrawRectangleOperation : OperationBase
{
public Position Position { get; }
public Size Size { get; }
public string Color { get; }
public CanvasDrawRectangleOperationBase(Position position, Size size, string color)
public CanvasDrawRectangleOperation(Position position, Size size, string color)
{
Position = position;
Size = size;
@@ -2,13 +2,13 @@
namespace QuestPDF.UnitTests.TestEngine.Operations
{
internal class CanvasDrawTextOperationBase : OperationBase
internal class CanvasDrawTextOperation : OperationBase
{
public string Text { get; }
public Position Position { get; }
public TextStyle Style { get; }
public CanvasDrawTextOperationBase(string text, Position position, TextStyle style)
public CanvasDrawTextOperation(string text, Position position, TextStyle style)
{
Text = text;
Position = position;
@@ -2,11 +2,11 @@
namespace QuestPDF.UnitTests.TestEngine.Operations
{
internal class CanvasTranslateOperationBase : OperationBase
internal class CanvasTranslateOperation : OperationBase
{
public Position Position { get; }
public CanvasTranslateOperationBase(Position position)
public CanvasTranslateOperation(Position position)
{
Position = position;
}
@@ -2,12 +2,12 @@
namespace QuestPDF.UnitTests.TestEngine.Operations
{
public class ChildDrawOperationBase : OperationBase
public class ChildDrawOperation : OperationBase
{
public string ChildId { get; }
public Size Input { get; }
public ChildDrawOperationBase(string childId, Size input)
public ChildDrawOperation(string childId, Size input)
{
ChildId = childId;
Input = input;
@@ -3,13 +3,13 @@ using QuestPDF.Infrastructure;
namespace QuestPDF.UnitTests.TestEngine.Operations
{
internal class ChildMeasureOperationBase : OperationBase
internal class ChildMeasureOperation : OperationBase
{
public string ChildId { get; }
public Size Input { get; }
public ISpacePlan Output { get; }
public ChildMeasureOperationBase(string childId, Size input, ISpacePlan output)
public ChildMeasureOperation(string childId, Size input, ISpacePlan output)
{
ChildId = childId;
Input = input;
@@ -2,9 +2,9 @@
namespace QuestPDF.UnitTests.TestEngine.Operations
{
public class ElementMeasureOperationBase : OperationBase
public class ElementMeasureOperation : OperationBase
{
public ElementMeasureOperationBase(Size input)
public ElementMeasureOperation(Size input)
{
}
+57 -39
View File
@@ -1,7 +1,9 @@
using System;
using System.Collections.Generic;
using System.Text.Json;
using FluentAssertions;
using NUnit.Framework;
using QuestPDF.Drawing;
using QuestPDF.Drawing.SpacePlan;
using QuestPDF.Elements;
using QuestPDF.Infrastructure;
@@ -12,6 +14,8 @@ namespace QuestPDF.UnitTests.TestEngine
internal class TestPlan
{
private const string DefaultChildName = "child";
private static Random Random { get; } = new Random();
private Element Element { get; set; }
private ICanvas Canvas { get; }
@@ -44,24 +48,20 @@ namespace QuestPDF.UnitTests.TestEngine
private ICanvas CreateCanvas()
{
return new CanvasMock
return new MockCanvas
{
TranslateFunc = position =>
{
var expected = GetExpected<CanvasTranslateOperationBase>();
var expected = GetExpected<CanvasTranslateOperation>();
Assert.AreEqual(expected.Position.X, position.X, "Translate X");
Assert.AreEqual(expected.Position.Y, position.Y, "Translate Y");
//position.Should().BeEquivalentTo(expected.Position);
},
RotateFunc = angle =>
{
var expected = GetExpected<CanvasRotateOperation>();
Assert.AreEqual(expected.Angle, angle, "Rotate angle");
//position.Should().BeEquivalentTo(expected.Position);
},
ScaleFunc = (scaleX, scaleY) =>
{
@@ -69,12 +69,10 @@ namespace QuestPDF.UnitTests.TestEngine
Assert.AreEqual(expected.ScaleX, scaleX, "Scale X");
Assert.AreEqual(expected.ScaleY, scaleY, "Scale Y");
//position.Should().BeEquivalentTo(expected.Position);
},
DrawRectFunc = (position, size, color) =>
{
var expected = GetExpected<CanvasDrawRectangleOperationBase>();
var expected = GetExpected<CanvasDrawRectangleOperation>();
Assert.AreEqual(expected.Position.X, position.X, "Draw rectangle: X");
Assert.AreEqual(expected.Position.Y, position.Y, "Draw rectangle: Y");
@@ -83,14 +81,10 @@ namespace QuestPDF.UnitTests.TestEngine
Assert.AreEqual(expected.Size.Height, size.Height, "Draw rectangle: height");
Assert.AreEqual(expected.Color, color, "Draw rectangle: color");
/*position.Should().BeEquivalentTo(expected.Position);
size.Should().BeEquivalentTo(expected.Size);
color.Should().Be(expected.Color);*/
},
DrawTextFunc = (text, position, style) =>
{
var expected = GetExpected<CanvasDrawTextOperationBase>();
var expected = GetExpected<CanvasDrawTextOperation>();
Assert.AreEqual(expected.Text, text);
@@ -100,23 +94,16 @@ namespace QuestPDF.UnitTests.TestEngine
Assert.AreEqual(expected.Style.Color, style.Color, "Draw text: color");
Assert.AreEqual(expected.Style.FontType, style.FontType, "Draw text: font");
Assert.AreEqual(expected.Style.Size, style.Size, "Draw text: size");
/*text.Should().Be(expected.Text);
position.Should().BeEquivalentTo(expected.Position);
style.Should().BeEquivalentTo(expected.Style);*/
},
DrawImageFunc = (image, position, size) =>
{
var expected = GetExpected<CanvasDrawImageOperationBase>();
var expected = GetExpected<CanvasDrawImageOperation>();
Assert.AreEqual(expected.Position.X, position.X, "Draw image: X");
Assert.AreEqual(expected.Position.Y, position.Y, "Draw image: Y");
Assert.AreEqual(expected.Size.Width, size.Width, "Draw image: width");
Assert.AreEqual(expected.Size.Height, size.Height, "Draw image: height");
/*position.Should().BeEquivalentTo(expected.Position);
size.Should().BeEquivalentTo(expected.Size);*/
}
};
}
@@ -130,29 +117,23 @@ namespace QuestPDF.UnitTests.TestEngine
Id = id,
MeasureFunc = availableSpace =>
{
var expected = GetExpected<ChildMeasureOperationBase>();
var expected = GetExpected<ChildMeasureOperation>();
Assert.AreEqual(expected.ChildId, id);
Assert.AreEqual(expected.Input.Width, availableSpace.Width, $"Measure: width of child '{expected.ChildId}'");
Assert.AreEqual(expected.Input.Height, availableSpace.Height, $"Measure: height of child '{expected.ChildId}'");
// id.Should().Be(expected.ChildId);
// availableSpace.Should().Be(expected.Input);
return expected.Output;
},
DrawFunc = availableSpace =>
{
var expected = GetExpected<ChildDrawOperationBase>();
var expected = GetExpected<ChildDrawOperation>();
Assert.AreEqual(expected.ChildId, id);
Assert.AreEqual(expected.Input.Width, availableSpace.Width, $"Draw: width of child '{expected.ChildId}'");
Assert.AreEqual(expected.Input.Height, availableSpace.Height, $"Draw: width of child '{expected.ChildId}'");
/*id.Should().Be(expected.ChildId);
availableSpace.Should().Be(expected.Input);*/
}
};
}
@@ -182,7 +163,7 @@ namespace QuestPDF.UnitTests.TestEngine
public TestPlan ExpectChildMeasure(string child, Size expectedInput, ISpacePlan returns)
{
return AddOperation(new ChildMeasureOperationBase(child, expectedInput, returns));
return AddOperation(new ChildMeasureOperation(child, expectedInput, returns));
}
public TestPlan ExpectChildDraw(Size expectedInput)
@@ -192,17 +173,17 @@ namespace QuestPDF.UnitTests.TestEngine
public TestPlan ExpectChildDraw(string child, Size expectedInput)
{
return AddOperation(new ChildDrawOperationBase(child, expectedInput));
return AddOperation(new ChildDrawOperation(child, expectedInput));
}
public TestPlan ExpectCanvasTranslate(Position position)
{
return AddOperation(new CanvasTranslateOperationBase(position));
return AddOperation(new CanvasTranslateOperation(position));
}
public TestPlan ExpectCanvasTranslate(float left, float top)
{
return AddOperation(new CanvasTranslateOperationBase(new Position(left, top)));
return AddOperation(new CanvasTranslateOperation(new Position(left, top)));
}
public TestPlan ExpectCanvasScale(float scaleX, float scaleY)
@@ -217,17 +198,17 @@ namespace QuestPDF.UnitTests.TestEngine
public TestPlan ExpectCanvasDrawRectangle(Position position, Size size, string color)
{
return AddOperation(new CanvasDrawRectangleOperationBase(position, size, color));
return AddOperation(new CanvasDrawRectangleOperation(position, size, color));
}
public TestPlan ExpectCanvasDrawText(string text, Position position, TextStyle style)
{
return AddOperation(new CanvasDrawTextOperationBase(text, position, style));
return AddOperation(new CanvasDrawTextOperation(text, position, style));
}
public TestPlan ExpectCanvasDrawImage(Position position, Size size)
{
return AddOperation(new CanvasDrawImageOperationBase(position, size));
return AddOperation(new CanvasDrawImageOperation(position, size));
}
public TestPlan CheckMeasureResult(ISpacePlan expected)
@@ -272,10 +253,47 @@ namespace QuestPDF.UnitTests.TestEngine
public static Element CreateUniqueElement()
{
return new Text
var value = Random.Next(0x1000000);
return new Background
{
Value = Guid.NewGuid().ToString("N")
Color = $"#{value:X6}"
};
}
public static void CompareOperations(Element value, Element expected, Size? availableSpace = null)
{
CompareMeasureOperations(value, expected, availableSpace);
CompareDrawOperations(value, expected, availableSpace);
}
private static void CompareMeasureOperations(Element value, Element expected, Size? availableSpace = null)
{
availableSpace ??= new Size(400, 300);
var canvas = new FreeCanvas();
value.HandleVisitor(x => x.Initialize(null, canvas));
var valueMeasure = value.Measure(availableSpace);
expected.HandleVisitor(x => x.Initialize(null, canvas));
var expectedMeasure = expected.Measure(availableSpace);
valueMeasure.Should().BeEquivalentTo(expectedMeasure);
}
private static void CompareDrawOperations(Element value, Element expected, Size? availableSpace = null)
{
availableSpace ??= new Size(400, 300);
var valueCanvas = new OperationRecordingCanvas();
value.HandleVisitor(x => x.Initialize(null, valueCanvas));
value.Draw(availableSpace);
var expectedCanvas = new OperationRecordingCanvas();
expected.HandleVisitor(x => x.Initialize(null, expectedCanvas));
expected.Draw(availableSpace);
valueCanvas.Operations.Should().BeEquivalentTo(expectedCanvas.Operations);
}
}
}
+1
View File
@@ -12,6 +12,7 @@ namespace QuestPDF.UnitTests
AssertionOptions.AssertEquivalencyUsing(options => options
.IncludingNestedObjects()
.IncludingInternalProperties()
.IncludingInternalFields()
.AllowingInfiniteRecursion()
.RespectingRuntimeTypes()
.WithTracing()
+1 -1
View File
@@ -16,7 +16,7 @@ namespace QuestPDF.Elements
{
public const int DefaultColumnsCount = 12;
public List<GridElement> Children { get; set; } = new List<GridElement>();
public List<GridElement> Children { get; } = new List<GridElement>();
public Queue<GridElement> ChildrenQueue { get; set; } = new Queue<GridElement>();
public int ColumnsCount { get; set; } = DefaultColumnsCount;
+1 -1
View File
@@ -92,7 +92,7 @@ namespace QuestPDF.Elements
internal class Stack : IComponent
{
public ICollection<Element> Children { get; internal set; } = new List<Element>();
public ICollection<Element> Children { get; } = new List<Element>();
public float Spacing { get; set; } = 0;
public void Compose(IContainer container)