public void FindChildControl_IndexTooGreat()
        {
            ThreadRunner.RunInSTA(delegate
            {
                DependencyObjectExtensionsTestVisual visual = new DependencyObjectExtensionsTestVisual();
                RenderUtility.RenderVisual(visual);

                TextBox tb = visual.FindChildControl <TextBox>(4);
                Assert.IsNull(tb);
            });
        }
        public void FindChildControl_IndexLessThanZero()
        {
            ThreadRunner.RunInSTA(delegate
            {
                DependencyObjectExtensionsTestVisual visual = new DependencyObjectExtensionsTestVisual();
                RenderUtility.RenderVisual(visual);

                TextBox tb = visual.FindChildControl <TextBox>(-1);
                Assert.IsTrue(tb != null && tb.Text == "TextBox 1");
            });
        }
        public void FindParentControl_ControlNull()
        {
            ThreadRunner.RunInSTA(delegate
            {
                DependencyObjectExtensionsTestVisual visual = null;
                RenderUtility.RenderVisual(visual);

                StackPanel sp = visual.FindParentControl <StackPanel>();

                Assert.IsNull(sp);
            });
        }
        public void FindParentControl_ParentDoesNotExists()
        {
            ThreadRunner.RunInSTA(delegate
            {
                DependencyObjectExtensionsTestVisual visual = new DependencyObjectExtensionsTestVisual();
                RenderUtility.RenderVisual(visual);

                StackPanel intermediateStackPanel = visual.IntermediatePanel;

                TabControl g = intermediateStackPanel.FindParentControl <TabControl>();

                Assert.IsNull(g);
            });
        }
        public void FindParentControl_ParentExists()
        {
            ThreadRunner.RunInSTA(delegate
            {
                DependencyObjectExtensionsTestVisual visual = new DependencyObjectExtensionsTestVisual();
                RenderUtility.RenderVisual(visual);

                StackPanel intermediateStackPanel = visual.IntermediatePanel;

                StackPanel sp = intermediateStackPanel.FindParentControl <StackPanel>();

                Assert.IsTrue(sp != null && sp.Name == "RootPanel");
            });
        }
        public void FindChildControl_FindFirst()
        {
            ThreadRunner.RunInSTA(delegate
            {
                DependencyObjectExtensionsTestVisual visual = new DependencyObjectExtensionsTestVisual();
                RenderUtility.RenderVisual(visual);

                //Assume first element
                TextBox tb = visual.FindChildControl <TextBox>();
                Assert.IsTrue(tb != null && tb.Text == "TextBox 1");

                //Explicitly findfirst element
                tb = visual.FindChildControl <TextBox>(0);
                Assert.IsTrue(tb != null && tb.Text == "TextBox 1");
            });
        }
        public void FindChildControl_FindNonExistentControl()
        {
            ThreadRunner.RunInSTA(delegate
            {
                DependencyObjectExtensionsTestVisual visual = new DependencyObjectExtensionsTestVisual();
                RenderUtility.RenderVisual(visual);

                //Attempt to find first, implicit
                TabControl tc = visual.FindChildControl <TabControl>();
                Assert.IsNull(tc);

                //Attempt to find first, explicit
                tc = visual.FindChildControl <TabControl>(0);
                Assert.IsNull(tc);

                //Attempt to find other than first
                tc = visual.FindChildControl <TabControl>(2);
                Assert.IsNull(tc);
            });
        }