public void DoesNotReadErrorsFromCrossValidationContainerByDefault()
        {
            // containment tree:
            //
            // Page : IValidationContainer
            //   - outerVC
            //   - inBetweenControl1 : IValidationContainer
            //         - innerVC

            Spring.Web.UI.Page        page = new Spring.Web.UI.Page();
            Spring.Web.UI.UserControl inBetweenControl1 = new Spring.Web.UI.UserControl();
            inBetweenControl1.ID = "InBetweenControl1";
            TestValidationControl innerVC = new TestValidationControl();

            inBetweenControl1.Controls.Add(innerVC);
            page.Controls.Add(inBetweenControl1);
            TestValidationControl outerVC = new TestValidationControl();

            page.Controls.Add(outerVC);

            inBetweenControl1.ValidationErrors.AddError("provider", new ErrorMessage("msg"));

            Assert.AreSame(inBetweenControl1, innerVC.TheValidationContainer);
            Assert.AreSame(page, outerVC.TheValidationContainer);
            Assert.AreEqual(1, innerVC.TheValidationContainer.ValidationErrors.GetErrors("provider").Count);
            Assert.AreEqual(0, outerVC.TheValidationContainer.ValidationErrors.GetErrors("provider").Count);
        }
        public void CanReadErrorsFromCrossValidationContainerByDefault()
        {
            // containment tree:
            //
            // Page : IValidationContainer
            //   - outerVC
            //   - inBetweenControl1 : IValidationContainer
            //         - innerVC

            Spring.Web.UI.Page        page        = new Spring.Web.UI.Page();
            Spring.Web.UI.UserControl userControl = new Spring.Web.UI.UserControl();
            userControl.ID = "userControl";
            TestValidationControl innerVC = new TestValidationControl();

            userControl.Controls.Add(innerVC);
            page.Controls.Add(userControl);
            TestValidationControl outerVC = new TestValidationControl();

            page.Controls.Add(outerVC);

            userControl.ValidationErrors.AddError("provider", new ErrorMessage("msg"));

            Assert.AreSame(userControl, innerVC.TheValidationContainer);
            Assert.AreSame(page, outerVC.TheValidationContainer);
            Assert.AreEqual(1, innerVC.TheValidationContainer.ValidationErrors.GetErrors("provider").Count);
            Assert.AreEqual(0, outerVC.TheValidationContainer.ValidationErrors.GetErrors("provider").Count);

            // test local-relative name resolution
            outerVC.ValidationContainerName = "userControl";
            Assert.AreEqual(1, outerVC.TheValidationContainer.ValidationErrors.GetErrors("provider").Count);

            // test global name resolution
            outerVC.ValidationContainerName = "::userControl";
            Assert.AreEqual(1, outerVC.TheValidationContainer.ValidationErrors.GetErrors("provider").Count);
        }
        public void CanReadErrorsFromCrossValidationContainerByDefault()
        {
            // containment tree:
            //
            // Page : IValidationContainer
            //   - outerVC
            //   - inBetweenControl1 : IValidationContainer
            //         - innerVC

            Spring.Web.UI.Page page = new Spring.Web.UI.Page();
            Spring.Web.UI.UserControl userControl = new Spring.Web.UI.UserControl();
            userControl.ID = "userControl";
            TestValidationControl innerVC = new TestValidationControl();
            userControl.Controls.Add(innerVC);
            page.Controls.Add(userControl);
            TestValidationControl outerVC = new TestValidationControl();
            page.Controls.Add(outerVC);

            userControl.ValidationErrors.AddError("provider", new ErrorMessage("msg"));

            Assert.AreSame(userControl, innerVC.TheValidationContainer);
            Assert.AreSame(page, outerVC.TheValidationContainer);
            Assert.AreEqual(1, innerVC.TheValidationContainer.ValidationErrors.GetErrors("provider").Count);
            Assert.AreEqual(0, outerVC.TheValidationContainer.ValidationErrors.GetErrors("provider").Count);

            // test local-relative name resolution
            outerVC.ValidationContainerName = "userControl";
            Assert.AreEqual(1, outerVC.TheValidationContainer.ValidationErrors.GetErrors("provider").Count);

            // test global name resolution
            outerVC.ValidationContainerName = "::userControl";
            Assert.AreEqual(1, outerVC.TheValidationContainer.ValidationErrors.GetErrors("provider").Count);
        }
        public void NoExceptionWhenNoValidationContainer()
        {
            TestValidationControl vc = new TestValidationControl();

            Assert.IsFalse(vc.TheDesignMode);
            Assert.IsNull(vc.TheMessageSource);
            Assert.IsNull(vc.TheValidationContainer);

            vc.TestRender(null);
        }
        public void ReadsErrorsFromClosestValidationContainerByDefault()
        {
            // indirect containment
            Spring.Web.UI.Page    page = new Spring.Web.UI.Page();
            TestValidationControl vc   = new TestValidationControl();

            Spring.Web.UI.UserControl inBetweenControl = new Spring.Web.UI.UserControl();
            inBetweenControl.Controls.Add(vc);
            page.Controls.Add(inBetweenControl);
            Assert.AreSame(inBetweenControl, vc.TheValidationContainer);
        }
