Browse Source

Adding test

pull/5007/head
Giuseppe Lippolis 6 years ago
parent
commit
411b227834
  1. 23
      tests/Avalonia.Markup.UnitTests/Data/MultiBindingTests.cs
  2. 21
      tests/Avalonia.Markup.UnitTests/Extensions/IEnummerableExtension.cs

23
tests/Avalonia.Markup.UnitTests/Data/MultiBindingTests.cs

@ -157,6 +157,29 @@ namespace Avalonia.Markup.UnitTests.Data
Assert.Equal("1,2,Fallback", target.Text);
}
[Fact]
public void MultiBinding_Without_StringFormat_And_Converter()
{
var source = new { A = 1, B = 2, C = 3 };
var target = new ItemsControl { };
var binding = new MultiBinding
{
Bindings = new[]
{
new Binding { Path = "A", Source = source },
new Binding { Path = "B", Source = source },
new Binding { Path = "C", Source = source },
},
};
target.Bind(ItemsControl.ItemsProperty, binding);
Assert.Equal(target.ItemCount, 3);
Assert.Equal(target.Items.ElementAt(0), source.A);
Assert.Equal(target.Items.ElementAt(1), source.B);
Assert.Equal(target.Items.ElementAt(2), source.C);
}
private class ConcatConverter : IMultiValueConverter
{
public object Convert(IList<object> values, Type targetType, object parameter, CultureInfo culture)

21
tests/Avalonia.Markup.UnitTests/Extensions/IEnummerableExtension.cs

@ -0,0 +1,21 @@
using System;
using System.Collections;
namespace Avalonia.Markup.UnitTests
{
static class IEnummerableExtension
{
public static object ElementAt(this IEnumerable source, int index)
{
var i = -1;
var enumerator = source.GetEnumerator();
while (enumerator.MoveNext() && ++i < index);
if (i == index)
{
return enumerator.Current;
}
throw new ArgumentOutOfRangeException(nameof(index));
}
}
}
Loading…
Cancel
Save