فهرست منبع

Improved null safety. Fixed tests

Marcin Ziąbek 4 سال پیش
والد
کامیت
49fb6dadb3

+ 1 - 1
QuestPDF.UnitTests/PageBreakTests.cs

@@ -16,7 +16,7 @@ namespace QuestPDF.UnitTests
                 .For(x => new PageBreak())
                 .For(x => new PageBreak())
                 
                 
                 .MeasureElement(new Size(400, 300))
                 .MeasureElement(new Size(400, 300))
-                .CheckMeasureResult(new PartialRender(400, 300))
+                .CheckMeasureResult(new PartialRender(Size.Zero))
                 
                 
                 .DrawElement(new Size(400, 300))
                 .DrawElement(new Size(400, 300))
                 .CheckDrawResult()
                 .CheckDrawResult()

+ 3 - 0
QuestPDF.UnitTests/TestEngine/TestPlan.cs

@@ -205,6 +205,8 @@ namespace QuestPDF.UnitTests.TestEngine
         
         
         public TestPlan CheckMeasureResult(ISpacePlan expected)
         public TestPlan CheckMeasureResult(ISpacePlan expected)
         {
         {
+            Element.HandleVisitor(x => x?.Initialize(null, Canvas));
+            
             var actual = Element.Measure(OperationInput);
             var actual = Element.Measure(OperationInput);
             
             
             Assert.AreEqual(expected.GetType(), actual.GetType());
             Assert.AreEqual(expected.GetType(), actual.GetType());
@@ -223,6 +225,7 @@ namespace QuestPDF.UnitTests.TestEngine
         
         
         public TestPlan CheckDrawResult()
         public TestPlan CheckDrawResult()
         {
         {
+            Element.HandleVisitor(x => x?.Initialize(null, Canvas));
             Element.Draw(OperationInput);
             Element.Draw(OperationInput);
             return this;
             return this;
         }
         }

+ 1 - 1
QuestPDF/Drawing/DocumentGenerator.cs

@@ -47,7 +47,7 @@ namespace QuestPDF.Drawing
         private static void RenderPass<TCanvas>(PageContext pageContext, TCanvas canvas, Container content, DocumentMetadata documentMetadata)
         private static void RenderPass<TCanvas>(PageContext pageContext, TCanvas canvas, Container content, DocumentMetadata documentMetadata)
             where TCanvas : ICanvas, IRenderingCanvas
             where TCanvas : ICanvas, IRenderingCanvas
         {
         {
-            content.HandleVisitor(x => x.Initialize(pageContext, canvas));
+            content.HandleVisitor(x => x?.Initialize(pageContext, canvas));
             content.HandleVisitor(x => (x as IStateResettable)?.ResetState());
             content.HandleVisitor(x => (x as IStateResettable)?.ResetState());
             
             
             canvas.BeginDocument();
             canvas.BeginDocument();

+ 2 - 2
QuestPDF/Elements/Decoration.cs

@@ -19,8 +19,8 @@ namespace QuestPDF.Elements
 
 
         internal override void HandleVisitor(Action<Element?> visit)
         internal override void HandleVisitor(Action<Element?> visit)
         {
         {
-            DecorationElement.HandleVisitor(visit);
-            ContentElement.HandleVisitor(visit);
+            DecorationElement?.HandleVisitor(visit);
+            ContentElement?.HandleVisitor(visit);
             
             
             base.HandleVisitor(visit);
             base.HandleVisitor(visit);
         }
         }

+ 1 - 1
QuestPDF/Elements/PageNumber.cs

@@ -19,7 +19,7 @@ namespace QuestPDF.Elements
 
 
         internal override void HandleVisitor(Action<Element?> visit)
         internal override void HandleVisitor(Action<Element?> visit)
         {
         {
-            TextElement.HandleVisitor(visit);
+            TextElement?.HandleVisitor(visit);
             base.HandleVisitor(visit);
             base.HandleVisitor(visit);
         }
         }
 
 

+ 2 - 2
QuestPDF/Elements/Stack.cs

@@ -19,8 +19,8 @@ namespace QuestPDF.Elements
 
 
         internal override void HandleVisitor(Action<Element?> visit)
         internal override void HandleVisitor(Action<Element?> visit)
         {
         {
-            First.HandleVisitor(visit);
-            Second.HandleVisitor(visit);
+            First?.HandleVisitor(visit);
+            Second?.HandleVisitor(visit);
             
             
             base.HandleVisitor(visit);
             base.HandleVisitor(visit);
         }
         }

+ 1 - 1
QuestPDF/Infrastructure/ContainerElement.cs

@@ -17,7 +17,7 @@ namespace QuestPDF.Infrastructure
         internal override void HandleVisitor(Action<Element?> visit)
         internal override void HandleVisitor(Action<Element?> visit)
         {
         {
             base.HandleVisitor(visit);
             base.HandleVisitor(visit);
-            Child.HandleVisitor(visit);
+            Child?.HandleVisitor(visit);
         }
         }
 
 
         internal override ISpacePlan Measure(Size availableSpace)
         internal override ISpacePlan Measure(Size availableSpace)