diff --git a/Aspire.sln b/Aspire.sln
index 8df82a93508..a0552ae831f 100644
--- a/Aspire.sln
+++ b/Aspire.sln
@@ -455,9 +455,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Servic
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "OracleEndToEnd", "OracleEndToEnd", "{16F4BE51-EEC1-4C72-9148-5289F4BBA38C}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OracleEndToEnd.AppHost", "playground\OracleEndToEnd\OracleEndToEnd.AppHost\OracleEndToEnd.AppHost.csproj", "{8AC2375F-89F4-4E20-BF2E-F243AB1B2A10}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OracleEndToEnd.AppHost", "playground\OracleEndToEnd\OracleEndToEnd.AppHost\OracleEndToEnd.AppHost.csproj", "{8AC2375F-89F4-4E20-BF2E-F243AB1B2A10}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OracleEndToEnd.ApiService", "playground\OracleEndToEnd\OracleEndToEnd.ApiService\OracleEndToEnd.ApiService.csproj", "{834119AA-9745-4414-88A7-C3677808F97F}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OracleEndToEnd.ApiService", "playground\OracleEndToEnd\OracleEndToEnd.ApiService\OracleEndToEnd.ApiService.csproj", "{834119AA-9745-4414-88A7-C3677808F97F}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "kafka", "kafka", "{920BB263-E68F-4FA2-93FC-2E385EEA405B}"
EndProject
@@ -507,7 +507,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "python", "python", "{7123AB
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Python.AppHost", "playground\python\Python.AppHost\Python.AppHost.csproj", "{173BDA6E-F175-4457-BF64-58CD184E9A81}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aspire.Playground.Tests", "tests\Aspire.Playground.Tests\Aspire.Playground.Tests.csproj", "{8C07B9BF-87F4-450D-92FA-E03CF763013B}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aspire.Playground.Tests", "tests\Aspire.Playground.Tests\Aspire.Playground.Tests.csproj", "{8C07B9BF-87F4-450D-92FA-E03CF763013B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aspire.Hosting.Elasticsearch.Tests", "tests\Aspire.Hosting.Elasticsearch.Tests\Aspire.Hosting.Elasticsearch.Tests.csproj", "{62D8C73C-DAB3-4B9E-A508-34C886C374F9}"
EndProject
@@ -517,7 +517,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Hosting", "Hosting", "{830A
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aspire.Hosting.Redis.Tests", "tests\Aspire.Hosting.Redis.Tests\Aspire.Hosting.Redis.Tests.csproj", "{1BC02557-B78B-48CE-9D3C-488A6B7672F4}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aspire.Hosting.Garnet.Tests", "tests\Aspire.Hosting.Garnet.Tests\Aspire.Hosting.Garnet.Tests.csproj", "{CAA4A93F-6BEB-42EB-8680-C1CF72928023}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aspire.Hosting.Garnet.Tests", "tests\Aspire.Hosting.Garnet.Tests\Aspire.Hosting.Garnet.Tests.csproj", "{CAA4A93F-6BEB-42EB-8680-C1CF72928023}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aspire.Hosting.PostgreSQL.Tests", "tests\Aspire.Hosting.PostgreSQL.Tests\Aspire.Hosting.PostgreSQL.Tests.csproj", "{7425E5B2-BC47-4521-AC40-B8CECA329E08}"
EndProject
@@ -549,33 +549,35 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aspire.Hosting.Keycloak.Tes
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aspire.Keycloak.Authentication.Tests", "tests\Aspire.Keycloak.Authentication.Tests\Aspire.Keycloak.Authentication.Tests.csproj", "{48FF09E9-7D33-4A3F-9FF2-4C43A219C7B7}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aspire.Hosting.MongoDB.Tests", "tests\Aspire.Hosting.MongoDB.Tests\Aspire.Hosting.MongoDB.Tests.csproj", "{DD9BC533-8072-481C-9A7E-F95DC36B34C0}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aspire.Hosting.MongoDB.Tests", "tests\Aspire.Hosting.MongoDB.Tests\Aspire.Hosting.MongoDB.Tests.csproj", "{DD9BC533-8072-481C-9A7E-F95DC36B34C0}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aspire.Hosting.Nats.Tests", "tests\Aspire.Hosting.Nats.Tests\Aspire.Hosting.Nats.Tests.csproj", "{F492357C-682E-4CBB-A374-1A124B3976A3}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aspire.Hosting.Nats.Tests", "tests\Aspire.Hosting.Nats.Tests\Aspire.Hosting.Nats.Tests.csproj", "{F492357C-682E-4CBB-A374-1A124B3976A3}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aspire.Hosting.SqlServer.Tests", "tests\Aspire.Hosting.SqlServer.Tests\Aspire.Hosting.SqlServer.Tests.csproj", "{D705FE42-CD54-4575-BA18-0431256B40B2}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aspire.Hosting.SqlServer.Tests", "tests\Aspire.Hosting.SqlServer.Tests\Aspire.Hosting.SqlServer.Tests.csproj", "{D705FE42-CD54-4575-BA18-0431256B40B2}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aspire.Hosting.Azure.Tests", "tests\Aspire.Hosting.Azure.Tests\Aspire.Hosting.Azure.Tests.csproj", "{8691F993-7B19-496E-B8E1-EF1199ACF2E1}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestShop.AppHost", "playground\TestShop\TestShop.AppHost\TestShop.AppHost.csproj", "{DB3E1AD8-87F6-414D-B46F-A0DC334AECCD}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestShop.AppHost", "playground\TestShop\TestShop.AppHost\TestShop.AppHost.csproj", "{DB3E1AD8-87F6-414D-B46F-A0DC334AECCD}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Dapr.AppHost", "playground\dapr\Dapr.AppHost\Dapr.AppHost.csproj", "{D537CF4D-DF30-41C7-B4F9-FEB152A19BE7}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dapr.AppHost", "playground\dapr\Dapr.AppHost\Dapr.AppHost.csproj", "{D537CF4D-DF30-41C7-B4F9-FEB152A19BE7}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Orleans.AppHost", "playground\orleans\Orleans.AppHost\Orleans.AppHost.csproj", "{355F724F-D24F-45C6-8914-574385F6FC89}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Orleans.AppHost", "playground\orleans\Orleans.AppHost\Orleans.AppHost.csproj", "{355F724F-D24F-45C6-8914-574385F6FC89}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SignalR.AppHost", "playground\signalr\SignalR.AppHost\SignalR.AppHost.csproj", "{F1D00709-50F2-4533-B38F-3517C0EDEAEE}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SignalR.AppHost", "playground\signalr\SignalR.AppHost\SignalR.AppHost.csproj", "{F1D00709-50F2-4533-B38F-3517C0EDEAEE}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebPubSub.AppHost", "playground\webpubsub\WebPubSub.AppHost\WebPubSub.AppHost.csproj", "{1419BDCB-47EB-43EB-9149-C935B7208A72}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WebPubSub.AppHost", "playground\webpubsub\WebPubSub.AppHost\WebPubSub.AppHost.csproj", "{1419BDCB-47EB-43EB-9149-C935B7208A72}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aspire.Hosting.NodeJs.Tests", "tests\Aspire.Hosting.NodeJs.Tests\Aspire.Hosting.NodeJs.Tests.csproj", "{50450FBB-CD10-4281-B22C-7FF86CEE9D9F}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aspire.Hosting.NodeJs.Tests", "tests\Aspire.Hosting.NodeJs.Tests\Aspire.Hosting.NodeJs.Tests.csproj", "{50450FBB-CD10-4281-B22C-7FF86CEE9D9F}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aspire.Hosting.RabbitMQ.Tests", "tests\Aspire.Hosting.RabbitMQ.Tests\Aspire.Hosting.RabbitMQ.Tests.csproj", "{872AC635-B880-4FAC-BB43-4FD97D7B1209}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aspire.Hosting.RabbitMQ.Tests", "tests\Aspire.Hosting.RabbitMQ.Tests\Aspire.Hosting.RabbitMQ.Tests.csproj", "{872AC635-B880-4FAC-BB43-4FD97D7B1209}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "BrowserTelemetry", "BrowserTelemetry", "{15966C27-17FA-4A46-A172-55985411540A}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BrowserTelemetry.AppHost", "playground\BrowserTelemetry\BrowserTelemetry.AppHost\BrowserTelemetry.AppHost.csproj", "{29946391-F2E9-4DEA-92A2-6FAAC1508446}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BrowserTelemetry.AppHost", "playground\BrowserTelemetry\BrowserTelemetry.AppHost\BrowserTelemetry.AppHost.csproj", "{29946391-F2E9-4DEA-92A2-6FAAC1508446}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BrowserTelemetry.Web", "playground\BrowserTelemetry\BrowserTelemetry.Web\BrowserTelemetry.Web.csproj", "{091EA540-355B-4763-9980-5F83F0BB6F11}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BrowserTelemetry.Web", "playground\BrowserTelemetry\BrowserTelemetry.Web\BrowserTelemetry.Web.csproj", "{091EA540-355B-4763-9980-5F83F0BB6F11}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aspire.Hosting.AWS.Tests", "tests\Aspire.Hosting.AWS.Tests\Aspire.Hosting.AWS.Tests.csproj", "{6F71BC73-B703-4E64-98E0-801781302E7A}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -1519,6 +1521,10 @@ Global
{091EA540-355B-4763-9980-5F83F0BB6F11}.Debug|Any CPU.Build.0 = Debug|Any CPU
{091EA540-355B-4763-9980-5F83F0BB6F11}.Release|Any CPU.ActiveCfg = Release|Any CPU
{091EA540-355B-4763-9980-5F83F0BB6F11}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6F71BC73-B703-4E64-98E0-801781302E7A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6F71BC73-B703-4E64-98E0-801781302E7A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6F71BC73-B703-4E64-98E0-801781302E7A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6F71BC73-B703-4E64-98E0-801781302E7A}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -1797,6 +1803,7 @@ Global
{15966C27-17FA-4A46-A172-55985411540A} = {D173887B-AF42-4576-B9C1-96B9E9B3D9C0}
{29946391-F2E9-4DEA-92A2-6FAAC1508446} = {15966C27-17FA-4A46-A172-55985411540A}
{091EA540-355B-4763-9980-5F83F0BB6F11} = {15966C27-17FA-4A46-A172-55985411540A}
+ {6F71BC73-B703-4E64-98E0-801781302E7A} = {830A89EC-4029-4753-B25A-068BAE37DEC7}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {6DCEDFEC-988E-4CB3-B45B-191EB5086E0C}
diff --git a/src/Aspire.Hosting.AWS/Aspire.Hosting.AWS.csproj b/src/Aspire.Hosting.AWS/Aspire.Hosting.AWS.csproj
index 5b7680879da..28eaa272b74 100644
--- a/src/Aspire.Hosting.AWS/Aspire.Hosting.AWS.csproj
+++ b/src/Aspire.Hosting.AWS/Aspire.Hosting.AWS.csproj
@@ -26,7 +26,7 @@
-
+
diff --git a/tests/Aspire.Hosting.Tests/AWS/AWSCloudFormationResourceTests.cs b/tests/Aspire.Hosting.AWS.Tests/AWSCloudFormationResourceTests.cs
similarity index 90%
rename from tests/Aspire.Hosting.Tests/AWS/AWSCloudFormationResourceTests.cs
rename to tests/Aspire.Hosting.AWS.Tests/AWSCloudFormationResourceTests.cs
index 26ca9f7c432..befa7c9be79 100644
--- a/tests/Aspire.Hosting.Tests/AWS/AWSCloudFormationResourceTests.cs
+++ b/tests/Aspire.Hosting.AWS.Tests/AWSCloudFormationResourceTests.cs
@@ -6,7 +6,8 @@
using Aspire.Hosting.Utils;
using Xunit;
-namespace Aspire.Hosting.Tests.AWS;
+namespace Aspire.Hosting.AWS.Tests;
+
public class AWSCloudFormationResourceTests
{
[Fact]
@@ -62,7 +63,7 @@ public async Task ManifestAWSCloudFormationStackResourceTest()
var resourceBuilder = builder.AddAWSCloudFormationStack("ExistingStack");
- builder.AddProject("serviceA")
+ builder.AddProject("projecta", o => o.ExcludeLaunchProfile = true)
.WithReference(resourceBuilder);
var resource = resourceBuilder.Resource as CloudFormationStackResource;
@@ -74,7 +75,7 @@ public async Task ManifestAWSCloudFormationStackResourceTest()
"stack-name": "ExistingStack",
"references": [
{
- "target-resource": "serviceA"
+ "target-resource": "projecta"
}
]
}
@@ -91,7 +92,7 @@ public async Task ManifestAWSCloudFormationTemplateResourceTest()
var resourceBuilder = builder.AddAWSCloudFormationTemplate("NewStack", "cf.template");
- builder.AddProject("serviceA")
+ builder.AddProject("projecta", o => o.ExcludeLaunchProfile = true)
.WithReference(resourceBuilder);
var resource = resourceBuilder.Resource as CloudFormationTemplateResource;
@@ -104,7 +105,7 @@ public async Task ManifestAWSCloudFormationTemplateResourceTest()
"template-path": "cf.template",
"references": [
{
- "target-resource": "serviceA"
+ "target-resource": "projecta"
}
]
}
@@ -113,4 +114,9 @@ public async Task ManifestAWSCloudFormationTemplateResourceTest()
var manifest = await ManifestUtils.GetManifest(resource);
Assert.Equal(expectedManifest, manifest.ToString());
}
+
+ private sealed class ProjectA : IProjectMetadata
+ {
+ public string ProjectPath => "projectA";
+ }
}
diff --git a/tests/Aspire.Hosting.AWS.Tests/AWSSchemaTests.cs b/tests/Aspire.Hosting.AWS.Tests/AWSSchemaTests.cs
new file mode 100644
index 00000000000..1900b856e28
--- /dev/null
+++ b/tests/Aspire.Hosting.AWS.Tests/AWSSchemaTests.cs
@@ -0,0 +1,39 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+
+using Amazon;
+using Aspire.Hosting.Tests.Schema;
+using Xunit;
+
+namespace Aspire.Hosting.AWS.Tests;
+
+public class AWSSchemaTests
+{
+ [Fact]
+ public void ValidateAddAWSCloudFormationStackManifest()
+ {
+ new SchemaTests().ValidateApplicationSamples("AwsStack", (IDistributedApplicationBuilder builder) =>
+ {
+ var awsSdkConfig = builder.AddAWSSDKConfig()
+ .WithRegion(RegionEndpoint.USWest2)
+ .WithProfile("test-profile");
+
+ builder.AddAWSCloudFormationStack("ExistingStack")
+ .WithReference(awsSdkConfig);
+ });
+ }
+
+ [Fact]
+ public void ValidateAddAWSCloudFormationTemplateManifest()
+ {
+ new SchemaTests().ValidateApplicationSamples("AwsTemplate", (IDistributedApplicationBuilder builder) =>
+ {
+ var awsSdkConfig = builder.AddAWSSDKConfig()
+ .WithRegion(RegionEndpoint.USWest2)
+ .WithProfile("test-profile");
+
+ builder.AddAWSCloudFormationTemplate("TemplateStack", "nonexistenttemplate")
+ .WithReference(awsSdkConfig);
+ });
+ }
+}
diff --git a/tests/Aspire.Hosting.AWS.Tests/Aspire.Hosting.AWS.Tests.csproj b/tests/Aspire.Hosting.AWS.Tests/Aspire.Hosting.AWS.Tests.csproj
new file mode 100644
index 00000000000..c4a5890f39c
--- /dev/null
+++ b/tests/Aspire.Hosting.AWS.Tests/Aspire.Hosting.AWS.Tests.csproj
@@ -0,0 +1,11 @@
+
+
+ $(NetCurrent)
+
+
+
+
+
+
+
+
diff --git a/tests/Aspire.Hosting.Tests/AWS/StackOutputReferenceTests.cs b/tests/Aspire.Hosting.AWS.Tests/StackOutputReferenceTests.cs
similarity index 98%
rename from tests/Aspire.Hosting.Tests/AWS/StackOutputReferenceTests.cs
rename to tests/Aspire.Hosting.AWS.Tests/StackOutputReferenceTests.cs
index aaa0515237f..17fc45204e0 100644
--- a/tests/Aspire.Hosting.Tests/AWS/StackOutputReferenceTests.cs
+++ b/tests/Aspire.Hosting.AWS.Tests/StackOutputReferenceTests.cs
@@ -6,7 +6,8 @@
using Aspire.Hosting.Utils;
using Xunit;
-namespace Aspire.Hosting.Tests.AWS;
+namespace Aspire.Hosting.AWS.Tests;
+
public class StackOutputReferenceTests
{
[Fact]
diff --git a/tests/Aspire.Hosting.Tests/Aspire.Hosting.Tests.csproj b/tests/Aspire.Hosting.Tests/Aspire.Hosting.Tests.csproj
index 7e14fe72ce5..149fd12c476 100644
--- a/tests/Aspire.Hosting.Tests/Aspire.Hosting.Tests.csproj
+++ b/tests/Aspire.Hosting.Tests/Aspire.Hosting.Tests.csproj
@@ -11,7 +11,6 @@
-
diff --git a/tests/Aspire.Hosting.Tests/Schema/SchemaTests.cs b/tests/Aspire.Hosting.Tests/Schema/SchemaTests.cs
index c8ccdc70d1d..ee87c46a0e4 100644
--- a/tests/Aspire.Hosting.Tests/Schema/SchemaTests.cs
+++ b/tests/Aspire.Hosting.Tests/Schema/SchemaTests.cs
@@ -2,7 +2,6 @@
// The .NET Foundation licenses this file to you under the MIT license.
using System.Text.Json.Nodes;
-using Amazon;
using Aspire.Hosting.Publishing;
using Aspire.Hosting.Tests.Helpers;
using Aspire.Hosting.Utils;
@@ -131,28 +130,6 @@ public static TheoryData> Applica
}
},
- { "AwsStack", (IDistributedApplicationBuilder builder) =>
- {
- var awsSdkConfig = builder.AddAWSSDKConfig()
- .WithRegion(RegionEndpoint.USWest2)
- .WithProfile("test-profile");
-
- builder.AddAWSCloudFormationStack("ExistingStack")
- .WithReference(awsSdkConfig);
- }
- },
-
- { "AwsTemplate", (IDistributedApplicationBuilder builder) =>
- {
- var awsSdkConfig = builder.AddAWSSDKConfig()
- .WithRegion(RegionEndpoint.USWest2)
- .WithProfile("test-profile");
-
- builder.AddAWSCloudFormationTemplate("TemplateStack", "nonexistenttemplate")
- .WithReference(awsSdkConfig);
- }
- },
-
{ "DaprWithComponents", (IDistributedApplicationBuilder builder) =>
{
var dapr = builder.AddDapr(dopts =>