Browse Source

Merge pull request #1351 from AvaloniaUI/fix-intermittently-failing-test

Fix intermittently failing tests.
pull/1276/merge
Jeremy Koritzinsky 9 years ago
committed by GitHub
parent
commit
0902845f0d
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      src/Markup/Avalonia.Markup/Data/Plugins/AvaloniaPropertyAccessorPlugin.cs
  2. 12
      tests/Avalonia.Markup.UnitTests/Data/ExpressionObserverTests_Observable.cs

2
src/Markup/Avalonia.Markup/Data/Plugins/AvaloniaPropertyAccessorPlugin.cs

@ -104,7 +104,7 @@ namespace Avalonia.Markup.Data.Plugins
protected override void SubscribeCore(IObserver<object> observer)
{
_subscription = Instance.GetWeakObservable(_property).Subscribe(observer);
_subscription = Instance?.GetWeakObservable(_property).Subscribe(observer);
}
}
}

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