public void ValidationSummaryPeerInvoke()
        {
            ValidationSummaryTestPage page = new ValidationSummaryTestPage();
            this.TestPanel.Children.Add(page);
            ValidationSummary vs = page.validationSummary;

            this.EnqueueConditional(() => { return page.validationSummary.Initialized; });
            this.EnqueueCallback(() =>
            {
                bool clicked = false;
                FocusingInvalidControlEventArgs eArgs = null;
                ValidationSummaryItem vsi = null;
                vs.FocusingInvalidControl += new EventHandler<FocusingInvalidControlEventArgs>(delegate(object o, FocusingInvalidControlEventArgs e)
                {
                    clicked = true;
                    eArgs = e;
                    vsi = e.Item;
                });

                ValidationSummaryAutomationPeer peer = new ValidationSummaryAutomationPeer(vs);
                Assert.IsNotNull(peer);
                ((IInvokeProvider)peer).Invoke();
                Assert.IsFalse(clicked, "No error is selected, so the event should not fire");

                ValidationSummaryItem newEsi = new ValidationSummaryItem(null, "test error", ValidationSummaryItemType.ObjectError, new ValidationSummaryItemSource("property name", page.nameTextBox), this);
                vs.Errors.Add(newEsi);
                vs.ErrorsListBoxInternal.SelectedItem = newEsi;
                ((IInvokeProvider)peer).Invoke();
                Assert.IsTrue(clicked, "Invoking with a selected ESI triggers the event to fire");
                Assert.AreEqual(newEsi, vsi, "The ESI should match the selected item");
                Assert.AreEqual("property name", eArgs.Target.PropertyName, "The source should match the selected item");
            });
            EnqueueTestComplete();
        }
        public void ValidationSummaryPeer()
        {
            ValidationSummaryTestPage page = new ValidationSummaryTestPage();
            this.TestPanel.Children.Add(page);
            ValidationSummary vs = page.validationSummary;

            this.EnqueueConditional(() => { return page.validationSummary.Initialized; });
            this.EnqueueCallback(() =>
            {
                ValidationSummaryAutomationPeer peer = new ValidationSummaryAutomationPeer(vs);
                Assert.IsNotNull(peer);
                Assert.AreEqual(AutomationControlType.Group, peer.GetAutomationControlType());
                Assert.AreEqual("ValidationSummary", peer.GetClassName());
                Assert.AreEqual("0 Errors", peer.GetName());

                vs.Errors.Add(new ValidationSummaryItem("header1", "msg1", ValidationSummaryItemType.PropertyError, null, null));
                Assert.AreEqual("1 Error", peer.GetName());
                vs.Errors.Add(new ValidationSummaryItem("header2", "msg2", ValidationSummaryItemType.PropertyError, null, null));
                Assert.AreEqual("2 Errors", peer.GetName());
            });
            EnqueueTestComplete();
        }