From d5716fce8f24aeebad0485b45abe4dedeb3ee53d Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Tue, 11 Aug 2020 15:30:36 +0200 Subject: [PATCH] Added failing data validation test. --- .../AvaloniaObjectTests_DataValidation.cs | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_DataValidation.cs b/tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_DataValidation.cs index e8cc71c723..65f03b3eca 100644 --- a/tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_DataValidation.cs +++ b/tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_DataValidation.cs @@ -62,6 +62,20 @@ namespace Avalonia.Base.UnitTests Assert.Equal(7, result[3].Value); } + [Fact] + public void Binding_Overridden_Validated_Direct_Property_Calls_UpdateDataValidation() + { + var target = new Class2(); + var source = new Subject>(); + + // Class2 overrides `NonValidatedDirectProperty`'s metadata to enable data validation. + target.Bind(Class1.NonValidatedDirectProperty, source); + source.OnNext(1); + + var result = target.Notifications.Cast>().ToList(); + Assert.Equal(1, result.Count); + } + [Fact] public void Bound_Validated_Direct_String_Property_Can_Be_Set_To_Null() { @@ -150,6 +164,15 @@ namespace Avalonia.Base.UnitTests } } + private class Class2 : Class1 + { + static Class2() + { + NonValidatedDirectProperty.OverrideMetadata( + new DirectPropertyMetadata(enableDataValidation: true)); + } + } + public class ViewModel : NotifyingBase { private string _stringValue;