using System; using Avalonia.Controls.Utils; using Avalonia.UnitTests; using Xunit; namespace Avalonia.Controls.UnitTests.Utils { public class AncestorFinderTests : ScopedTestBase { [Fact] public void SanityCheck() { var child = new Control(); var parent = new Decorator(); var grandParent = new Border(); var grandParent2 = new Border(); StyledElement? currentParent = null; var subscription = AncestorFinder.Create(child, typeof (Border)).Subscribe(s => currentParent = s); Assert.Null(currentParent); parent.Child = child; Assert.Null(currentParent); grandParent.Child = parent; Assert.Equal(grandParent, currentParent); grandParent.Child = null; grandParent2.Child = parent; Assert.Equal(grandParent2, currentParent); subscription.Dispose(); parent.Child = null; Assert.Equal(grandParent2, currentParent); } } }