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 scheduler = new TestScheduler();
var update = scheduler.CreateColdObservable<Unit>(); 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>(); var result = new List<object>();
using (target.Subscribe(x => result.Add(x))) using (target.Subscribe(x => result.Add(x)))
@ -101,6 +102,8 @@ namespace Avalonia.Markup.UnitTests.Data
Assert.Equal(new[] { "foo" }, result); Assert.Equal(new[] { "foo" }, result);
Assert.All(update.Subscriptions, x => Assert.NotEqual(Subscription.Infinite, x.Unsubscribe)); Assert.All(update.Subscriptions, x => Assert.NotEqual(Subscription.Infinite, x.Unsubscribe));
GC.KeepAlive(data);
} }
private Recorded<Notification<object>> OnNext(long time, object value) 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); var result = await target.Take(1);
Assert.Equal(false, result); Assert.Equal(false, result);
GC.KeepAlive(data);
} }
[Fact] [Fact]
@ -30,6 +32,8 @@ namespace Avalonia.Markup.UnitTests.Data
var result = await target.Take(1); var result = await target.Take(1);
Assert.Equal(true, result); Assert.Equal(true, result);
GC.KeepAlive(data);
} }
[Fact] [Fact]
@ -40,6 +44,8 @@ namespace Avalonia.Markup.UnitTests.Data
var result = await target.Take(1); var result = await target.Take(1);
Assert.Equal(false, result); Assert.Equal(false, result);
GC.KeepAlive(data);
} }
[Fact] [Fact]
@ -50,6 +56,8 @@ namespace Avalonia.Markup.UnitTests.Data
var result = await target.Take(1); var result = await target.Take(1);
Assert.Equal(true, result); Assert.Equal(true, result);
GC.KeepAlive(data);
} }
[Fact] [Fact]
@ -60,6 +68,8 @@ namespace Avalonia.Markup.UnitTests.Data
var result = await target.Take(1); var result = await target.Take(1);
Assert.Equal(false, result); Assert.Equal(false, result);
GC.KeepAlive(data);
} }
[Fact] [Fact]
@ -74,6 +84,8 @@ namespace Avalonia.Markup.UnitTests.Data
new InvalidCastException($"Unable to convert 'foo' to bool."), new InvalidCastException($"Unable to convert 'foo' to bool."),
BindingErrorType.Error), BindingErrorType.Error),
result); result);
GC.KeepAlive(data);
} }
[Fact] [Fact]
@ -88,6 +100,8 @@ namespace Avalonia.Markup.UnitTests.Data
new InvalidCastException($"Unable to convert 'System.Object' to bool."), new InvalidCastException($"Unable to convert 'System.Object' to bool."),
BindingErrorType.Error), BindingErrorType.Error),
result); result);
GC.KeepAlive(data);
} }
[Fact] [Fact]
@ -97,6 +111,8 @@ namespace Avalonia.Markup.UnitTests.Data
var target = new ExpressionObserver(data, "!Foo"); var target = new ExpressionObserver(data, "!Foo");
Assert.False(target.SetValue("bar")); 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(new ArgumentOutOfRangeException("value"), BindingErrorType.DataValidationError),
new BindingNotification(6), new BindingNotification(6),
}, result); }, result);
GC.KeepAlive(data);
} }
public class Data : NotifyingBase public class Data : NotifyingBase

Loading…
Cancel
Save