Browse Source

Added more GC.KeepAlive statements.

pull/1038/head
Steven Kirk 9 years ago
parent
commit
129378cad1
  1. 5
      tests/Avalonia.Markup.UnitTests/Data/ExpressionObserverTests_Lifetime.cs
  2. 16
      tests/Avalonia.Markup.UnitTests/Data/ExpressionObserverTests_Negation.cs
  3. 2
      tests/Avalonia.Markup.UnitTests/Data/Plugins/ExceptionValidationPluginTests.cs

5
tests/Avalonia.Markup.UnitTests/Data/ExpressionObserverTests_Lifetime.cs

@ -90,7 +90,8 @@ namespace Avalonia.Markup.UnitTests.Data
{
var scheduler = new TestScheduler();
var update = scheduler.CreateColdObservable<Unit>();
var target = new ExpressionObserver(() => new { Foo = "foo" }, "Foo", update);
var data = new { Foo = "foo" };
var target = new ExpressionObserver(() => data, "Foo", update);
var result = new List<object>();
using (target.Subscribe(x => result.Add(x)))
@ -101,6 +102,8 @@ namespace Avalonia.Markup.UnitTests.Data
Assert.Equal(new[] { "foo" }, result);
Assert.All(update.Subscriptions, x => Assert.NotEqual(Subscription.Infinite, x.Unsubscribe));
GC.KeepAlive(data);
}
private Recorded<Notification<object>> OnNext(long time, object value)

16
tests/Avalonia.Markup.UnitTests/Data/ExpressionObserverTests_Negation.cs

@ -20,6 +20,8 @@ namespace Avalonia.Markup.UnitTests.Data
var result = await target.Take(1);
Assert.Equal(false, result);
GC.KeepAlive(data);
}
[Fact]
@ -30,6 +32,8 @@ namespace Avalonia.Markup.UnitTests.Data
var result = await target.Take(1);
Assert.Equal(true, result);
GC.KeepAlive(data);
}
[Fact]
@ -40,6 +44,8 @@ namespace Avalonia.Markup.UnitTests.Data
var result = await target.Take(1);
Assert.Equal(false, result);
GC.KeepAlive(data);
}
[Fact]
@ -50,6 +56,8 @@ namespace Avalonia.Markup.UnitTests.Data
var result = await target.Take(1);
Assert.Equal(true, result);
GC.KeepAlive(data);
}
[Fact]
@ -60,6 +68,8 @@ namespace Avalonia.Markup.UnitTests.Data
var result = await target.Take(1);
Assert.Equal(false, result);
GC.KeepAlive(data);
}
[Fact]
@ -74,6 +84,8 @@ namespace Avalonia.Markup.UnitTests.Data
new InvalidCastException($"Unable to convert 'foo' to bool."),
BindingErrorType.Error),
result);
GC.KeepAlive(data);
}
[Fact]
@ -88,6 +100,8 @@ namespace Avalonia.Markup.UnitTests.Data
new InvalidCastException($"Unable to convert 'System.Object' to bool."),
BindingErrorType.Error),
result);
GC.KeepAlive(data);
}
[Fact]
@ -97,6 +111,8 @@ namespace Avalonia.Markup.UnitTests.Data
var target = new ExpressionObserver(data, "!Foo");
Assert.False(target.SetValue("bar"));
GC.KeepAlive(data);
}
}
}

2
tests/Avalonia.Markup.UnitTests/Data/Plugins/ExceptionValidationPluginTests.cs

@ -35,6 +35,8 @@ namespace Avalonia.Markup.UnitTests.Data.Plugins
new BindingNotification(new ArgumentOutOfRangeException("value"), BindingErrorType.DataValidationError),
new BindingNotification(6),
}, result);
GC.KeepAlive(data);
}
public class Data : NotifyingBase

Loading…
Cancel
Save