public void GenerateErrorMessage_ErrorMessageSetOnContext_ReturnsContent() { // Arrange var tagHelperContext = new TagHelperContext( tagName: "test", allAttributes: new TagHelperAttributeList(), items: new Dictionary <object, object>(), uniqueId: "test"); var formGroupContext = new TestFormGroupContext(); formGroupContext.SetErrorMessage(visuallyHiddenText: "vht", attributes: null, content: new HtmlString("Error message")); var modelHelper = new Mock <IModelHelper>(); var tagHelper = new TestFormGroupTagHelper(new ComponentGenerator(), modelHelper.Object) { Id = "test" }; // Act var errorMessage = tagHelper.GenerateErrorMessage(tagHelperContext, formGroupContext); // Assert Assert.NotNull(errorMessage); }
public void GenerateErrorMessage_NonEmptyErrorMessage_AddsErrorMessageIdToDescribedBy() { // Arrange var tagHelperContext = new TagHelperContext( tagName: "test", allAttributes: new TagHelperAttributeList(), items: new Dictionary <object, object>(), uniqueId: "test"); var formGroupContext = new TestFormGroupContext(); formGroupContext.SetErrorMessage(visuallyHiddenText: null, attributes: null, content: new HtmlString("Context error")); var modelHelper = new Mock <IModelHelper>(); var tagHelper = new TestFormGroupTagHelper(new ComponentGenerator(), modelHelper.Object) { Id = "test" }; // Act var errorMessage = tagHelper.GenerateErrorMessage(tagHelperContext, formGroupContext); // Assert var element = errorMessage.RenderToElement(); Assert.Equal("test-error", element.GetAttribute("id")); Assert.Contains("test-error", tagHelper.DescribedBy?.Split(' ') ?? Array.Empty <string>()); }
public void GenerateErrorMessage_NoErrorMessageOnContextOrModelStateErrors_ReturnsNull() { // Arrange var tagHelperContext = new TagHelperContext( tagName: "test", allAttributes: new TagHelperAttributeList(), items: new Dictionary <object, object>(), uniqueId: "test"); var formGroupContext = new TestFormGroupContext(); var modelExplorer = new EmptyModelMetadataProvider().GetModelExplorerForType(typeof(Model), new Model()) .GetExplorerForProperty(nameof(Model.SimpleProperty)); var viewContext = new ViewContext(); var modelExpression = "Foo"; var modelHelper = new Mock <IModelHelper>(); modelHelper.Setup(mock => mock.GetValidationMessage(viewContext, modelExplorer, modelExpression)).Returns((string)null); var tagHelper = new TestFormGroupTagHelper(new ComponentGenerator(), modelHelper.Object) { AspFor = new ModelExpression(modelExpression, modelExplorer), Id = "test", ViewContext = viewContext }; // Act var errorMessage = tagHelper.GenerateErrorMessage(tagHelperContext, formGroupContext); // Assert Assert.Null(errorMessage); }
public void GenerateErrorMessage_AddsErrorToFormErrorContext() { // Arrange var formErrorContext = new FormErrorContext(); var tagHelperContext = new TagHelperContext( tagName: "test", allAttributes: new TagHelperAttributeList(), items: new Dictionary <object, object>() { { typeof(FormErrorContext), formErrorContext } }, uniqueId: "test"); var formGroupContext = new TestFormGroupContext(); formGroupContext.SetErrorMessage(visuallyHiddenText: "vht", attributes: null, content: new HtmlString("Error message")); var modelHelper = new Mock <IModelHelper>(); var tagHelper = new TestFormGroupTagHelper(new ComponentGenerator(), modelHelper.Object) { Id = "test" }; // Act tagHelper.GenerateErrorMessage(tagHelperContext, formGroupContext); // Assert Assert.Collection( formErrorContext.Errors, error => { Assert.Equal("Error message", error.Content.RenderToString()); }); }
public void GenerateErrorMessage_EmptyErrorMessage_DoesNotAddErrorMessageIdToDescribedBy() { // Arrange var tagHelperContext = new TagHelperContext( tagName: "test", allAttributes: new TagHelperAttributeList(), items: new Dictionary <object, object>(), uniqueId: "test"); var formGroupContext = new TestFormGroupContext(); var modelHelper = new Mock <IModelHelper>(); var tagHelper = new TestFormGroupTagHelper(new ComponentGenerator(), modelHelper.Object) { Id = "test" }; // Act tagHelper.GenerateErrorMessage(tagHelperContext, formGroupContext); // Assert Assert.DoesNotContain("test-error", tagHelper.DescribedBy?.Split(' ') ?? Array.Empty <string>()); }
public void GenerateErrorMessage_NoErrorMessageOnContextOrAspFor_ReturnsNull() { // Arrange var tagHelperContext = new TagHelperContext( tagName: "test", allAttributes: new TagHelperAttributeList(), items: new Dictionary <object, object>(), uniqueId: "test"); var formGroupContext = new TestFormGroupContext(); var modelHelper = new Mock <IModelHelper>(); var tagHelper = new TestFormGroupTagHelper(new ComponentGenerator(), modelHelper.Object) { Id = "test" }; // Act var errorMessage = tagHelper.GenerateErrorMessage(tagHelperContext, formGroupContext); // Assert Assert.Null(errorMessage); }
public void GenerateErrorMessage_ErrorMessageOnContextAndModelStateUsesContextError_ReturnsContent() { // Arrange var tagHelperContext = new TagHelperContext( tagName: "test", allAttributes: new TagHelperAttributeList(), items: new Dictionary <object, object>(), uniqueId: "test"); var formGroupContext = new TestFormGroupContext(); formGroupContext.SetErrorMessage(visuallyHiddenText: "vht", attributes: null, content: new HtmlString("Context error")); var modelExplorer = new EmptyModelMetadataProvider().GetModelExplorerForType(typeof(Model), new Model()) .GetExplorerForProperty(nameof(Model.SimpleProperty)); var viewContext = new ViewContext(); var modelExpression = nameof(Model.SimpleProperty); var modelHelper = new Mock <IModelHelper>(); modelHelper.Setup(mock => mock.GetValidationMessage(viewContext, modelExplorer, modelExpression)).Returns("ModelState error"); var tagHelper = new TestFormGroupTagHelper(new ComponentGenerator(), modelHelper.Object) { AspFor = new ModelExpression(modelExpression, modelExplorer), Id = "test", ViewContext = viewContext }; // Act var errorMessage = tagHelper.GenerateErrorMessage(tagHelperContext, formGroupContext); // Assert Assert.NotNull(errorMessage); Assert.Contains("Context error", errorMessage.RenderToString()); }