From e7c3e0c673303e3ff047d08ce4c6d1676432e992 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Fri, 12 May 2023 12:31:35 +0200 Subject: [PATCH] Added failing test for #11212. --- .../AvaloniaObjectTests_Coercion.cs | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_Coercion.cs b/tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_Coercion.cs index fe4262331f..0d0456dbda 100644 --- a/tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_Coercion.cs +++ b/tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_Coercion.cs @@ -31,6 +31,16 @@ namespace Avalonia.Base.UnitTests Assert.Equal(100, target.GetValue(Class1.AttachedProperty)); } + [Fact] + public void Coerces_Set_Value_Attached_On_Class_Not_Derived_From_Owner() + { + var target = new Class2(); + + target.SetValue(Class1.AttachedProperty, 150); + + Assert.Equal(100, target.GetValue(Class1.AttachedProperty)); + } + [Fact] public void Coerces_Bound_Value() { @@ -301,7 +311,7 @@ namespace Avalonia.Base.UnitTests coerce: CoerceFoo); public static readonly AttachedProperty AttachedProperty = - AvaloniaProperty.RegisterAttached( + AvaloniaProperty.RegisterAttached( "Attached", defaultValue: 11, coerce: CoerceFoo); @@ -332,8 +342,9 @@ namespace Avalonia.Base.UnitTests public static int CoerceFoo(AvaloniaObject instance, int value) { - var o = (Class1)instance; - return Math.Clamp(value, o.MinFoo, o.MaxFoo); + return instance is Class1 o ? + Math.Clamp(value, o.MinFoo, o.MaxFoo) : + Math.Clamp(value, 0, 100); } protected override void OnPropertyChangedCore(AvaloniaPropertyChangedEventArgs change)