From 613ba3ffd2e207220aa56ab4bd2006210a63119c Mon Sep 17 00:00:00 2001 From: Andrey Kunchev Date: Mon, 23 Mar 2020 12:52:09 +0200 Subject: [PATCH] add another test for multibinding --- .../AvaloniaObjectTests_MultiBinding.cs | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_MultiBinding.cs b/tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_MultiBinding.cs index 30693e2cb3..19ffb014d4 100644 --- a/tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_MultiBinding.cs +++ b/tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_MultiBinding.cs @@ -42,6 +42,35 @@ namespace Avalonia.Base.UnitTests Assert.Equal("Bar", target.Foo); } + [Fact] + public void Should_Update_With_Multiple_Bindings() + { + var target = new Class1(); + + var bindings = Enumerable.Range(0, 3).Select(i => new BehaviorSubject("Empty")).ToArray(); + + var mb = new MultiBinding() + { + Converter = StringJoinConverter, + Bindings = bindings.Select(b => b.ToBinding()).ToArray() + }; + target.Bind(Class1.FooProperty, mb); + + Assert.Equal("Empty,Empty,Empty", target.Foo); + + bindings[0].OnNext("Foo"); + + Assert.Equal("Foo,Empty,Empty", target.Foo); + + bindings[1].OnNext("Bar"); + + Assert.Equal("Foo,Bar,Empty", target.Foo); + + bindings[2].OnNext("Baz"); + + Assert.Equal("Foo,Bar,Baz", target.Foo); + } + private static IMultiValueConverter StringJoinConverter = new FuncMultiValueConverter(v => string.Join(",", v.ToArray())); private class Class1 : AvaloniaObject