Browse Source

Moved failing test into LeakTests because it depends on runtime implementation details to pass.

pull/755/head
Jeremy Koritzinsky 10 years ago
parent
commit
26e60f9935
  1. 1
      tests/Avalonia.LeakTests/Avalonia.LeakTests.csproj
  2. 47
      tests/Avalonia.LeakTests/MemberSelectorTests.cs
  3. 26
      tests/Avalonia.Markup.Xaml.UnitTests/Templates/MemberSelectorTests.cs

1
tests/Avalonia.LeakTests/Avalonia.LeakTests.csproj

@ -99,6 +99,7 @@
<Compile Include="AvaloniaObjectTests.cs" /> <Compile Include="AvaloniaObjectTests.cs" />
<Compile Include="ControlTests.cs" /> <Compile Include="ControlTests.cs" />
<Compile Include="ExpressionObserverTests.cs" /> <Compile Include="ExpressionObserverTests.cs" />
<Compile Include="MemberSelectorTests.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

47
tests/Avalonia.LeakTests/MemberSelectorTests.cs

@ -0,0 +1,47 @@
using Avalonia.Markup.Xaml.Templates;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xunit;
namespace Avalonia.LeakTests
{
public class MemberSelectorTests
{
[Fact]
public void Should_Not_Hold_Reference_To_Object()
{
WeakReference dataRef = null;
var selector = new MemberSelector() { MemberName = "Child.StringValue" };
Action run = () =>
{
var data = new Item()
{
Child = new Item() { StringValue = "Value1" }
};
Assert.Same("Value1", selector.Select(data));
dataRef = new WeakReference(data);
};
run();
GC.Collect();
Assert.False(dataRef.IsAlive);
}
private class Item
{
public Item Child { get; set; }
public int IntValue { get; set; }
public string StringValue { get; set; }
}
}
}

26
tests/Avalonia.Markup.Xaml.UnitTests/Templates/MemberSelectorTests.cs

@ -9,32 +9,6 @@ namespace Avalonia.Markup.Xaml.UnitTests.Templates
{ {
public class MemberSelectorTests public class MemberSelectorTests
{ {
[Fact]
public void Should_Not_Hold_Reference_To_Object()
{
WeakReference dataRef = null;
var selector = new MemberSelector() { MemberName = "Child.StringValue" };
Action run = () =>
{
var data = new Item()
{
Child = new Item() { StringValue = "Value1" }
};
Assert.Same("Value1", selector.Select(data));
dataRef = new WeakReference(data);
};
run();
GC.Collect();
Assert.False(dataRef.IsAlive);
}
[Fact] [Fact]
public void Should_Select_Child_Property_Value() public void Should_Select_Child_Property_Value()
{ {

Loading…
Cancel
Save