Exemplo n.º 1
0
        public void When_NameScope()
        {
            var SUT = new When_NameScope();

            SUT.ForceLoaded();

            var OuterElementName = NameScope.FindInNamescopes(
                SUT,
                nameof(SUT.OuterElementName)) as FrameworkElement;
            var OuterBorder = NameScope.FindInNamescopes(
                SUT,
                nameof(SUT.OuterBorder)) as FrameworkElement;

            Assert.IsNotNull(OuterElementName);
            Assert.IsNotNull(OuterBorder);

            var OuterElementTopLevelFromOuterBorder = NameScope.FindInNamescopes(
                OuterBorder,
                nameof(SUT.OuterElementTopLevel)) as FrameworkElement;

            Assert.IsNotNull(OuterElementTopLevelFromOuterBorder);

            // search through visual tree walking
            var OuterElementTopLevelFromOuterElementName = NameScope.FindInNamescopes(
                OuterElementName,
                nameof(SUT.OuterElementTopLevel)) as FrameworkElement;
            var OuterBorderFromOuterElementName = NameScope.FindInNamescopes(
                OuterElementName,
                nameof(SUT.OuterBorder)) as FrameworkElement;

            Assert.IsNotNull(OuterElementTopLevelFromOuterElementName);
            Assert.IsNotNull(OuterBorderFromOuterElementName);

            // search via namescope
            var InnerBorderFromOuterElementName = NameScope.FindInNamescopes(
                SUT.OuterElementName as FrameworkElement,
                nameof(When_NameScope_Inner.InnerBorder)) as FrameworkElement;

            Assert.IsNotNull(InnerBorderFromOuterElementName);

            var InnerBorderFromOuterElementNameContent = NameScope.FindInNamescopes(
                SUT.OuterElementName.Content as FrameworkElement,
                nameof(When_NameScope_Inner.InnerBorder)) as FrameworkElement;

            Assert.IsNotNull(InnerBorderFromOuterElementNameContent);

            // Search through namescope from the inner element to the inner top level name
            var InnerElementTopLevelFromInnerBorder = NameScope.FindInNamescopes(
                InnerBorderFromOuterElementNameContent,
                nameof(When_NameScope_Inner.InnerElementTopLevel)) as FrameworkElement;

            Assert.IsNotNull(InnerBorderFromOuterElementNameContent);
            Assert.AreEqual(InnerElementTopLevelFromInnerBorder.Name, "OuterElementName");
        }