diff --git a/src/Aspire.ProjectTemplates/templates/aspire-mstest/9.4/IntegrationTest1.cs b/src/Aspire.ProjectTemplates/templates/aspire-mstest/9.4/IntegrationTest1.cs index 5ba2658a1e0..c27661d3957 100644 --- a/src/Aspire.ProjectTemplates/templates/aspire-mstest/9.4/IntegrationTest1.cs +++ b/src/Aspire.ProjectTemplates/templates/aspire-mstest/9.4/IntegrationTest1.cs @@ -5,6 +5,8 @@ namespace Aspire.Tests._1; [TestClass] public class IntegrationTest1 { + public TestContext TestContext { get; set; } + private static readonly TimeSpan DefaultTimeout = TimeSpan.FromSeconds(30); // Instructions: @@ -20,7 +22,7 @@ public class IntegrationTest1 // public async Task GetWebResourceRootReturnsOkStatusCode() // { // // Arrange - // var cancellationToken = new CancellationTokenSource(DefaultTimeout).Token; + // var cancellationToken = TestContext.CancellationTokenSource.Token; // var appHost = await DistributedApplicationTestingBuilder.CreateAsync(); // appHost.Services.AddLogging(logging => // { @@ -38,9 +40,9 @@ public class IntegrationTest1 // await app.StartAsync(cancellationToken).WaitAsync(DefaultTimeout, cancellationToken); // // // Act - // var httpClient = app.CreateHttpClient("webfrontend"); + // using var httpClient = app.CreateHttpClient("webfrontend"); // await app.ResourceNotifications.WaitForResourceHealthyAsync("webfrontend", cancellationToken).WaitAsync(DefaultTimeout, cancellationToken); - // var response = await httpClient.GetAsync("/", cancellationToken); + // using var response = await httpClient.GetAsync("/", cancellationToken); // // // Assert // Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); diff --git a/src/Aspire.ProjectTemplates/templates/aspire-mstest/9.5/IntegrationTest1.cs b/src/Aspire.ProjectTemplates/templates/aspire-mstest/9.5/IntegrationTest1.cs index 5ba2658a1e0..830d895bd6a 100644 --- a/src/Aspire.ProjectTemplates/templates/aspire-mstest/9.5/IntegrationTest1.cs +++ b/src/Aspire.ProjectTemplates/templates/aspire-mstest/9.5/IntegrationTest1.cs @@ -5,6 +5,7 @@ namespace Aspire.Tests._1; [TestClass] public class IntegrationTest1 { + public TestContext TestContext { get; set; } private static readonly TimeSpan DefaultTimeout = TimeSpan.FromSeconds(30); // Instructions: @@ -20,7 +21,7 @@ public class IntegrationTest1 // public async Task GetWebResourceRootReturnsOkStatusCode() // { // // Arrange - // var cancellationToken = new CancellationTokenSource(DefaultTimeout).Token; + // var cancellationToken = TestContext.CancellationTokenSource.Token; // var appHost = await DistributedApplicationTestingBuilder.CreateAsync(); // appHost.Services.AddLogging(logging => // { @@ -38,9 +39,9 @@ public class IntegrationTest1 // await app.StartAsync(cancellationToken).WaitAsync(DefaultTimeout, cancellationToken); // // // Act - // var httpClient = app.CreateHttpClient("webfrontend"); + // using var httpClient = app.CreateHttpClient("webfrontend"); // await app.ResourceNotifications.WaitForResourceHealthyAsync("webfrontend", cancellationToken).WaitAsync(DefaultTimeout, cancellationToken); - // var response = await httpClient.GetAsync("/", cancellationToken); + // using var response = await httpClient.GetAsync("/", cancellationToken); // // // Assert // Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); diff --git a/src/Aspire.ProjectTemplates/templates/aspire-nunit/9.4/IntegrationTest1.cs b/src/Aspire.ProjectTemplates/templates/aspire-nunit/9.4/IntegrationTest1.cs index 859fb63b80f..b6bb413a8e7 100644 --- a/src/Aspire.ProjectTemplates/templates/aspire-nunit/9.4/IntegrationTest1.cs +++ b/src/Aspire.ProjectTemplates/templates/aspire-nunit/9.4/IntegrationTest1.cs @@ -19,7 +19,8 @@ public class IntegrationTest1 // public async Task GetWebResourceRootReturnsOkStatusCode() // { // // Arrange - // var cancellationToken = TestContext.CurrentContext.CancellationToken; + // using var cts = new CancellationTokenSource(DefaultTimeout); + // var cancellationToken = cts.Token; // var appHost = await DistributedApplicationTestingBuilder.CreateAsync(); // appHost.Services.AddLogging(logging => // { @@ -37,9 +38,9 @@ public class IntegrationTest1 // await app.StartAsync(cancellationToken).WaitAsync(DefaultTimeout, cancellationToken); // // // Act - // var httpClient = app.CreateHttpClient("webfrontend"); + // using var httpClient = app.CreateHttpClient("webfrontend"); // await app.ResourceNotifications.WaitForResourceHealthyAsync("webfrontend", cancellationToken).WaitAsync(DefaultTimeout, cancellationToken); - // var response = await httpClient.GetAsync("/", cancellationToken); + // using var response = await httpClient.GetAsync("/", cancellationToken); // // // Assert // Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.OK)); diff --git a/src/Aspire.ProjectTemplates/templates/aspire-nunit/9.5/IntegrationTest1.cs b/src/Aspire.ProjectTemplates/templates/aspire-nunit/9.5/IntegrationTest1.cs index 859fb63b80f..b6bb413a8e7 100644 --- a/src/Aspire.ProjectTemplates/templates/aspire-nunit/9.5/IntegrationTest1.cs +++ b/src/Aspire.ProjectTemplates/templates/aspire-nunit/9.5/IntegrationTest1.cs @@ -19,7 +19,8 @@ public class IntegrationTest1 // public async Task GetWebResourceRootReturnsOkStatusCode() // { // // Arrange - // var cancellationToken = TestContext.CurrentContext.CancellationToken; + // using var cts = new CancellationTokenSource(DefaultTimeout); + // var cancellationToken = cts.Token; // var appHost = await DistributedApplicationTestingBuilder.CreateAsync(); // appHost.Services.AddLogging(logging => // { @@ -37,9 +38,9 @@ public class IntegrationTest1 // await app.StartAsync(cancellationToken).WaitAsync(DefaultTimeout, cancellationToken); // // // Act - // var httpClient = app.CreateHttpClient("webfrontend"); + // using var httpClient = app.CreateHttpClient("webfrontend"); // await app.ResourceNotifications.WaitForResourceHealthyAsync("webfrontend", cancellationToken).WaitAsync(DefaultTimeout, cancellationToken); - // var response = await httpClient.GetAsync("/", cancellationToken); + // using var response = await httpClient.GetAsync("/", cancellationToken); // // // Assert // Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.OK)); diff --git a/src/Aspire.ProjectTemplates/templates/aspire-xunit/9.4/IntegrationTest1.cs b/src/Aspire.ProjectTemplates/templates/aspire-xunit/9.4/IntegrationTest1.cs index a567a26a4bf..feccf375d8c 100644 --- a/src/Aspire.ProjectTemplates/templates/aspire-xunit/9.4/IntegrationTest1.cs +++ b/src/Aspire.ProjectTemplates/templates/aspire-xunit/9.4/IntegrationTest1.cs @@ -20,7 +20,7 @@ public class IntegrationTest1 // { // // Arrange #if (XUnitVersion == "v2") - // var cancellationToken = new CancellationTokenSource(DefaultTimeout).Token; + // var cancellationToken = CancellationToken.None; #else // XunitVersion v3 or v3mtp // var cancellationToken = TestContext.Current.CancellationToken; #endif @@ -42,9 +42,9 @@ public class IntegrationTest1 // await app.StartAsync(cancellationToken).WaitAsync(DefaultTimeout, cancellationToken); // // // Act - // var httpClient = app.CreateHttpClient("webfrontend"); + // using var httpClient = app.CreateHttpClient("webfrontend"); // await app.ResourceNotifications.WaitForResourceHealthyAsync("webfrontend", cancellationToken).WaitAsync(DefaultTimeout, cancellationToken); - // var response = await httpClient.GetAsync("/", cancellationToken); + // using var response = await httpClient.GetAsync("/", cancellationToken); // // // Assert // Assert.Equal(HttpStatusCode.OK, response.StatusCode); diff --git a/src/Aspire.ProjectTemplates/templates/aspire-xunit/9.5/IntegrationTest1.cs b/src/Aspire.ProjectTemplates/templates/aspire-xunit/9.5/IntegrationTest1.cs index a567a26a4bf..feccf375d8c 100644 --- a/src/Aspire.ProjectTemplates/templates/aspire-xunit/9.5/IntegrationTest1.cs +++ b/src/Aspire.ProjectTemplates/templates/aspire-xunit/9.5/IntegrationTest1.cs @@ -20,7 +20,7 @@ public class IntegrationTest1 // { // // Arrange #if (XUnitVersion == "v2") - // var cancellationToken = new CancellationTokenSource(DefaultTimeout).Token; + // var cancellationToken = CancellationToken.None; #else // XunitVersion v3 or v3mtp // var cancellationToken = TestContext.Current.CancellationToken; #endif @@ -42,9 +42,9 @@ public class IntegrationTest1 // await app.StartAsync(cancellationToken).WaitAsync(DefaultTimeout, cancellationToken); // // // Act - // var httpClient = app.CreateHttpClient("webfrontend"); + // using var httpClient = app.CreateHttpClient("webfrontend"); // await app.ResourceNotifications.WaitForResourceHealthyAsync("webfrontend", cancellationToken).WaitAsync(DefaultTimeout, cancellationToken); - // var response = await httpClient.GetAsync("/", cancellationToken); + // using var response = await httpClient.GetAsync("/", cancellationToken); // // // Assert // Assert.Equal(HttpStatusCode.OK, response.StatusCode); diff --git a/tests/Aspire.Templates.Tests/NewUpAndBuildSupportProjectTemplatesTests.cs b/tests/Aspire.Templates.Tests/NewUpAndBuildSupportProjectTemplatesTests.cs index 781ac34c425..5268e9087d4 100644 --- a/tests/Aspire.Templates.Tests/NewUpAndBuildSupportProjectTemplatesTests.cs +++ b/tests/Aspire.Templates.Tests/NewUpAndBuildSupportProjectTemplatesTests.cs @@ -7,6 +7,8 @@ namespace Aspire.Templates.Tests; public abstract class NewUpAndBuildSupportProjectTemplatesBase(ITestOutputHelper testOutput) : TemplateTestsBase(testOutput) { + public const string AspireVersionNext = "9.5"; + [Trait("category", "basic-build")] protected async Task CanNewAndBuildActual(string templateName, string extraTestCreationArgs, TestSdk sdk, TestTargetFramework tfm, string? error) { @@ -61,7 +63,7 @@ protected async Task CanNewAndBuildActual(string templateName, string extraTestC } } -public class NUnit_NewUpAndBuildSupportProjectTemplatesTests(ITestOutputHelper testOutput) : NewUpAndBuildSupportProjectTemplatesBase(testOutput) +public class NUnit_AspireVersionCurrent_NewUpAndBuildSupportProjectTemplatesTests(ITestOutputHelper testOutput) : NewUpAndBuildSupportProjectTemplatesBase(testOutput) { [Theory] [MemberData(nameof(TestDataForNewAndBuildTemplateTests), arguments: ["aspire-nunit", ""])] @@ -71,12 +73,18 @@ public Task CanNewAndBuild(string templateName, string extraTestCreationArgs, Te } } -public class XUnit_Default_NewUpAndBuildSupportProjectTemplatesTests : NewUpAndBuildSupportProjectTemplatesBase +public class NUnit_AspireVersionNext_NewUpAndBuildSupportProjectTemplatesTests(ITestOutputHelper testOutput) : NewUpAndBuildSupportProjectTemplatesBase(testOutput) { - public XUnit_Default_NewUpAndBuildSupportProjectTemplatesTests(ITestOutputHelper testOutput) : base(testOutput) + [Theory] + [MemberData(nameof(TestDataForNewAndBuildTemplateTests), arguments: ["aspire-nunit", $"--aspire-version {AspireVersionNext}"])] + public Task CanNewAndBuild(string templateName, string extraTestCreationArgs, TestSdk sdk, TestTargetFramework tfm, string? error) { + return CanNewAndBuildActual(templateName, extraTestCreationArgs, sdk, tfm, error); } +} +public class XUnit_Default_NewUpAndBuildSupportProjectTemplatesTests(ITestOutputHelper testOutput) : NewUpAndBuildSupportProjectTemplatesBase(testOutput) +{ [Theory] [MemberData(nameof(TestDataForNewAndBuildTemplateTests), arguments: ["aspire-xunit", ""])] public Task CanNewAndBuild(string templateName, string extraTestCreationArgs, TestSdk sdk, TestTargetFramework tfm, string? error) @@ -85,12 +93,8 @@ public Task CanNewAndBuild(string templateName, string extraTestCreationArgs, Te } } -public class XUnit_V2_NewUpAndBuildSupportProjectTemplatesTests : NewUpAndBuildSupportProjectTemplatesBase +public class XUnit_V2_NewUpAndBuildSupportProjectTemplatesTests(ITestOutputHelper testOutput) : NewUpAndBuildSupportProjectTemplatesBase(testOutput) { - public XUnit_V2_NewUpAndBuildSupportProjectTemplatesTests(ITestOutputHelper testOutput) : base(testOutput) - { - } - [Theory] [MemberData(nameof(TestDataForNewAndBuildTemplateTests), arguments: ["aspire-xunit", "--xunit-version v2"])] public Task CanNewAndBuild(string templateName, string extraTestCreationArgs, TestSdk sdk, TestTargetFramework tfm, string? error) @@ -99,12 +103,8 @@ public Task CanNewAndBuild(string templateName, string extraTestCreationArgs, Te } } -public class XUnit_V3_NewUpAndBuildSupportProjectTemplatesTests : NewUpAndBuildSupportProjectTemplatesBase +public class XUnit_V3_NewUpAndBuildSupportProjectTemplatesTests(ITestOutputHelper testOutput) : NewUpAndBuildSupportProjectTemplatesBase(testOutput) { - public XUnit_V3_NewUpAndBuildSupportProjectTemplatesTests(ITestOutputHelper testOutput) : base(testOutput) - { - } - [Theory] [MemberData(nameof(TestDataForNewAndBuildTemplateTests), arguments: ["aspire-xunit", "--xunit-version v3"])] public Task CanNewAndBuild(string templateName, string extraTestCreationArgs, TestSdk sdk, TestTargetFramework tfm, string? error) @@ -113,12 +113,8 @@ public Task CanNewAndBuild(string templateName, string extraTestCreationArgs, Te } } -public class XUnit_V3MTP_NewUpAndBuildSupportProjectTemplatesTests : NewUpAndBuildSupportProjectTemplatesBase +public class XUnit_V3MTP_NewUpAndBuildSupportProjectTemplatesTests(ITestOutputHelper testOutput) : NewUpAndBuildSupportProjectTemplatesBase(testOutput) { - public XUnit_V3MTP_NewUpAndBuildSupportProjectTemplatesTests(ITestOutputHelper testOutput) : base(testOutput) - { - } - [Theory] [MemberData(nameof(TestDataForNewAndBuildTemplateTests), arguments: ["aspire-xunit", "--xunit-version v3mtp"])] public Task CanNewAndBuild(string templateName, string extraTestCreationArgs, TestSdk sdk, TestTargetFramework tfm, string? error) @@ -127,42 +123,40 @@ public Task CanNewAndBuild(string templateName, string extraTestCreationArgs, Te } } -public class XUnit_AspireVersion93_NewUpAndBuildSupportProjectTemplatesTests : NewUpAndBuildSupportProjectTemplatesBase +public class XUnit_AspireVersion_Current_NewUpAndBuildSupportProjectTemplatesTests(ITestOutputHelper testOutput) : NewUpAndBuildSupportProjectTemplatesBase(testOutput) { - public XUnit_AspireVersion93_NewUpAndBuildSupportProjectTemplatesTests(ITestOutputHelper testOutput) : base(testOutput) - { - } - [Theory] - [MemberData(nameof(TestDataForNewAndBuildTemplateTests), arguments: ["aspire-xunit", "--aspire-version 9.4"])] + [MemberData(nameof(TestDataForNewAndBuildTemplateTests), arguments: ["aspire-xunit", ""])] public Task CanNewAndBuild(string templateName, string extraTestCreationArgs, TestSdk sdk, TestTargetFramework tfm, string? error) { return CanNewAndBuildActual(templateName, extraTestCreationArgs, sdk, tfm, error); } } -public class XUnit_AspireVersion94_NewUpAndBuildSupportProjectTemplatesTests : NewUpAndBuildSupportProjectTemplatesBase +public class XUnit_AspireVersion_Next_NewUpAndBuildSupportProjectTemplatesTests(ITestOutputHelper testOutput) : NewUpAndBuildSupportProjectTemplatesBase(testOutput) { - public XUnit_AspireVersion94_NewUpAndBuildSupportProjectTemplatesTests(ITestOutputHelper testOutput) : base(testOutput) - { - } - [Theory] - [MemberData(nameof(TestDataForNewAndBuildTemplateTests), arguments: ["aspire-xunit", "--aspire-version 9.5"])] + [MemberData(nameof(TestDataForNewAndBuildTemplateTests), arguments: ["aspire-xunit", $"--aspire-version {AspireVersionNext}"])] public Task CanNewAndBuild(string templateName, string extraTestCreationArgs, TestSdk sdk, TestTargetFramework tfm, string? error) { return CanNewAndBuildActual(templateName, extraTestCreationArgs, sdk, tfm, error); } } -public class MSTest_NewUpAndBuildSupportProjectTemplatesTests : NewUpAndBuildSupportProjectTemplatesBase +public class MSTest_AspireVersionCurrent_NewUpAndBuildSupportProjectTemplatesTests(ITestOutputHelper testOutput) : NewUpAndBuildSupportProjectTemplatesBase(testOutput) { - public MSTest_NewUpAndBuildSupportProjectTemplatesTests(ITestOutputHelper testOutput) : base(testOutput) + [Theory] + [MemberData(nameof(TestDataForNewAndBuildTemplateTests), arguments: ["aspire-mstest", ""])] + public Task CanNewAndBuild(string templateName, string extraTestCreationArgs, TestSdk sdk, TestTargetFramework tfm, string? error) { + return CanNewAndBuildActual(templateName, extraTestCreationArgs, sdk, tfm, error); } +} +public class MSTest_AspireVersionNext_NewUpAndBuildSupportProjectTemplatesTests(ITestOutputHelper testOutput) : NewUpAndBuildSupportProjectTemplatesBase(testOutput) +{ [Theory] - [MemberData(nameof(TestDataForNewAndBuildTemplateTests), arguments: ["aspire-mstest", ""])] + [MemberData(nameof(TestDataForNewAndBuildTemplateTests), arguments: ["aspire-mstest", $"--aspire-version {AspireVersionNext}"])] public Task CanNewAndBuild(string templateName, string extraTestCreationArgs, TestSdk sdk, TestTargetFramework tfm, string? error) { return CanNewAndBuildActual(templateName, extraTestCreationArgs, sdk, tfm, error);