예제 #1
0
        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.");
        }
예제 #2
0
    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);
    }