|
|
|
@ -18,8 +18,7 @@ namespace Perspex.Markup.UnitTests.Binding |
|
|
|
var target = new ExpressionObserver(data, "Foo"); |
|
|
|
var result = await target.Take(1); |
|
|
|
|
|
|
|
Assert.True(result.HasValue); |
|
|
|
Assert.Equal("foo", result.Value); |
|
|
|
Assert.Equal("foo", result); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
@ -29,8 +28,7 @@ namespace Perspex.Markup.UnitTests.Binding |
|
|
|
var target = new ExpressionObserver(data, "Foo"); |
|
|
|
var result = await target.Take(1); |
|
|
|
|
|
|
|
Assert.True(result.HasValue); |
|
|
|
Assert.Equal("foo", result.Value); |
|
|
|
Assert.Equal("foo", result); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
@ -40,8 +38,7 @@ namespace Perspex.Markup.UnitTests.Binding |
|
|
|
var target = new ExpressionObserver(data, "Foo.Bar.Baz"); |
|
|
|
var result = await target.Take(1); |
|
|
|
|
|
|
|
Assert.True(result.HasValue); |
|
|
|
Assert.Equal("baz", result.Value); |
|
|
|
Assert.Equal("baz", result); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
@ -51,7 +48,7 @@ namespace Perspex.Markup.UnitTests.Binding |
|
|
|
var target = new ExpressionObserver(data, "Foo.Bar.Baz"); |
|
|
|
var result = await target.Take(1); |
|
|
|
|
|
|
|
Assert.False(result.HasValue); |
|
|
|
Assert.Equal(PerspexProperty.UnsetValue, result); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
@ -61,7 +58,7 @@ namespace Perspex.Markup.UnitTests.Binding |
|
|
|
var target = new ExpressionObserver(data, "Foo"); |
|
|
|
var result = new List<object>(); |
|
|
|
|
|
|
|
var sub = target.Subscribe(x => result.Add(x.Value)); |
|
|
|
var sub = target.Subscribe(x => result.Add(x)); |
|
|
|
data.Foo = "bar"; |
|
|
|
|
|
|
|
Assert.Equal(new[] { "foo", "bar" }, result); |
|
|
|
@ -78,7 +75,7 @@ namespace Perspex.Markup.UnitTests.Binding |
|
|
|
var target = new ExpressionObserver(data, "Next.Bar"); |
|
|
|
var result = new List<object>(); |
|
|
|
|
|
|
|
var sub = target.Subscribe(x => result.Add(x.Value)); |
|
|
|
var sub = target.Subscribe(x => result.Add(x)); |
|
|
|
((Class2)data.Next).Bar = "baz"; |
|
|
|
|
|
|
|
Assert.Equal(new[] { "bar", "baz" }, result); |
|
|
|
@ -96,7 +93,7 @@ namespace Perspex.Markup.UnitTests.Binding |
|
|
|
var target = new ExpressionObserver(data, "Next.Bar"); |
|
|
|
var result = new List<object>(); |
|
|
|
|
|
|
|
var sub = target.Subscribe(x => result.Add(x.Value)); |
|
|
|
var sub = target.Subscribe(x => result.Add(x)); |
|
|
|
var old = data.Next; |
|
|
|
data.Next = new Class2 { Bar = "baz" }; |
|
|
|
|
|
|
|
@ -116,12 +113,12 @@ namespace Perspex.Markup.UnitTests.Binding |
|
|
|
var target = new ExpressionObserver(data, "Next.Bar"); |
|
|
|
var result = new List<object>(); |
|
|
|
|
|
|
|
var sub = target.Subscribe(x => result.Add(x.Value)); |
|
|
|
var sub = target.Subscribe(x => result.Add(x)); |
|
|
|
var old = data.Next; |
|
|
|
data.Next = null; |
|
|
|
data.Next = new Class2 { Bar = "baz" }; |
|
|
|
|
|
|
|
Assert.Equal(new[] { "bar", null, "baz" }, result); |
|
|
|
Assert.Equal(new[] { "bar", PerspexProperty.UnsetValue, "baz" }, result); |
|
|
|
|
|
|
|
sub.Dispose(); |
|
|
|
|
|
|
|
@ -137,13 +134,13 @@ namespace Perspex.Markup.UnitTests.Binding |
|
|
|
var target = new ExpressionObserver(data, "Next.Bar"); |
|
|
|
var result = new List<object>(); |
|
|
|
|
|
|
|
var sub = target.Subscribe(x => result.Add(x.Value)); |
|
|
|
var sub = target.Subscribe(x => result.Add(x)); |
|
|
|
var old = data.Next; |
|
|
|
var breaking = new WithoutBar(); |
|
|
|
data.Next = breaking; |
|
|
|
data.Next = new Class2 { Bar = "baz" }; |
|
|
|
|
|
|
|
Assert.Equal(new[] { "bar", null, "baz" }, result); |
|
|
|
Assert.Equal(new[] { "bar", PerspexProperty.UnsetValue, "baz" }, result); |
|
|
|
|
|
|
|
sub.Dispose(); |
|
|
|
|
|
|
|
@ -206,7 +203,7 @@ namespace Perspex.Markup.UnitTests.Binding |
|
|
|
var target = new ExpressionObserver(null, "Foo"); |
|
|
|
var result = await target.Take(1); |
|
|
|
|
|
|
|
Assert.False(result.HasValue); |
|
|
|
Assert.Equal(PerspexProperty.UnsetValue, result); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
@ -217,11 +214,11 @@ namespace Perspex.Markup.UnitTests.Binding |
|
|
|
var target = new ExpressionObserver(first, "Foo"); |
|
|
|
var result = new List<object>(); |
|
|
|
|
|
|
|
var sub = target.Subscribe(x => result.Add(x.Value)); |
|
|
|
var sub = target.Subscribe(x => result.Add(x)); |
|
|
|
target.Root = second; |
|
|
|
target.Root = null; |
|
|
|
|
|
|
|
Assert.Equal(new[] { "foo", "bar", null }, result); |
|
|
|
Assert.Equal(new[] { "foo", "bar", PerspexProperty.UnsetValue }, result); |
|
|
|
|
|
|
|
Assert.Equal(0, first.SubscriptionCount); |
|
|
|
Assert.Equal(0, second.SubscriptionCount); |
|
|
|
|