public async Task ProcessAsync_AspForSpecifiedForDateField_GeneratesHrefForDateComponentFromModelExpression() { // Arrange var errorSummaryContext = new ErrorSummaryContext(); var context = new TagHelperContext( tagName: "govuk-error-summary-item", allAttributes: new TagHelperAttributeList(), items: new Dictionary <object, object>() { { typeof(ErrorSummaryContext), errorSummaryContext } }, uniqueId: "test"); var output = new TagHelperOutput( "govuk-error-summary-item", attributes: new TagHelperAttributeList(), getChildContentAsync: (useCachedResult, encoder) => { var tagHelperContent = new DefaultTagHelperContent(); return(Task.FromResult <TagHelperContent>(tagHelperContent)); }); output.TagMode = TagMode.SelfClosing; var modelExplorer = new EmptyModelMetadataProvider().GetModelExplorerForType(typeof(Model), new Model()) .GetExplorerForProperty(nameof(Model.Date)); var viewContext = new ViewContext(); var options = Options.Create(new GovUkFrontendAspNetCoreOptions()); var dateInputParseErrorsProvider = new DateInputParseErrorsProvider(); var modelName = nameof(Model.Date); viewContext.ModelState.AddModelError(modelName, "ModelState error message"); dateInputParseErrorsProvider.SetErrorsForModel(modelName, DateInputParseErrors.InvalidMonth | DateInputParseErrors.MissingYear); var tagHelper = new ErrorSummaryItemTagHelper(options, dateInputParseErrorsProvider) { AspFor = new ModelExpression(nameof(Model.Date), modelExplorer), ViewContext = viewContext }; // Act await tagHelper.ProcessAsync(context, output); // Assert Assert.Collection( errorSummaryContext.Items, item => { Assert.Equal("#Date.Month", item.Href); }); }