From 94cfac8ec6abb37bd082d54b3cd737c1fc447767 Mon Sep 17 00:00:00 2001 From: John Luo Date: Mon, 29 Jan 2018 17:59:25 -0800 Subject: [PATCH] Use Microsoft.AspNetCore.App in templates - Add BrowserLink and Sqlite for Razor and StarterWeb templates when required - Add tests for LocalDB scenarios --- .../Aurelia-CSharp.csproj.in | 2 +- .../Knockout-CSharp.csproj.in | 2 +- .../Vue-CSharp.csproj.in | 2 +- .../EmptyWeb-CSharp.csproj.in | 2 +- .../EmptyWeb-FSharp.fsproj.in | 2 +- .../RazorPagesWeb-CSharp.csproj.in | 4 +++- .../StarterWeb-CSharp.csproj.in | 4 +++- .../StarterWeb-FSharp.fsproj.in | 2 +- .../WebApi-CSharp.csproj.in | 2 +- .../WebApi-FSharp.fsproj.in | 2 +- .../Angular-CSharp.csproj.in | 2 +- .../React-CSharp.csproj.in | 2 +- .../ReactRedux-CSharp.csproj.in | 2 +- test/Templates.Test/Helpers/TemplateTestBase.cs | 7 ++++++- test/Templates.Test/MvcTemplateTest.cs | 13 ++++++++++--- test/Templates.Test/RazorPagesTemplateTest.cs | 12 +++++++++--- 16 files changed, 42 insertions(+), 20 deletions(-) diff --git a/src/Microsoft.AspNetCore.SpaTemplates/Aurelia-CSharp.csproj.in b/src/Microsoft.AspNetCore.SpaTemplates/Aurelia-CSharp.csproj.in index 84729585f9..d761f95928 100644 --- a/src/Microsoft.AspNetCore.SpaTemplates/Aurelia-CSharp.csproj.in +++ b/src/Microsoft.AspNetCore.SpaTemplates/Aurelia-CSharp.csproj.in @@ -9,7 +9,7 @@ - + diff --git a/src/Microsoft.AspNetCore.SpaTemplates/Knockout-CSharp.csproj.in b/src/Microsoft.AspNetCore.SpaTemplates/Knockout-CSharp.csproj.in index 84729585f9..d761f95928 100644 --- a/src/Microsoft.AspNetCore.SpaTemplates/Knockout-CSharp.csproj.in +++ b/src/Microsoft.AspNetCore.SpaTemplates/Knockout-CSharp.csproj.in @@ -9,7 +9,7 @@ - + diff --git a/src/Microsoft.AspNetCore.SpaTemplates/Vue-CSharp.csproj.in b/src/Microsoft.AspNetCore.SpaTemplates/Vue-CSharp.csproj.in index 84729585f9..d761f95928 100644 --- a/src/Microsoft.AspNetCore.SpaTemplates/Vue-CSharp.csproj.in +++ b/src/Microsoft.AspNetCore.SpaTemplates/Vue-CSharp.csproj.in @@ -9,7 +9,7 @@ - + diff --git a/src/Microsoft.DotNet.Web.ProjectTemplates/EmptyWeb-CSharp.csproj.in b/src/Microsoft.DotNet.Web.ProjectTemplates/EmptyWeb-CSharp.csproj.in index 2146fd4d24..358bd58381 100644 --- a/src/Microsoft.DotNet.Web.ProjectTemplates/EmptyWeb-CSharp.csproj.in +++ b/src/Microsoft.DotNet.Web.ProjectTemplates/EmptyWeb-CSharp.csproj.in @@ -10,7 +10,7 @@ - + diff --git a/src/Microsoft.DotNet.Web.ProjectTemplates/EmptyWeb-FSharp.fsproj.in b/src/Microsoft.DotNet.Web.ProjectTemplates/EmptyWeb-FSharp.fsproj.in index e6d8afc8d4..3efe83ff4f 100644 --- a/src/Microsoft.DotNet.Web.ProjectTemplates/EmptyWeb-FSharp.fsproj.in +++ b/src/Microsoft.DotNet.Web.ProjectTemplates/EmptyWeb-FSharp.fsproj.in @@ -11,7 +11,7 @@ - + diff --git a/src/Microsoft.DotNet.Web.ProjectTemplates/RazorPagesWeb-CSharp.csproj.in b/src/Microsoft.DotNet.Web.ProjectTemplates/RazorPagesWeb-CSharp.csproj.in index 93cc67fc3c..c21530a9b1 100644 --- a/src/Microsoft.DotNet.Web.ProjectTemplates/RazorPagesWeb-CSharp.csproj.in +++ b/src/Microsoft.DotNet.Web.ProjectTemplates/RazorPagesWeb-CSharp.csproj.in @@ -13,8 +13,10 @@ - + + + diff --git a/src/Microsoft.DotNet.Web.ProjectTemplates/StarterWeb-CSharp.csproj.in b/src/Microsoft.DotNet.Web.ProjectTemplates/StarterWeb-CSharp.csproj.in index 5dbb7eeeb5..c03ab0167a 100644 --- a/src/Microsoft.DotNet.Web.ProjectTemplates/StarterWeb-CSharp.csproj.in +++ b/src/Microsoft.DotNet.Web.ProjectTemplates/StarterWeb-CSharp.csproj.in @@ -15,8 +15,10 @@ - + + + diff --git a/src/Microsoft.DotNet.Web.ProjectTemplates/StarterWeb-FSharp.fsproj.in b/src/Microsoft.DotNet.Web.ProjectTemplates/StarterWeb-FSharp.fsproj.in index 825793ae3a..3c7cdeaf13 100644 --- a/src/Microsoft.DotNet.Web.ProjectTemplates/StarterWeb-FSharp.fsproj.in +++ b/src/Microsoft.DotNet.Web.ProjectTemplates/StarterWeb-FSharp.fsproj.in @@ -14,7 +14,7 @@ - + diff --git a/src/Microsoft.DotNet.Web.ProjectTemplates/WebApi-CSharp.csproj.in b/src/Microsoft.DotNet.Web.ProjectTemplates/WebApi-CSharp.csproj.in index 82705eed0c..259ce766d2 100644 --- a/src/Microsoft.DotNet.Web.ProjectTemplates/WebApi-CSharp.csproj.in +++ b/src/Microsoft.DotNet.Web.ProjectTemplates/WebApi-CSharp.csproj.in @@ -13,7 +13,7 @@ - + diff --git a/src/Microsoft.DotNet.Web.ProjectTemplates/WebApi-FSharp.fsproj.in b/src/Microsoft.DotNet.Web.ProjectTemplates/WebApi-FSharp.fsproj.in index dc545b1de0..0e94d8e3ce 100644 --- a/src/Microsoft.DotNet.Web.ProjectTemplates/WebApi-FSharp.fsproj.in +++ b/src/Microsoft.DotNet.Web.ProjectTemplates/WebApi-FSharp.fsproj.in @@ -12,7 +12,7 @@ - + diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/Angular-CSharp.csproj.in b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/Angular-CSharp.csproj.in index 18d50119a3..a8834921fd 100644 --- a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/Angular-CSharp.csproj.in +++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/Angular-CSharp.csproj.in @@ -14,7 +14,7 @@ - + diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/React-CSharp.csproj.in b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/React-CSharp.csproj.in index 00c17e7f4a..d8ed6fb237 100644 --- a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/React-CSharp.csproj.in +++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/React-CSharp.csproj.in @@ -11,7 +11,7 @@ - + diff --git a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/ReactRedux-CSharp.csproj.in b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/ReactRedux-CSharp.csproj.in index ed69d98c5e..dfcc1e4a48 100644 --- a/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/ReactRedux-CSharp.csproj.in +++ b/src/Microsoft.DotNet.Web.Spa.ProjectTemplates/ReactRedux-CSharp.csproj.in @@ -11,7 +11,7 @@ - + diff --git a/test/Templates.Test/Helpers/TemplateTestBase.cs b/test/Templates.Test/Helpers/TemplateTestBase.cs index 6c546a5696..b2d82c1434 100644 --- a/test/Templates.Test/Helpers/TemplateTestBase.cs +++ b/test/Templates.Test/Helpers/TemplateTestBase.cs @@ -47,7 +47,7 @@ namespace Templates.Test throw new NotImplementedException(); } - protected void RunDotNetNew(string templateName, string targetFrameworkOverride, string auth = null, string language = null) + protected void RunDotNetNew(string templateName, string targetFrameworkOverride, string auth = null, string language = null, bool useLocalDB = false) { var args = $"new {templateName}"; @@ -66,6 +66,11 @@ namespace Templates.Test args += $" -lang {language}"; } + if (useLocalDB) + { + args += $" -uld"; + } + // Only run one instance of 'dotnet new' at once, as a workaround for // https://github.com/aspnet/templating/issues/63 lock (DotNetNewLock) diff --git a/test/Templates.Test/MvcTemplateTest.cs b/test/Templates.Test/MvcTemplateTest.cs index b0f3388e30..a9d9771014 100644 --- a/test/Templates.Test/MvcTemplateTest.cs +++ b/test/Templates.Test/MvcTemplateTest.cs @@ -65,16 +65,23 @@ namespace Templates.Test public void MvcTemplate_IndividualAuth_Works_NetCore() => MvcTemplate_IndividualAuthImpl(null); - private void MvcTemplate_IndividualAuthImpl(string targetFrameworkOverride) + [Fact] + public void MvcTemplate_IndividualAuth_UsingLocalDB_Works_NetCore() + => MvcTemplate_IndividualAuthImpl(null, true); + + private void MvcTemplate_IndividualAuthImpl(string targetFrameworkOverride, bool useLocalDB = false) { - RunDotNetNew("mvc", targetFrameworkOverride, auth: "Individual"); + RunDotNetNew("mvc", targetFrameworkOverride, auth: "Individual", useLocalDB: useLocalDB); AssertDirectoryExists("Extensions", false); AssertFileExists("urlRewrite.config", false); AssertFileExists("Controllers/AccountController.cs", false); var projectFileContents = ReadFile($"{ProjectName}.csproj"); - Assert.Contains(".db", projectFileContents); + if (!useLocalDB) + { + Assert.Contains(".db", projectFileContents); + } Assert.Contains("Microsoft.EntityFrameworkCore.Tools", projectFileContents); Assert.Contains("Microsoft.VisualStudio.Web.CodeGeneration.Design", projectFileContents); Assert.Contains("Microsoft.EntityFrameworkCore.Tools.DotNet", projectFileContents); diff --git a/test/Templates.Test/RazorPagesTemplateTest.cs b/test/Templates.Test/RazorPagesTemplateTest.cs index ef41913a3b..949e86a3f5 100644 --- a/test/Templates.Test/RazorPagesTemplateTest.cs +++ b/test/Templates.Test/RazorPagesTemplateTest.cs @@ -56,15 +56,21 @@ namespace Templates.Test [Fact] public void RazorPagesTemplate_IndividualAuth_Works_NetCore() => RazorPagesTemplate_IndividualAuthImpl(null); + [Fact] + public void RazorPagesTemplate_IndividualAuth_UsingLocalDB_Works_NetCore() + => RazorPagesTemplate_IndividualAuthImpl(null, true); - private void RazorPagesTemplate_IndividualAuthImpl(string targetFrameworkOverride) + private void RazorPagesTemplate_IndividualAuthImpl(string targetFrameworkOverride, bool useLocalDB = false) { - RunDotNetNew("razor", targetFrameworkOverride, auth: "Individual"); + RunDotNetNew("razor", targetFrameworkOverride, auth: "Individual", useLocalDB: useLocalDB); AssertFileExists("Pages/Shared/_LoginPartial.cshtml", true); var projectFileContents = ReadFile($"{ProjectName}.csproj"); - Assert.Contains(".db", projectFileContents); + if (!useLocalDB) + { + Assert.Contains(".db", projectFileContents); + } Assert.Contains("Microsoft.EntityFrameworkCore.Tools", projectFileContents); Assert.Contains("Microsoft.VisualStudio.Web.CodeGeneration.Design", projectFileContents); Assert.Contains("Microsoft.EntityFrameworkCore.Tools.DotNet", projectFileContents);