From 7794d1b046bd6a5fe9c0148413a9c01858cc6974 Mon Sep 17 00:00:00 2001 From: Max Katz Date: Mon, 21 Mar 2022 00:11:08 -0400 Subject: [PATCH] Add tests --- .../AvaloniaObjectTests_Binding.cs | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_Binding.cs b/tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_Binding.cs index 7c4c5c96a5..d4e14d00b8 100644 --- a/tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_Binding.cs +++ b/tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_Binding.cs @@ -829,6 +829,30 @@ namespace Avalonia.Base.UnitTests subscription.Dispose(); } + [Fact] + public void TwoWay_Binding_Should_Not_Call_Setter_On_Creation_With_Value() + { + var target = new Class1(); + var source = new TestTwoWayBindingViewModel() { Value = 1 }; + source.ResetSetterCalled(); + + target.Bind(Class1.DoubleValueProperty, new Binding(nameof(source.Value), BindingMode.TwoWay) { Source = source }); + + Assert.False(source.SetterCalled); + } + + [Fact] + public void TwoWay_Binding_Should_Not_Call_Setter_On_Creation_Indexer_With_Value() + { + var target = new Class1(); + var source = new TestTwoWayBindingViewModel() { [0] = 1 }; + source.ResetSetterCalled(); + + target.Bind(Class1.DoubleValueProperty, new Binding("[0]", BindingMode.TwoWay) { Source = source }); + + Assert.False(source.SetterCalled); + } + /// /// Returns an observable that returns a single value but does not complete. /// @@ -943,6 +967,11 @@ namespace Avalonia.Base.UnitTests } public bool SetterCalled { get; private set; } + + public void ResetSetterCalled() + { + SetterCalled = false; + } } } }