Skip to content

Commit 26898e3

Browse files
Rebase
1 parent f013fed commit 26898e3

File tree

6 files changed

+83
-36
lines changed

6 files changed

+83
-36
lines changed

src/ProjectTemplates/test/EmptyWebTemplateTest.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public async Task EmptyWebTemplateAsync(string languageOverride)
4848
aspNetProcess.Process.HasExited,
4949
ErrorMessages.GetFailedProcessMessageOrEmpty("Run built project", Project, aspNetProcess.Process));
5050

51-
await aspNetProcess.AssertOk("/");
51+
await aspNetProcess.AssertLinksWork("/");
5252
}
5353

5454
using (var aspNetProcess = Project.StartPublishedProjectAsync())
@@ -57,7 +57,7 @@ public async Task EmptyWebTemplateAsync(string languageOverride)
5757
aspNetProcess.Process.HasExited,
5858
ErrorMessages.GetFailedProcessMessageOrEmpty("Run published project", Project, aspNetProcess.Process));
5959

60-
await aspNetProcess.AssertOk("/");
60+
await aspNetProcess.AssertLinksWork("/");
6161
}
6262
}
6363
}
Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,39 @@
11
// Copyright (c) .NET Foundation. All rights reserved.
22
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
33

4-
using ProjectTemplates.Tests.Helpers;
4+
using System.Threading.Tasks;
5+
using Templates.Test.Helpers;
56
using Xunit;
67
using Xunit.Abstractions;
78

89
namespace Templates.Test
910
{
1011
public class GrpcTemplateTest
1112
{
12-
public GrpcTemplateTest(ProjectFactoryFixture factoryFixture, ITestOutputHelper output)
13+
public GrpcTemplateTest(ProjectFactoryFixture projectFactory, ITestOutputHelper output)
1314
{
14-
Project = factoryFixture.CreateProject(output);
15+
ProjectFactory = projectFactory;
16+
Output = output;
1517
}
1618

17-
public Project Project { get; }
19+
public Project Project { get; set; }
20+
21+
public ProjectFactoryFixture ProjectFactory { get; }
22+
public ITestOutputHelper Output { get; }
1823

1924
[Fact]
20-
public void GrpcTemplate()
25+
public async Task GrpcTemplate()
2126
{
22-
Project.RunDotNetNew("grpc");
23-
Project.BuildProject();
27+
Project = await ProjectFactory.GetOrCreateProject("grpc", Output);
28+
29+
var createResult = await Project.RunDotNetNewAsync("grpc");
30+
Assert.True(0 == createResult.ExitCode, ErrorMessages.GetFailedProcessMessage("create/restore", Project, createResult));
31+
32+
var publishResult = await Project.RunDotNetPublishAsync();
33+
Assert.True(0 == publishResult.ExitCode, ErrorMessages.GetFailedProcessMessage("publish", Project, publishResult));
34+
35+
var buildResult = await Project.RunDotNetBuildAsync();
36+
Assert.True(0 == buildResult.ExitCode, ErrorMessages.GetFailedProcessMessage("build", Project, buildResult));
2437
}
2538
}
2639
}

src/ProjectTemplates/test/Helpers/AspNetProcess.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
using System.Net;
88
using System.Net.Http;
99
using System.Threading.Tasks;
10+
using AngleSharp.Dom.Html;
11+
using AngleSharp.Parser.Html;
1012
using Microsoft.AspNetCore.Certificates.Generation;
1113
using Microsoft.Extensions.CommandLineUtils;
1214
using OpenQA.Selenium;
@@ -126,7 +128,7 @@ public async Task AssertLinksWork(string requestUrl)
126128
{
127129
if(link.Protocol == "about:")
128130
{
129-
AssertOk(link.PathName);
131+
await AssertOk(link.PathName);
130132
}
131133
else
132134
{
@@ -141,7 +143,7 @@ private bool IsSuccessStatusCode(HttpResponseMessage response)
141143
return response.IsSuccessStatusCode || response.StatusCode == HttpStatusCode.Redirect;
142144
}
143145

144-
private void AssertOk(string requestUrl)
146+
public Task AssertOk(string requestUrl)
145147
=> AssertStatusCode(requestUrl, HttpStatusCode.OK);
146148

147149
public Task AssertNotFound(string requestUrl)

src/ProjectTemplates/test/MvcTemplateTest.cs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -61,18 +61,18 @@ public async Task MvcTemplate_NoAuthImplAsync(string languageOverride)
6161
aspNetProcess.Process.HasExited,
6262
ErrorMessages.GetFailedProcessMessageOrEmpty("Run built project", Project, aspNetProcess.Process));
6363

64-
await aspNetProcess.AssertOk("/");
65-
await aspNetProcess.AssertOk("/Home/Privacy");
64+
await aspNetProcess.AssertLinksWork("/");
65+
await aspNetProcess.AssertLinksWork("/Home/Privacy");
6666
}
67-
67+
6868
using (var aspNetProcess = Project.StartPublishedProjectAsync())
6969
{
7070
Assert.False(
7171
aspNetProcess.Process.HasExited,
7272
ErrorMessages.GetFailedProcessMessageOrEmpty("Run published project", Project, aspNetProcess.Process));
7373

74-
await aspNetProcess.AssertOk("/");
75-
await aspNetProcess.AssertOk("/Home/Privacy");
74+
await aspNetProcess.AssertLinksWork("/");
75+
await aspNetProcess.AssertLinksWork("/Home/Privacy");
7676
}
7777
}
7878

@@ -112,16 +112,16 @@ public async Task MvcTemplate_IndividualAuthImplAsync(bool useLocalDB)
112112

