From 6ee2c432771600666324ffe1ff77640ceab3f40e Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Fri, 30 Sep 2022 09:39:51 +0200 Subject: [PATCH] Added failing inheritance test. --- .../AvaloniaObjectTests_Inheritance.cs | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_Inheritance.cs b/tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_Inheritance.cs index d0768eae1f..c5cbda5325 100644 --- a/tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_Inheritance.cs +++ b/tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_Inheritance.cs @@ -112,6 +112,30 @@ namespace Avalonia.Base.UnitTests Assert.Equal("changed", child.GetValue(Class1.BazProperty)); } + [Fact] + public void Setting_InheritanceParent_Raises_PropertyChanged_When_Parent_And_Grandparent_Has_Value_Set() + { + Class1 grandparent = new Class1(); + Class2 parent = new Class2 { Parent = grandparent }; + bool raised = false; + + grandparent.SetValue(Class1.BazProperty, "changed1"); + parent.SetValue(Class1.BazProperty, "changed2"); + + Class2 child = new Class2(); + child.PropertyChanged += (s, e) => + raised = s == child && + e.Property == Class1.BazProperty && + (string)e.OldValue == "bazdefault" && + (string)e.NewValue == "changed2" && + e.Priority == BindingPriority.Inherited; + + child.Parent = parent; + + Assert.True(raised); + Assert.Equal("changed2", child.GetValue(Class1.BazProperty)); + } + [Fact] public void Setting_InheritanceParent_Raises_PropertyChanged_For_Attached_Property_When_Parent_Has_Value_Set() {