public async Task ProcessAsync_WithoutSpecifyingRenderMode_ThrowsError() { // Arrange var tagHelper = new ComponentTagHelper { ViewContext = GetViewContext(), }; var context = GetTagHelperContext(); var output = GetTagHelperOutput(); // Act & Assert await ExceptionAssert.ThrowsArgumentAsync( () => tagHelper.ProcessAsync(context, output), nameof(RenderMode), "A value for the 'render-mode' attribute must be supplied to the 'component' tag helper."); }
public async Task ProcessAsync_WithEmptyNameFor_Throws() { // Arrange var expectedTagName = "span"; var expectedMessage = "The name of an HTML field cannot be null or empty. Instead use methods " + "Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper.Editor or Microsoft.AspNetCore.Mvc.Rendering." + "IHtmlHelper`1.EditorFor with a non-empty htmlFieldName argument value."; var metadataProvider = new EmptyModelMetadataProvider(); var modelExpression = CreateModelExpression(string.Empty); var htmlGenerator = new TestableHtmlGenerator(metadataProvider); var viewContext = TestableHtmlGenerator.GetViewContext( model: null, htmlGenerator: htmlGenerator, metadataProvider: metadataProvider); var validationMessageTagHelper = new ValidationMessageTagHelper(htmlGenerator) { For = modelExpression, ViewContext = viewContext, }; var tagHelperContext = new TagHelperContext( expectedTagName, new TagHelperAttributeList { { "for", modelExpression }, }, new Dictionary <object, object>(), "test"); var output = new TagHelperOutput( expectedTagName, new TagHelperAttributeList(), (_, __) => Task.FromResult <TagHelperContent>(new DefaultTagHelperContent())); // Act & Assert await ExceptionAssert.ThrowsArgumentAsync( () => validationMessageTagHelper.ProcessAsync(tagHelperContext, output), paramName : "expression", exceptionMessage : expectedMessage); }