113113
using (var aspNetProcess = Project.StartBuiltProjectAsync())
114114
{
115-
await aspNetProcess.AssertOk("/");
116-
await aspNetProcess.AssertOk("/Identity/Account/Login");
117-
await aspNetProcess.AssertOk("/Home/Privacy");
115+
await aspNetProcess.AssertLinksWork("/");
116+
await aspNetProcess.AssertLinksWork("/Identity/Account/Login");
117+
await aspNetProcess.AssertLinksWork("/Home/Privacy");
118118
}
119119

120120
using (var aspNetProcess = Project.StartPublishedProjectAsync())
121121
{
122-
await aspNetProcess.AssertOk("/");
123-
await aspNetProcess.AssertOk("/Identity/Account/Login");
124-
await aspNetProcess.AssertOk("/Home/Privacy");
122+
await aspNetProcess.AssertLinksWork("/");
123+
await aspNetProcess.AssertLinksWork("/Identity/Account/Login");
124+
await aspNetProcess.AssertLinksWork("/Home/Privacy");
125125
}
126126
}
127127

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,43 @@
11
// Copyright (c) .NET Foundation. All rights reserved.
22
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
33

4-
using ProjectTemplates.Tests.Helpers;
4+
using System.Threading.Tasks;
5+
using Templates.Test.Helpers;
56
using Xunit;
67
using Xunit.Abstractions;
78

89
namespace Templates.Test
910
{
1011
public class RazorClassLibraryTemplateTest
1112
{
12-
public RazorClassLibraryTemplateTest(ProjectFactoryFixture factoryFixture, ITestOutputHelper output)
13+
public RazorClassLibraryTemplateTest(ProjectFactoryFixture projectFactory, ITestOutputHelper output)
1314
{
14-
Project = factoryFixture.CreateProject(output);
15+
ProjectFactory = projectFactory;
16+
Output = output;
1517
}
1618

17-
public Project Project { get; }
19+
public Project Project { get; set; }
20+
21+
public ProjectFactoryFixture ProjectFactory { get; }
22+
public ITestOutputHelper Output { get; }
1823

1924
[Fact]
20-
public void RazorClassLibraryTemplate()
25+
public async Task RazorClassLibraryTemplateAsync()
2126
{
22-
Project.RunDotNetNew("razorclasslib");
27+
Project = await ProjectFactory.GetOrCreateProject("razorclasslib", Output);
28+
29+
var createResult = await Project.RunDotNetNewAsync("razorclasslib");
30+
Assert.True(0 == createResult.ExitCode, ErrorMessages.GetFailedProcessMessage("create/restore", Project, createResult));
31+
32+
var publishResult = await Project.RunDotNetPublishAsync();
33+
Assert.True(0 == publishResult.ExitCode, ErrorMessages.GetFailedProcessMessage("publish", Project, publishResult));
34+
35+
// Run dotnet build after publish. The reason is that one uses Config = Debug and the other uses Config = Release
36+
// The output from publish will go into bin/Release/netcoreapp3.0/publish and won't be affected by calling build
37+
// later, while the opposite is not true.
2338

24-
Project.BuildProject();
39+
var buildResult = await Project.RunDotNetBuildAsync();
40+
Assert.True(0 == buildResult.ExitCode, ErrorMessages.GetFailedProcessMessage("build", Project, buildResult));
2541
}
2642
}
2743
}
Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,42 @@
11
// Copyright (c) .NET Foundation. All rights reserved.
22
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
33

4-
using ProjectTemplates.Tests.Helpers;
4+
using System.Threading.Tasks;
5+
using Templates.Test.Helpers;
56
using Xunit;
67
using Xunit.Abstractions;
78

89
namespace Templates.Test
910
{
1011
public class WorkerTemplateTest
1112
{
12-
public WorkerTemplateTest(ProjectFactoryFixture factoryFixture, ITestOutputHelper output)
13+
public WorkerTemplateTest(ProjectFactoryFixture projectFactory, ITestOutputHelper output)
1314
{
14-
Project = factoryFixture.CreateProject(output);
15+
ProjectFactory = projectFactory;
16+
Output = output;
1517
}
1618

17-
public Project Project { get; }
19+
public Project Project { get; set; }
20+
public ProjectFactoryFixture ProjectFactory { get; }
21+
public ITestOutputHelper Output { get; }
1822

1923
[Fact(Skip = "Microsoft.NET.Sdk.Worker isn't available yet")]
20-
public void WorkerTemplate()
24+
public async Task WorkerTemplateAsync()
2125
{
22-
Project.RunDotNetNew("worker");
23-
Project.BuildProject();
26+
Project = await ProjectFactory.GetOrCreateProject("worker", Output);
27+
28+
var createResult = await Project.RunDotNetNewAsync("worker");
29+
Assert.True(0 == createResult.ExitCode, ErrorMessages.GetFailedProcessMessage("create/restore", Project, createResult));
30+
31+
var publishResult = await Project.RunDotNetPublishAsync();
32+
Assert.True(0 == publishResult.ExitCode, ErrorMessages.GetFailedProcessMessage("publish", Project, publishResult));
33+
34+
// Run dotnet build after publish. The reason is that one uses Config = Debug and the other uses Config = Release
35+
// The output from publish will go into bin/Release/netcoreapp3.0/publish and won't be affected by calling build
36+
// later, while the opposite is not true.
37+
38+
var buildResult = await Project.RunDotNetBuildAsync();
39+
Assert.True(0 == buildResult.ExitCode, ErrorMessages.GetFailedProcessMessage("build", Project, buildResult));
2440
}
2541
}
2642
}

0 commit comments

Comments
 (0)