public void GeneratesCorrectTableForModel() { // Arrange PropertyTable propertyTable = new PropertyTable(); ModelExpressionProvider modelExpressionProvider = new ModelExpressionProvider ( new EmptyModelMetadataProvider(), new ExpressionTextCache() ); Model model = new Model("X", "Y"); propertyTable.For = modelExpressionProvider.CreateModelExpression ( new ViewDataDictionary <Model> ( new EmptyModelMetadataProvider(), new ModelStateDictionary() ), _ => model ); TagHelperContext tagHelperContext = new TagHelperContext ( "propertytable", new TagHelperAttributeList(), new Dictionary <object, object>(), string.Empty ); Mock <TagHelperContent> tagHelperContentMock = new Mock <TagHelperContent>(); TagHelperOutput tagHelperOutput = new TagHelperOutput ( string.Empty, new TagHelperAttributeList(), (cache, encoder) => Task.FromResult(tagHelperContentMock.Object) ); // Act propertyTable.Process(tagHelperContext, tagHelperOutput); // Assert Assert.Equal ( $"<table class=\"table\"><thead class=\"thead-dark\"><tr><th scope=\"col\">Property</th><th scope=\"col\">Value</th></tr></thead><tbody><tr><th scope=\"row\">{nameof(model.Key)}</th><td>{model.Key}</td></tr><tr><th scope=\"row\">{nameof(model.Value)}</th><td>{model.Value}</td></tr></tbody></table>", tagHelperOutput.PostContent.GetContent() ); }