示例#6
0
        public void DefaultsToValidationContainerMessageSource()
        {
            IMessageSource messageSource = A.Fake <IMessageSource>();
            //            IValidationContainer container = (IValidationContainer)mocks.DynamicMock(typeof(IValidationContainer));

            Page page = new Page();

            page.MessageSource = messageSource;
            TestValidationControl ctl = new TestValidationControl();

            page.Controls.Add(ctl);

            Assert.AreEqual(messageSource, ctl.TheMessageSource);
        }
        public void ResolvesAndRendersValidationErrorsUsingValidationContainer()
        {
            TestValidationControl vc = new TestValidationControl();
            vc.ID = "TestControl";

            Page page = new Page();
            page.Controls.Add(vc);
            page.ValidationErrors.AddError(vc.Provider, new ErrorMessage("msgId"));
            StaticMessageSource msgSrc = new StaticMessageSource();
            msgSrc.AddMessage("msgId", CultureInfo.CurrentUICulture, "Resolved Message Text");
            page.MessageSource = msgSrc;

            vc.TestRender(null);
            Assert.AreEqual("Resolved Message Text", vc.LastErrorsRendered[0]);
        }
        public void DefaultsToControlIDOrStringEmptyAsProviderName()
        {
            TestValidationControl vc;

            vc = new TestValidationControl(null);
            Assert.AreEqual(string.Empty, vc.Provider);

            vc = new TestValidationControl(null);
            vc.ID = "TestControl";
            Assert.AreEqual(vc.ID, vc.Provider);

            vc = new TestValidationControl(null);
            vc.ID = "TestControl";
            vc.Provider = "TestProvider";

            Assert.AreEqual("TestProvider", vc.Provider);
        }
        public void DefaultsToControlIDOrStringEmptyAsProviderName()
        {
            TestValidationControl vc;

            vc = new TestValidationControl(null);
            Assert.AreEqual(string.Empty, vc.Provider);

            vc    = new TestValidationControl(null);
            vc.ID = "TestControl";
            Assert.AreEqual(vc.ID, vc.Provider);

            vc          = new TestValidationControl(null);
            vc.ID       = "TestControl";
            vc.Provider = "TestProvider";

            Assert.AreEqual("TestProvider", vc.Provider);
        }
        public void NoExceptionWhenNoErrors()
        {
            Page page = new Page();

            page.MessageSource = new StaticMessageSource();
            TestValidationControl vc = new TestValidationControl();

            page.Controls.Add(vc);

            // assert assumptions
            Assert.IsFalse(vc.TheDesignMode);
            Assert.AreSame(page, vc.TheValidationContainer);
            Assert.AreSame(page.MessageSource, vc.TheMessageSource);
            Assert.AreEqual(0, page.ValidationErrors.GetResolvedErrors(vc.Provider, vc.TheMessageSource).Count);

            vc.TestRender(null);
        }
        public void ResolvesAndRendersValidationErrorsUsingValidationContainer()
        {
            TestValidationControl vc = new TestValidationControl();

            vc.ID = "TestControl";

            Page page = new Page();

            page.Controls.Add(vc);
            page.ValidationErrors.AddError(vc.Provider, new ErrorMessage("msgId"));
            StaticMessageSource msgSrc = new StaticMessageSource();

            msgSrc.AddMessage("msgId", CultureInfo.CurrentUICulture, "Resolved Message Text");
            page.MessageSource = msgSrc;

            vc.TestRender(null);
            Assert.AreEqual("Resolved Message Text", vc.LastErrorsRendered[0]);
        }
        public void ResolveValidationContainerToEnclosingParentRecursively()
        {
            // direct containment
            UserControl           uc = new UserControl();
            TestValidationControl vc = new TestValidationControl();

            uc.Controls.Add(vc);
            Assert.AreSame(uc, vc.TheValidationContainer);

            // indirect containment
            uc = new UserControl();
            vc = new TestValidationControl();
            Control inBetweenControl = new Panel();

            inBetweenControl.Controls.Add(vc);
            uc.Controls.Add(inBetweenControl);
            Assert.AreSame(uc, vc.TheValidationContainer);
        }
        public void ResolveValidationContainerToEnclosingPageRecursively()
        {
            // direct containment
            Page page = new Page();
            TestValidationControl vc = new TestValidationControl();

            page.Controls.Add(vc);
            Assert.AreSame(page, vc.TheValidationContainer);

            // indirect containment
            page = new Page();
            vc   = new TestValidationControl();
            Control inBetweenControl = new System.Web.UI.WebControls.Panel();

            inBetweenControl.Controls.Add(vc);
            page.Controls.Add(inBetweenControl);
            Assert.AreSame(page, vc.TheValidationContainer);
        }
        public void ThrowsIfCreateValidationErrorsRendererReturnsNull()
        {
            TestValidationControl vc = new TestValidationControl(null);

            vc.ID = "TestControl";

            Page page = new Page();

            page.Controls.Add(vc);
            page.ValidationErrors.AddError(vc.Provider, new ErrorMessage("msgId"));

            try
            {
                vc.TestRender(null);
                Assert.Fail();
            }
            catch (ArgumentNullException ane)
            {
                Assert.AreEqual("Renderer", ane.ParamName);
            }
        }
        public void DoesNotReadErrorsFromCrossValidationContainerByDefault()
        {
            // containment tree:
            //
            // Page : IValidationContainer
            //   - outerVC
            //   - inBetweenControl1 : IValidationContainer
            //         - innerVC
 
            Spring.Web.UI.Page page = new Spring.Web.UI.Page();
            Spring.Web.UI.UserControl inBetweenControl1 = new Spring.Web.UI.UserControl();
            inBetweenControl1.ID = "InBetweenControl1";
            TestValidationControl innerVC = new TestValidationControl();
            inBetweenControl1.Controls.Add(innerVC);
            page.Controls.Add(inBetweenControl1);
            TestValidationControl outerVC = new TestValidationControl();
            page.Controls.Add(outerVC);

            inBetweenControl1.ValidationErrors.AddError("provider", new ErrorMessage("msg"));

            Assert.AreSame(inBetweenControl1, innerVC.TheValidationContainer);
            Assert.AreSame(page, outerVC.TheValidationContainer);
            Assert.AreEqual(1, innerVC.TheValidationContainer.ValidationErrors.GetErrors("provider").Count);
            Assert.AreEqual(0, outerVC.TheValidationContainer.ValidationErrors.GetErrors("provider").Count);
        }
 public void ReadsErrorsFromClosestValidationContainerByDefault()
 {
     // indirect containment
     Spring.Web.UI.Page page = new Spring.Web.UI.Page();
     TestValidationControl vc = new TestValidationControl();
     Spring.Web.UI.UserControl inBetweenControl = new Spring.Web.UI.UserControl();
     inBetweenControl.Controls.Add(vc);
     page.Controls.Add(inBetweenControl);
     Assert.AreSame(inBetweenControl, vc.TheValidationContainer);
 }
        public void DefaultsToValidationContainerMessageSource()
        {
            MockRepository mocks = new MockRepository();
            IMessageSource messageSource = (IMessageSource)mocks.DynamicMock(typeof(IMessageSource));
            //            IValidationContainer container = (IValidationContainer)mocks.DynamicMock(typeof(IValidationContainer));

            Page page = new Page();
            page.MessageSource = messageSource;
            TestValidationControl ctl = new TestValidationControl();
            page.Controls.Add(ctl);

            Assert.AreEqual(messageSource, ctl.TheMessageSource);
        }
        public void ResolveValidationContainerToEnclosingPageRecursively()
        {
            // direct containment
            Page page = new Page();
            TestValidationControl vc = new TestValidationControl();
            page.Controls.Add(vc);
            Assert.AreSame(page, vc.TheValidationContainer);

            // indirect containment
            page = new Page();
            vc = new TestValidationControl();
            Control inBetweenControl = new System.Web.UI.WebControls.Panel();
            inBetweenControl.Controls.Add(vc);
            page.Controls.Add(inBetweenControl);
            Assert.AreSame(page, vc.TheValidationContainer);
        }
        public void ResolveValidationContainerToEnclosingParentRecursively()
        {
            // direct containment
            UserControl uc = new UserControl();
            TestValidationControl vc = new TestValidationControl();
            uc.Controls.Add(vc);
            Assert.AreSame(uc, vc.TheValidationContainer);

            // indirect containment
            uc = new UserControl();
            vc = new TestValidationControl();
            Control inBetweenControl = new Panel();
            inBetweenControl.Controls.Add(vc);
            uc.Controls.Add(inBetweenControl);
            Assert.AreSame(uc, vc.TheValidationContainer);
        }
        public void NoExceptionWhenNoErrors()
        {
            Page page = new Page();
            page.MessageSource = new StaticMessageSource();
            TestValidationControl vc = new TestValidationControl();
            page.Controls.Add(vc);

            // assert assumptions
            Assert.IsFalse(vc.TheDesignMode);
            Assert.AreSame(page, vc.TheValidationContainer);
            Assert.AreSame( page.MessageSource, vc.TheMessageSource );
            Assert.AreEqual(0, page.ValidationErrors.GetResolvedErrors(vc.Provider, vc.TheMessageSource).Count);

            vc.TestRender(null);
        }
        public void NoExceptionWhenNoValidationContainer()
        {
            TestValidationControl vc = new TestValidationControl();
            Assert.IsFalse(vc.TheDesignMode);
            Assert.IsNull(vc.TheMessageSource);
            Assert.IsNull(vc.TheValidationContainer);

            vc.TestRender(null);
        }
        public void ThrowsIfCreateValidationErrorsRendererReturnsNull()
        {
            TestValidationControl vc = new TestValidationControl(null);
            vc.ID = "TestControl";

            Page page = new Page();
            page.Controls.Add(vc);
            page.ValidationErrors.AddError(vc.Provider, new ErrorMessage("msgId"));

            try
            {
                vc.TestRender(null);
                Assert.Fail();
            }
            catch (ArgumentNullException ane)
            {
                Assert.AreEqual("Renderer", ane.ParamName);
            }
        }