Browse Source

Added failing test for #2203.

Steven Kirk 6 years ago
parent
commit
f3029d3346

+ 20 - 0
tests/Avalonia.Base.UnitTests/Data/Core/ExpressionObserverTests_Observable.cs

@@ -150,6 +150,26 @@ namespace Avalonia.Base.UnitTests.Data.Core
             }
         }
 
+        [Fact]
+        public void Should_Work_With_Value_Type()
+        {
+            using (var sync = UnitTestSynchronizationContext.Begin())
+            {
+                var source = new BehaviorSubject<int>(1);
+                var data = new { Foo = source };
+                var target = ExpressionObserver.Create(data, o => o.Foo.StreamBinding());
+                var result = new List<int>();
+
+                var sub = target.Subscribe(x => result.Add((int)x));
+                source.OnNext(42);
+                sync.ExecutePostedCallbacks();
+
+                Assert.Equal(new[] { 1, 42 }, result);
+
+                GC.KeepAlive(data);
+            }
+        }
+
         private class Class1 : NotifyingBase
         {
             public Subject<Class2> Next { get; } = new Subject<Class2>();