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
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with
8 additions and
6 deletions
-
src/Markup/Avalonia.Markup/Data/Plugins/AvaloniaPropertyAccessorPlugin.cs
-
tests/Avalonia.Markup.UnitTests/Data/ExpressionObserverTests_Observable.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); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@ -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); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|