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 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); }
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 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 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 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 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); }