Browse Source

Empty ASPX T4 template generates a typed ViewUserControl when a partial view and a model is specified.

pull/18/head
Matt Ward 14 years ago
parent
commit
76d1ead98a
  1. 14
      src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/CSharp/CodeTemplates/AddView/AspxCSharp/Empty.cs
  2. 2
      src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/CSharp/CodeTemplates/AddView/AspxCSharp/Empty.tt
  3. 2
      src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/VisualBasic/CodeTemplates/AddView/AspxVisualBasic/Empty.tt
  4. 52
      src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/CodeTemplates/AspxCSharpEmptyViewTemplateTests.cs

14
src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/CSharp/CodeTemplates/AddView/AspxCSharp/Empty.cs

@ -56,7 +56,19 @@ namespace ICSharpCode.AspNet.Mvc.AspxCSharp { @@ -56,7 +56,19 @@ namespace ICSharpCode.AspNet.Mvc.AspxCSharp {
#line hidden
#line 4 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Empty.tt"
this.Write("<%@ Control Language=\"C#\" Inherits=\"System.Web.Mvc.ViewUserControl\" %>\r\n\r\n");
this.Write("<%@ Control Language=\"C#\" Inherits=\"System.Web.Mvc.ViewUserControl");
#line default
#line hidden
#line 4 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Empty.tt"
this.Write(this.ToStringHelper.ToStringWithCulture( GetViewPageType() ));
#line default
#line hidden
#line 4 "D:\projects\dotnet\SharpDevelop.AspNetMvc\src\AddIns\BackendBindings\AspNet.Mvc\Project\ItemTemplates\CSharp\CodeTemplates\AddView\AspxCSharp\Empty.tt"
this.Write("\" %>\r\n\r\n");
#line default
#line hidden

2
src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/CSharp/CodeTemplates/AddView/AspxCSharp/Empty.tt

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
<#@ template language="C#" HostSpecific="true" #>
<#@ import namespace="ICSharpCode.AspNet.Mvc" #>
<# if (MvcHost.IsPartialView) { #>
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<#= GetViewPageType() #>" %>
<# } else if(MvcHost.IsContentPage) { #>
<%@ Page Language="C#" MasterPageFile="<#= MvcHost.MasterPageFile #>" Inherits="System.Web.Mvc.ViewPage<#= GetViewPageType() #>" %>

2
src/AddIns/BackendBindings/AspNet.Mvc/Project/ItemTemplates/VisualBasic/CodeTemplates/AddView/AspxVisualBasic/Empty.tt

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
<#@ template language="VB" HostSpecific="true" #>
<#@ import namespace="ICSharpCode.AspNet.Mvc" #>
<# If MvcHost.IsPartialView Then #>
<%@ Control Language="VB" Inherits="System.Web.Mvc.ViewUserControl" %>
<%@ Control Language="VB" Inherits="System.Web.Mvc.ViewUserControl<#= GetViewPageType() #>" %>
<# ElseIf MvcHost.IsContentPage Then #>
<%@ Page Language="VB" MasterPageFile="<#= MvcHost.MasterPageFile #>" Inherits="System.Web.Mvc.ViewPage<#= GetViewPageType() #>" %>

52
src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/CodeTemplates/AspxCSharpEmptyViewTemplateTests.cs

@ -11,23 +11,23 @@ namespace AspNet.Mvc.Tests.CodeTemplates @@ -11,23 +11,23 @@ namespace AspNet.Mvc.Tests.CodeTemplates
[TestFixture]
public class AspxCSharpEmptyViewTemplateTests
{
Empty emptyViewTemplate;
Empty templatePreprocessor;
TestableMvcTextTemplateHost mvcHost;
void CreateEmptyViewTemplatePreprocessor()
void CreateTemplatePreprocessor()
{
mvcHost = new TestableMvcTextTemplateHost();
emptyViewTemplate = new Empty();
emptyViewTemplate.Host = mvcHost;
templatePreprocessor = new Empty();
templatePreprocessor.Host = mvcHost;
}
[Test]
public void GetViewPageType_HostViewDataTypeNameIsMyAppMyModel_ReturnsMyAppMyModelSurroundedByAngleBrackets()
{
CreateEmptyViewTemplatePreprocessor();
CreateTemplatePreprocessor();
mvcHost.ViewDataTypeName = "MyApp.MyModel";
string viewPageType = emptyViewTemplate.GetViewPageType();
string viewPageType = templatePreprocessor.GetViewPageType();
Assert.AreEqual("<MyApp.MyModel>", viewPageType);
}
@ -35,10 +35,10 @@ namespace AspNet.Mvc.Tests.CodeTemplates @@ -35,10 +35,10 @@ namespace AspNet.Mvc.Tests.CodeTemplates
[Test]
public void GetViewPageType_HostViewDataTypeNameIsNull_ReturnsEmptyString()
{
CreateEmptyViewTemplatePreprocessor();
CreateTemplatePreprocessor();
mvcHost.ViewDataTypeName = null;
string viewPageType = emptyViewTemplate.GetViewPageType();
string viewPageType = templatePreprocessor.GetViewPageType();
Assert.AreEqual(String.Empty, viewPageType);
}
@ -46,12 +46,44 @@ namespace AspNet.Mvc.Tests.CodeTemplates @@ -46,12 +46,44 @@ namespace AspNet.Mvc.Tests.CodeTemplates
[Test]
public void GetViewPageType_HostViewDataTypeNameIsEmptyString_ReturnsEmptyString()
{
CreateEmptyViewTemplatePreprocessor();
CreateTemplatePreprocessor();
mvcHost.ViewDataTypeName = String.Empty;
string viewPageType = emptyViewTemplate.GetViewPageType();
string viewPageType = templatePreprocessor.GetViewPageType();
Assert.AreEqual(String.Empty, viewPageType);
}
[Test]
public void TransformText_PartialViewUsingModel_ReturnsTypedUserControlUsingViewDataTypeName()
{
CreateTemplatePreprocessor();
mvcHost.IsPartialView = true;
mvcHost.ViewDataTypeName = "MyNamespace.MyViewDataType";
string output = templatePreprocessor.TransformText();
string expectedOutput =
@"<%@ Control Language=""C#"" Inherits=""System.Web.Mvc.ViewUserControl<MyNamespace.MyViewDataType>"" %>
";
Assert.AreEqual(expectedOutput, output);
}
[Test]
public void TransformText_PartialViewWithoutModel_ReturnsUntypedUserControl()
{
CreateTemplatePreprocessor();
mvcHost.IsPartialView = true;
mvcHost.ViewDataTypeName = null;
string output = templatePreprocessor.TransformText();
string expectedOutput =
@"<%@ Control Language=""C#"" Inherits=""System.Web.Mvc.ViewUserControl"" %>
";
Assert.AreEqual(expectedOutput, output);
}
}
}

Loading…
Cancel
Save