From 00f3ca78bac1a99b119d4129c5fb82ef1298849e Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Wed, 19 Oct 2016 20:18:57 +0200 Subject: [PATCH] FIx control leak tests. --- tests/Avalonia.LeakTests/ControlTests.cs | 25 ++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/tests/Avalonia.LeakTests/ControlTests.cs b/tests/Avalonia.LeakTests/ControlTests.cs index 99a7bbbcd2..1e257a698c 100644 --- a/tests/Avalonia.LeakTests/ControlTests.cs +++ b/tests/Avalonia.LeakTests/ControlTests.cs @@ -11,9 +11,11 @@ using Avalonia.Controls.Primitives; using Avalonia.Controls.Templates; using Avalonia.Diagnostics; using Avalonia.Layout; +using Avalonia.Rendering; using Avalonia.Styling; using Avalonia.UnitTests; using Avalonia.VisualTree; +using Moq; using Xunit; using Xunit.Abstractions; @@ -52,6 +54,7 @@ namespace Avalonia.LeakTests }; var result = run(); + PurgeMoqReferences(); dotMemory.Check(memory => Assert.Equal(0, memory.GetObjects(where => where.Type.Is()).ObjectsCount)); @@ -87,6 +90,7 @@ namespace Avalonia.LeakTests }; var result = run(); + PurgeMoqReferences(); dotMemory.Check(memory => Assert.Equal(0, memory.GetObjects(where => where.Type.Is()).ObjectsCount)); @@ -123,6 +127,7 @@ namespace Avalonia.LeakTests }; var result = run(); + PurgeMoqReferences(); dotMemory.Check(memory => Assert.Equal(0, memory.GetObjects(where => where.Type.Is()).ObjectsCount)); @@ -158,6 +163,7 @@ namespace Avalonia.LeakTests }; var result = run(); + PurgeMoqReferences(); dotMemory.Check(memory => Assert.Equal(0, memory.GetObjects(where => where.Type.Is()).ObjectsCount)); @@ -201,6 +207,7 @@ namespace Avalonia.LeakTests }; var result = run(); + PurgeMoqReferences(); dotMemory.Check(memory => Assert.Equal(0, memory.GetObjects(where => where.Type.Is()).ObjectsCount)); @@ -287,25 +294,19 @@ namespace Avalonia.LeakTests }; var result = run(); + PurgeMoqReferences(); dotMemory.Check(memory => Assert.Equal(0, memory.GetObjects(where => where.Type.Is()).ObjectsCount)); } } - private class TestTemplatedControl : TemplatedControl + private static void PurgeMoqReferences() { - public static readonly StyledProperty IsCanvasVisibleProperty = - AvaloniaProperty.Register("IsCanvasVisible"); - - public TestTemplatedControl() - { - Template = new FuncControlTemplate(parent => - new Canvas - { - [~IsVisibleProperty] = parent[~IsCanvasVisibleProperty] - }); - } + // Moq holds onto references in its mock of IRenderer in case we want to check if a method has been called; + // clear these. + var renderer = Mock.Get(AvaloniaLocator.Current.GetService()); + renderer.ResetCalls(); } private class Node