From 1dc96e4184f22aa99d3f28b33957bb39ef000dae Mon Sep 17 00:00:00 2001 From: Jeremy Koritzinsky Date: Wed, 30 Nov 2016 14:50:20 -0600 Subject: [PATCH] Added more tests. --- .../Data/ExpressionObserverTests_Indexer.cs | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/tests/Avalonia.Markup.UnitTests/Data/ExpressionObserverTests_Indexer.cs b/tests/Avalonia.Markup.UnitTests/Data/ExpressionObserverTests_Indexer.cs index 9c7d0347a6..b8717e88ce 100644 --- a/tests/Avalonia.Markup.UnitTests/Data/ExpressionObserverTests_Indexer.cs +++ b/tests/Avalonia.Markup.UnitTests/Data/ExpressionObserverTests_Indexer.cs @@ -25,6 +25,36 @@ namespace Avalonia.Markup.UnitTests.Data Assert.Equal("bar", result); } + [Fact] + public async void Should_Get_UnsetValue_For_Invalid_Array_Index() + { + var data = new { Foo = new[] { "foo", "bar" } }; + var target = new ExpressionObserver(data, "Foo[invalid]"); + var result = await target.Take(1); + + Assert.Equal(AvaloniaProperty.UnsetValue, result); + } + + [Fact] + public async void Should_Get_UnsetValue_For_Invalid_Dictionary_Index() + { + var data = new { Foo = new Dictionary { { 1, "foo" } } }; + var target = new ExpressionObserver(data, "Foo[invalid]"); + var result = await target.Take(1); + + Assert.Equal(AvaloniaProperty.UnsetValue, result); + } + + [Fact] + public async void Should_Get_UnsetValue_For_Object_Without_Indexer() + { + var data = new { Foo = 5 }; + var target = new ExpressionObserver(data, "Foo[noindexer]"); + var result = await target.Take(1); + + Assert.Equal(AvaloniaProperty.UnsetValue, result); + } + [Fact] public async void Should_Get_MultiDimensional_Array_Value() {