("", "Hello, world!")));
}
// ObjectTemplate
private static string SpyCallback(HtmlHelper html, ModelMetadata metadata, string htmlFieldName, string templateName, DataBoundControlMode mode, object additionalViewData)
{
return String.Format("Model = {0}, ModelType = {1}, PropertyName = {2}, HtmlFieldName = {3}, TemplateName = {4}, Mode = {5}, AdditionalViewData = {6}",
metadata.Model ?? "(null)",
metadata.ModelType == null ? "(null)" : metadata.ModelType.FullName,
metadata.PropertyName ?? "(null)",
htmlFieldName == String.Empty ? "(empty)" : htmlFieldName ?? "(null)",
templateName ?? "(null)",
mode,
AnonymousObject.Inspect(additionalViewData));
}
class ObjectTemplateModel
{
public ObjectTemplateModel()
{
ComplexInnerModel = new object();
}
public string Property1 { get; set; }
public string Property2 { get; set; }
public object ComplexInnerModel { get; set; }
}
[Fact]
public void ObjectTemplateDisplaysSimplePropertiesOnObjectByDefault()
{
string expected = @"Property1
Model = p1, ModelType = System.String, PropertyName = Property1, HtmlFieldName = Property1, TemplateName = (null), Mode = ReadOnly, AdditionalViewData = (null)
Property2
Model = (null), ModelType = System.String, PropertyName = Property2, HtmlFieldName = Property2, TemplateName = (null), Mode = ReadOnly, AdditionalViewData = (null)
";
// Arrange
ObjectTemplateModel model = new ObjectTemplateModel { Property1 = "p1", Property2 = null };
HtmlHelper html = MakeHtmlHelper(model);
// Act
string result = DefaultDisplayTemplates.ObjectTemplate(html, SpyCallback);
// Assert
Assert.Equal(expected, result);
}
[Fact]
public void ObjectTemplateWithDisplayNameMetadata()
{
string expected = @"Model = (null), ModelType = System.String, PropertyName = Property1, HtmlFieldName = Property1, TemplateName = (null), Mode = ReadOnly, AdditionalViewData = (null)
Custom display name
Model = (null), ModelType = System.String, PropertyName = Property2, HtmlFieldName = Property2, TemplateName = (null), Mode = ReadOnly, AdditionalViewData = (null)
";
// Arrange
ObjectTemplateModel model = new ObjectTemplateModel();
HtmlHelper html = MakeHtmlHelper(model);
Mock provider = new Mock();
Func