Browse Source

Fix intermittently failing test.

Fixed in https://ci.appveyor.com/project/AvaloniaUI/Avalonia/build/0.1.4466: this should prevent that by keeping both of the data objects alive.
pull/1351/head
Steven Kirk 8 years ago
parent
commit
7458f28ca9
  1. 12
      tests/Avalonia.Markup.UnitTests/Data/ExpressionObserverTests_Observable.cs

12
tests/Avalonia.Markup.UnitTests/Data/ExpressionObserverTests_Observable.cs

@ -103,20 +103,22 @@ namespace Avalonia.Markup.UnitTests.Data
{
using (var sync = UnitTestSynchronizationContext.Begin())
{
var data = new Class1();
var target = new ExpressionObserver(data, "Next^.Foo", true);
var data1 = new Class1();
var data2 = new Class2("foo");
var target = new ExpressionObserver(data1, "Next^.Foo", true);
var result = new List<object>();
var sub = target.Subscribe(x => result.Add(x));
data.Next.OnNext(new Class2("foo"));
data1.Next.OnNext(data2);
sync.ExecutePostedCallbacks();
Assert.Equal(new[] { new BindingNotification("foo") }, result);
sub.Dispose();
Assert.Equal(0, data.PropertyChangedSubscriptionCount);
Assert.Equal(0, data1.PropertyChangedSubscriptionCount);
GC.KeepAlive(data);
GC.KeepAlive(data1);
GC.KeepAlive(data2);
}
}

Loading…
Cancel
Save