1342 references to Resource
Aspire.Hosting (87)
ApplicationModel\ReferenceExpression.cs (2)
146_valueProviders.Add(valueProvider.Resource); 147_manifestExpressions.Add(valueProvider.Resource.ValueExpression);
ApplicationModel\ResourceExtensions.cs (4)
291(DistributedApplicationOperation.Run, IResourceBuilder<IResource> rb) when rb.Resource is IValueProvider provider => await GetValue(key: null, provider, logger, resource.IsContainer(), containerHostName, cancellationToken).ConfigureAwait(false), 293(DistributedApplicationOperation.Publish, IResourceBuilder<IResource> rb) when rb.Resource is IManifestExpressionProvider provider => new(provider.ValueExpression, false), 340(DistributedApplicationOperation.Run, IResourceBuilder<IResource> rb) when rb.Resource is IValueProvider provider => await GetValue(key, provider, logger, resource.IsContainer(), containerHostName, cancellationToken).ConfigureAwait(false), 342(DistributedApplicationOperation.Publish, IResourceBuilder<IResource> rb) when rb.Resource is IManifestExpressionProvider provider => new(provider.ValueExpression, false),
ContainerResourceBuilderExtensions.cs (13)
197builder.Resource.Entrypoint = entrypoint; 213if (builder.Resource.Annotations.OfType<ContainerImageAnnotation>().LastOrDefault() is { } existingImageAnnotation) 233if (builder.Resource.Annotations.OfType<ContainerImageAnnotation>().LastOrDefault() is { } existingImageAnnotation) 272if (builder.Resource.Annotations.OfType<ContainerImageAnnotation>().LastOrDefault() is { } imageAnnotation) 279builder.Resource.Annotations.Add(imageAnnotation); 313if (builder.Resource.Annotations.OfType<ContainerImageAnnotation>().LastOrDefault() is { } existingImageAnnotation) 421throw new InvalidOperationException($"The resource '{builder.Resource.Name}' does not have a container image specified. Use WithImage to specify the container image and tag."); 433return builder.WithManifestPublishingCallback(context => context.WriteContainerAsync(builder.Resource)); 592var annotation = builder.Resource.Annotations.OfType<DockerfileBuildAnnotation>().SingleOrDefault(); 643if (value.Resource.Secret) 648return builder.WithBuildArg(name, value.Resource); 690var annotation = builder.Resource.Annotations.OfType<DockerfileBuildAnnotation>().SingleOrDefault(); 697annotation.BuildSecrets[name] = value.Resource;
ExecutableResourceBuilderExtensions.cs (4)
125builder.ApplicationBuilder.Resources.Remove(builder.Resource); 127var container = new ExecutableContainerResource(builder.Resource); 130cb.WithImage(builder.Resource.Name); 131cb.WithDockerfile(contextPath: builder.Resource.WorkingDirectory);
OtlpConfigurationExtensions.cs (1)
113AddOtlpEnvironment(builder.Resource, builder.ApplicationBuilder.Configuration, builder.ApplicationBuilder.Environment);
ParameterResourceBuilderExtensions.cs (1)
221var parameter = new ParameterResource(builder.Resource.Name, _ => "", secret: true);
ProjectResourceBuilderExtensions.cs (19)
309var projectResource = builder.Resource; 402builder.Resource.KestrelEndpointAnnotationHosts[e] = endpoint.BindingAddress.Host; 515builder.Resource.DefaultHttpsEndpoint = e; 619builder.Resource.Annotations.Add(new EndpointEnvironmentInjectionFilterAnnotation(filter)); 653builder.ApplicationBuilder.Resources.Remove(builder.Resource); 655var container = new ProjectContainerResource(builder.Resource); 658cb.WithImage(builder.Resource.Name); 659cb.WithDockerfile(contextPath: builder.Resource.GetProjectMetadata().ProjectPath); 710foreach (var e in builder.Resource.GetEndpoints().Where(builder.Resource.ShouldInjectEndpointEnvironment)) 727var targetHost = e.EndpointAnnotation.IsProxied && builder.Resource.SupportsProxy() ? "localhost" : e.EndpointAnnotation.TargetHost; 762foreach (var e in builder.Resource.GetEndpoints().Where(builder.Resource.ShouldInjectEndpointEnvironment)) 765if (e.EndpointAnnotation.UriScheme == scheme && e.EndpointAnnotation != builder.Resource.DefaultHttpsEndpoint) 791if (builder.Resource.HasKestrelEndpoints) 793foreach (var e in builder.Resource.GetEndpoints().Where(builder.Resource.ShouldInjectEndpointEnvironment)) 796if (e.EndpointAnnotation == builder.Resource.DefaultHttpsEndpoint) 804builder.Resource.KestrelEndpointAnnotationHosts.TryGetValue(e.EndpointAnnotation, out var kestrelHost) ? kestrelHost : "*";
ResourceBuilderExtensions.cs (41)
164context.EnvironmentVariables[name] = parameter.Resource; 188context.EnvironmentVariables[envVarName] = new ConnectionStringReference(resource.Resource, optional: false); 350var resource = source.Resource; 377ApplyEndpoints(builder, source.Resource); 435var endpointReferenceAnnotation = builder.Resource.Annotations 499var endpoint = builder.Resource.Annotations 513builder.Resource.Annotations.Add(endpoint); 553if (builder.Resource.Annotations.OfType<EndpointAnnotation>().Any(sb => string.Equals(sb.Name, annotation.Name, StringComparisons.EndpointAnnotationName))) 559if (env is not null && builder.Resource is IResourceWithEndpoints resourceWithEndpoints and IResourceWithEnvironment) 644if (!builder.Resource.TryGetAnnotationsOfType<EndpointAnnotation>(out var endpoints)) 672return builder.Resource.GetEndpoint(name); 780if (builder.Resource as IResource == dependency.Resource) 782throw new DistributedApplicationException($"The '{builder.Resource.Name}' resource cannot wait for itself."); 785if (builder.Resource is IResourceWithParent resourceWithParent && resourceWithParent.Parent == dependency.Resource) 787throw new DistributedApplicationException($"The '{builder.Resource.Name}' resource cannot wait for its parent '{dependency.Resource.Name}'."); 790if (dependency.Resource is IResourceWithParent dependencyResourceWithParent) 802if (dependency.Resource is ConnectionStringResource cs) 813builder.WithRelationship(dependency.Resource, KnownRelationshipTypes.WaitFor); 816return builder.WithAnnotation(new WaitAnnotation(dependency.Resource, WaitType.WaitUntilHealthy) { WaitBehavior = waitBehavior }); 876if (builder.Resource as IResource == dependency.Resource) 878throw new DistributedApplicationException($"The '{builder.Resource.Name}' resource cannot wait for itself."); 881if (builder.Resource is IResourceWithParent resourceWithParent && resourceWithParent.Parent == dependency.Resource) 883throw new DistributedApplicationException($"The '{builder.Resource.Name}' resource cannot wait for its parent '{dependency.Resource.Name}'."); 886builder.WithRelationship(dependency.Resource, KnownRelationshipTypes.WaitFor); 888return builder.WithAnnotation(new WaitAnnotation(dependency.Resource, WaitType.WaitForCompletion, exitCode)); 932if (builder.Resource.TryGetAnnotationsOfType<HealthCheckAnnotation>(out var annotations) && annotations.Any(a => a.Key == key)) 934throw new DistributedApplicationException($"Resource '{builder.Resource.Name}' already has a health check with key '{key}'."); 989var endpoint = builder.Resource.GetEndpoint(endpointName); 995throw new DistributedApplicationException($"The endpoint '{endpointName}' does not exist on the resource '{builder.Resource.Name}'."); 1000throw new DistributedApplicationException($"The endpoint '{endpointName}' on resource '{builder.Resource.Name}' was not using the '{desiredScheme}' scheme."); 1007builder.ApplicationBuilder.Eventing.Subscribe<BeforeResourceStartedEvent>(builder.Resource, (@event, ct) => 1014var healthCheckKey = $"{builder.Resource.Name}_{endpointName}_{path}_{statusCode}_check"; 1133var existingAnnotation = builder.Resource.Annotations.OfType<ResourceCommandAnnotation>().SingleOrDefault(a => a.Name == name); 1136builder.Resource.Annotations.Remove(existingAnnotation); 1204return builder.WithParentRelationship(parent.Resource);
Utils\ImageNameGenerator.cs (1)
16return builder.Resource.Name.ToLowerInvariant();
VolumeNameGenerator.cs (1)
33var resourceName = builder.Resource.Name;
Aspire.Hosting.Azure (22)
AzureBicepResourceExtensions.cs (14)
55return new BicepOutputReference(name, builder.Resource); 66return new BicepSecretOutputReference(name, builder.Resource); 114builder.Resource.Parameters[name] = null; 130builder.Resource.Parameters[name] = value; 146builder.Resource.Parameters[name] = value; 162builder.Resource.Parameters[name] = value; 178builder.Resource.Parameters[name] = valueCallback; 193return builder.WithParameter(name, value.Resource); 208builder.Resource.Parameters[name] = value; 224builder.Resource.Parameters[name] = value.Resource; 240builder.Resource.Parameters[name] = value; 256builder.Resource.Parameters[name] = value; 272builder.Resource.Parameters[name] = value;
AzureProvisioningResourceExtensions.cs (2)
44builder.Resource.ConfigureInfrastructure += configure; 71return parameterResourceBuilder.Resource.AsProvisioningParameter(infrastructure, parameterName);
ExistingAzureResourceExtensions.cs (6)
42builder.WithAnnotation(new ExistingAzureResourceAnnotation(nameParameter.Resource, resourceGroupParameter?.Resource)); 84builder.WithAnnotation(new ExistingAzureResourceAnnotation(nameParameter.Resource, resourceGroupParameter?.Resource)); 124builder.WithAnnotation(new ExistingAzureResourceAnnotation(nameParameter.Resource, resourceGroupParameter?.Resource));
Aspire.Hosting.Azure.ApplicationInsights (1)
AzureApplicationInsightsExtensions.cs (1)
76appInsights.WorkspaceResourceId = logAnalyticsWorkspace.Resource.WorkspaceId.AsProvisioningParameter(infrastructure, AzureBicepResource.KnownParameters.LogAnalyticsWorkspaceId);
Aspire.Hosting.Azure.CognitiveServices (1)
AzureOpenAIExtensions.cs (1)
125builder.Resource.AddDeployment(deployment);
Aspire.Hosting.Azure.CosmosDB (15)
AzureCosmosDBExtensions.cs (15)
91builder.ApplicationBuilder.Eventing.Subscribe<ConnectionStringAvailableEvent>(builder.Resource, async (@event, ct) => 93var connectionString = await builder.Resource.ConnectionStringExpression.GetValueAsync(ct).ConfigureAwait(false); 97throw new DistributedApplicationException($"ConnectionStringAvailableEvent was published for the '{builder.Resource.Name}' resource but the connection string was null."); 103builder.ApplicationBuilder.Eventing.Subscribe<ResourceReadyEvent>(builder.Resource, async (@event, ct) => 112foreach (var database in builder.Resource.Databases) 124var healthCheckKey = $"{builder.Resource.Name}_check"; 134var surrogate = new AzureCosmosDBEmulatorResource(builder.Resource); 173var dataPath = builder.Resource.InnerResource.IsPreviewEmulator ? "/data" : "/tmp/cosmos/appdata"; 208if (builder.Resource.InnerResource.IsPreviewEmulator) 253var database = new AzureCosmosDBDatabaseResource(name, databaseName, builder.Resource); 254builder.Resource.Databases.Add(database); 276var container = new AzureCosmosDBContainerResource(name, containerName, partitionKeyPath, builder.Resource); 277builder.Resource.Containers.Add(container); 296if (!builder.Resource.InnerResource.IsPreviewEmulator) 332var azureResource = builder.Resource;
Aspire.Hosting.Azure.EventHubs (23)
AzureEventHubsExtensions.cs (23)
128var hub = new AzureEventHubResource(name, hubName, builder.Resource); 129builder.Resource.Hubs.Add(hub); 145configure(builder.Resource); 168var consumerGroup = new AzureEventHubConsumerGroupResource(name, groupName, builder.Resource); 169builder.Resource.ConsumerGroups.Add(consumerGroup); 206if (builder.Resource.IsEmulator) 227.AddAzureStorage($"{builder.Resource.Name}-storage") 236var surrogate = new AzureEventHubsEmulatorResource(builder.Resource); 248var storage = storageResource.Resource; 262builder.ApplicationBuilder.Eventing.Subscribe<ConnectionStringAvailableEvent>(builder.Resource, async (@event, ct) => 264var connectionString = await builder.Resource.ConnectionStringExpression.GetValueAsync(ct).ConfigureAwait(false) 265?? throw new DistributedApplicationException($"ConnectionStringAvailableEvent was published for the '{builder.Resource.Name}' resource but the connection string was null."); 270if (builder.Resource.Hubs is { Count: > 0 } && builder.Resource.Hubs[0] is { } hub) 277throw new DistributedApplicationException($"The '{builder.Resource.Name}' resource does not have any Event Hubs."); 281var healthCheckKey = $"{builder.Resource.Name}_check"; 296var hasCustomConfigJson = builder.Resource.Annotations.OfType<ContainerMountAnnotation>().Any(v => v.Target == AzureEventHubsEmulatorResource.EmulatorConfigJsonPath); 304var tempConfigFile = WriteEmulatorConfigJson(builder.Resource); 309var configJsonAnnotations = builder.Resource.Annotations.OfType<ConfigJsonAnnotation>(); 335var configJsonPath = aspireStore.GetFileNameWithContent($"{builder.Resource.Name}-Config.json", tempConfigFile); 376return builder.WithBindMount(path ?? $".eventhubs/{builder.Resource.Name}", "/data", isReadOnly: false); 434var configFileMount = builder.Resource.Annotations.OfType<ContainerMountAnnotation>().LastOrDefault(v => v.Target == AzureEventHubsEmulatorResource.EmulatorConfigJsonPath); 437builder.Resource.Annotations.Remove(configFileMount);
Aspire.Hosting.Azure.Functions (8)
AzureFunctionsProjectResourceExtensions.cs (8)
67.RunAsEmulator().Resource; 71storage = builder.AddAzureStorage(storageResourceName).RunAsEmulator().Resource; 156var launchProfile = builder.Resource.GetEffectiveLaunchProfile(); 200var targetEndpoint = builder.Resource.GetEndpoint(useHttps ? "https" : "http"); 217builder.Resource.HostStorage = storage.Resource; 237connectionName ??= source.Resource.Name; 238source.Resource.ApplyAzureFunctionsConfiguration(context.EnvironmentVariables, connectionName);
Aspire.Hosting.Azure.PostgreSQL (14)
AzurePostgresExtensions.cs (14)
55var postgres = CreatePostgreSqlFlexibleServer(infrastructure, builder.ApplicationBuilder, builder.Resource.Databases); 71var resource = new AzurePostgresResource(builder.Resource, configureInfrastructure); 74.WithLoginAndPassword(builder.Resource); 83if (builder.Resource.Annotations.OfType<ContainerImageAnnotation>().SingleOrDefault() is { } containerAnnotation) 85builder.Resource.Annotations.Remove(containerAnnotation); 162var azureResource = builder.Resource; 165builder.Resource.AddDatabase(name, databaseName); 213var azureResource = builder.Resource; 233azureResource.SetInnerResource(postgresContainer.Resource); 288var azureResource = builder.Resource; 290azureResource.UserNameParameter = userName?.Resource ?? 294azureResource.PasswordParameter = password?.Resource ?? 295ParameterResourceBuilderExtensions.CreateDefaultPasswordParameter(builder.ApplicationBuilder, $"{builder.Resource.Name}-password"); 489builder.ApplicationBuilder, $"{builder.Resource.Name}-username", secret: false, generatedUserName);
Aspire.Hosting.Azure.Redis (6)
AzureRedisExtensions.cs (6)
59var resource = new AzureRedisResource(builder.Resource, configureInfrastructure); 70if (builder.Resource.Annotations.OfType<ContainerImageAnnotation>().SingleOrDefault() is { } containerAnnotation) 72builder.Resource.Annotations.Remove(containerAnnotation); 159var azureResource = builder.Resource; 164azureResource.SetInnerResource(redisContainer.Resource); 194var azureResource = builder.Resource;
Aspire.Hosting.Azure.ServiceBus (27)
AzureServiceBusExtensions.cs (27)
142var queue = new AzureServiceBusQueueResource(name, queueName, builder.Resource); 143builder.Resource.Queues.Add(queue); 159configure(builder.Resource); 219var topic = new AzureServiceBusTopicResource(name, topicName, builder.Resource); 220builder.Resource.Topics.Add(topic); 236configure(builder.Resource); 256if (builder.Resource.Topics.FirstOrDefault(x => x.Name == topicName) is { } existingResource) 285var subscription = new AzureServiceBusSubscriptionResource(name, subscriptionName, builder.Resource); 286builder.Resource.Subscriptions.Add(subscription); 302configure(builder.Resource); 336if (builder.Resource.IsEmulator) 349var passwordParameter = ParameterResourceBuilderExtensions.CreateDefaultPasswordParameter(builder.ApplicationBuilder, $"{builder.Resource.Name}-sql-pwd", minLower: 1, minUpper: 1, minNumeric: 1); 361.AddContainer($"{builder.Resource.Name}-sqledge", 375var sqlEndpoint = sqlEdgeResource.Resource.GetEndpoint("tcp"); 386var surrogate = new AzureServiceBusEmulatorResource(builder.Resource); 405var hasCustomConfigJson = builder.Resource.Annotations.OfType<ContainerMountAnnotation>().Any(v => v.Target == AzureServiceBusEmulatorResource.EmulatorConfigJsonPath); 413var tempConfigFile = WriteEmulatorConfigJson(builder.Resource); 418var configJsonAnnotations = builder.Resource.Annotations.OfType<ConfigJsonAnnotation>(); 445var configJsonPath = aspireStore.GetFileNameWithContent($"{builder.Resource.Name}-Config.json", tempConfigFile); 476builder.ApplicationBuilder.Eventing.Subscribe<BeforeResourceStartedEvent>(builder.Resource, async (@event, ct) => 478var connectionString = await builder.Resource.ConnectionStringExpression.GetValueAsync(ct).ConfigureAwait(false); 482throw new DistributedApplicationException($"ConnectionStringAvailableEvent was published for the '{builder.Resource.Name}' resource but the connection string was null."); 491builder.Resource.Queues.Select(x => x.Name).FirstOrDefault() 492?? builder.Resource.Topics.Select(x => x.Name).FirstOrDefault(); 495var healthCheckKey = $"{builder.Resource.Name}_check"; 528var configFileMount = builder.Resource.Annotations.OfType<ContainerMountAnnotation>().LastOrDefault(v => v.Target == AzureServiceBusEmulatorResource.EmulatorConfigJsonPath); 531builder.Resource.Annotations.Remove(configFileMount);
Aspire.Hosting.Azure.SignalR (1)
AzureSignalRExtensions.cs (1)
118var surrogate = new AzureSignalREmulatorResource(builder.Resource);
Aspire.Hosting.Azure.Sql (10)
AzureSqlExtensions.cs (10)
27CreateSqlServer(infrastructure, builder.ApplicationBuilder, builder.Resource.Databases); 30var resource = new AzureSqlServerResource(builder.Resource, configureInfrastructure); 41if (builder.Resource.Annotations.OfType<ContainerImageAnnotation>().SingleOrDefault() is { } containerAnnotation) 43builder.Resource.Annotations.Remove(containerAnnotation); 108var azureResource = builder.Resource; 111builder.Resource.AddDatabase(name, databaseName); 122azureSqlDatabase.SetInnerResource(innerDb.Resource); 159var azureResource = builder.Resource; 169azureResource.SetInnerResource(sqlContainer.Resource); 179existingDb.SetInnerResource(innerDb.Resource);
Aspire.Hosting.Azure.Storage (9)
AzureStorageExtensions.cs (9)
119builder.ApplicationBuilder.Eventing.Subscribe<BeforeResourceStartedEvent>(builder.Resource, async (@event, ct) => 121var connectionString = await builder.Resource.GetBlobConnectionString().GetValueAsync(ct).ConfigureAwait(false); 125throw new DistributedApplicationException($"ConnectionStringAvailableEvent was published for the '{builder.Resource.Name}' resource but the connection string was null."); 131var healthCheckKey = $"{builder.Resource.Name}_check"; 143var surrogate = new AzureStorageEmulatorResource(builder.Resource); 176return builder.WithBindMount(path ?? $".azurite/{builder.Resource.Name}", "/data", isReadOnly); 276var resource = new AzureBlobStorageResource(name, builder.Resource); 291var resource = new AzureTableStorageResource(name, builder.Resource); 306var resource = new AzureQueueStorageResource(name, builder.Resource);
Aspire.Hosting.Azure.Tests (357)
AzureBicepProvisionerTests.cs (21)
24await BicepProvisioner.SetParametersAsync(parameters, bicep0.Resource); 56.WithParameter("expr", ReferenceExpression.Create($"{param.Resource}/1")) 176await BicepProvisioner.SetParametersAsync(parameters0, bicep0.Resource); 177var checkSum0 = BicepProvisioner.GetChecksum(bicep0.Resource, parameters0, null); 183var checkSum1 = await BicepProvisioner.GetCurrentChecksumAsync(bicep1.Resource, config); 195bicep0.Resource.Scope = new("rg0"); 199bicep1.Resource.Scope = new("rg1"); 203await BicepProvisioner.SetParametersAsync(parameters0, bicep0.Resource); 204await BicepProvisioner.SetScopeAsync(scope0, bicep0.Resource); 205var checkSum0 = BicepProvisioner.GetChecksum(bicep0.Resource, parameters0, scope0); 209await BicepProvisioner.SetParametersAsync(parameters1, bicep1.Resource); 210await BicepProvisioner.SetScopeAsync(scope1, bicep1.Resource); 211var checkSum1 = BicepProvisioner.GetChecksum(bicep1.Resource, parameters1, scope1); 223bicep0.Resource.Scope = new("rg0"); 227bicep1.Resource.Scope = new("rg0"); 231await BicepProvisioner.SetParametersAsync(parameters0, bicep0.Resource); 232await BicepProvisioner.SetScopeAsync(scope0, bicep0.Resource); 233var checkSum0 = BicepProvisioner.GetChecksum(bicep0.Resource, parameters0, scope0); 237await BicepProvisioner.SetParametersAsync(parameters1, bicep1.Resource); 238await BicepProvisioner.SetScopeAsync(scope1, bicep1.Resource); 239var checkSum1 = BicepProvisioner.GetChecksum(bicep1.Resource, parameters1, scope1);
AzureBicepResourceTests.cs (151)
35Assert.Equal("content", bicepResource.Resource.TemplateString); 36Assert.Equal("value1", bicepResource.Resource.Parameters["param1"]); 37Assert.Equal("value2", bicepResource.Resource.Parameters["param2"]); 99if (azureResourceBuilder.Resource is not AzureProvisioningResource bicepResource) 120if (azureResourceBuilder.Resource is not AzureProvisioningResource bicepResource) 138bicepResource.Resource.Outputs["resourceEndpoint"] = "https://myendpoint"; 150bicepResource.Resource.SecretOutputs["connectionString"] = "https://myendpoint;Key=43"; 229Assert.True(cosmos.Resource.IsContainer()); 231var csExpr = cosmos.Resource.ConnectionStringExpression; 237Assert.Equal(cs, await ((IResourceWithConnectionString)cosmos.Resource).GetConnectionStringAsync()); 254cosmos.Resource.SecretOutputs["connectionString"] = "mycosmosconnectionstring"; 256var manifest = await ManifestUtils.GetManifestWithBicep(cosmos.Resource); 346var connectionStringResource = (IResourceWithConnectionString)cosmos.Resource; 348Assert.Equal("cosmos", cosmos.Resource.Name); 366cosmos.Resource.Outputs["connectionString"] = "mycosmosconnectionstring"; 368var manifest = await ManifestUtils.GetManifestWithBicep(cosmos.Resource); 468var connectionStringResource = (IResourceWithConnectionString)cosmos.Resource; 470Assert.Equal("cosmos", cosmos.Resource.Name); 488cosmos.Resource.SecretOutputs["connectionString"] = "mycosmosconnectionstring"; 490var manifest = await ManifestUtils.GetManifestWithBicep(cosmos.Resource); 580var connectionStringResource = (IResourceWithConnectionString)cosmos.Resource; 582Assert.Equal("cosmos", cosmos.Resource.Name); 600cosmos.Resource.Outputs["connectionString"] = "mycosmosconnectionstring"; 602var manifest = await ManifestUtils.GetManifestWithBicep(cosmos.Resource); 700var connectionStringResource = (IResourceWithConnectionString)cosmos.Resource; 702Assert.Equal("cosmos", cosmos.Resource.Name); 712appConfig.Resource.Outputs["appConfigEndpoint"] = "https://myendpoint"; 713Assert.Equal("https://myendpoint", await appConfig.Resource.ConnectionStringExpression.GetValueAsync(default)); 715var manifest = await ManifestUtils.GetManifestWithBicep(appConfig.Resource); 717var connectionStringResource = (IResourceWithConnectionString)appConfig.Resource; 779appInsights.Resource.Outputs["appInsightsConnectionString"] = "myinstrumentationkey"; 781var connectionStringResource = (IResourceWithConnectionString)appInsights.Resource; 783Assert.Equal("appInsights", appInsights.Resource.Name); 785Assert.Equal("{appInsights.outputs.appInsightsConnectionString}", appInsights.Resource.ConnectionStringExpression.ValueExpression); 787var appInsightsManifest = await ManifestUtils.GetManifestWithBicep(appInsights.Resource); 836appInsights.Resource.Outputs["appInsightsConnectionString"] = "myinstrumentationkey"; 838var connectionStringResource = (IResourceWithConnectionString)appInsights.Resource; 840Assert.Equal("appInsights", appInsights.Resource.Name); 842Assert.Equal("{appInsights.outputs.appInsightsConnectionString}", appInsights.Resource.ConnectionStringExpression.ValueExpression); 844var appInsightsManifest = await ManifestUtils.GetManifestWithBicep(appInsights.Resource); 902appInsights.Resource.Outputs["appInsightsConnectionString"] = "myinstrumentationkey"; 904var connectionStringResource = (IResourceWithConnectionString)appInsights.Resource; 906Assert.Equal("appInsights", appInsights.Resource.Name); 908Assert.Equal("{appInsights.outputs.appInsightsConnectionString}", appInsights.Resource.ConnectionStringExpression.ValueExpression); 910var appInsightsManifest = await ManifestUtils.GetManifestWithBicep(appInsights.Resource); 959Assert.Equal("logAnalyticsWorkspace", logAnalyticsWorkspace.Resource.Name); 960Assert.Equal("{logAnalyticsWorkspace.outputs.logAnalyticsWorkspaceId}", logAnalyticsWorkspace.Resource.WorkspaceId.ValueExpression); 962var appInsightsManifest = await ManifestUtils.GetManifestWithBicep(logAnalyticsWorkspace.Resource); 1001appInsights.Resource.Outputs["appInsightsConnectionString"] = "myinstrumentationkey"; 1006var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(serviceA.Resource, DistributedApplicationOperation.Run, TestServiceProvider.Instance); 1027var manifest = await ManifestUtils.GetManifest(infrastructure1.Resource); 1052var manifest = await ManifestUtils.GetManifest(infrastructure1.Resource); 1091var manifest = await ManifestUtils.GetManifest(infrastructure1.Resource); 1121Assert.True(redis.Resource.IsContainer()); 1122Assert.NotNull(redis.Resource.PasswordParameter); 1124Assert.Equal($"localhost:12455,password={redis.Resource.PasswordParameter.Value}", await redis.Resource.GetConnectionStringAsync()); 1126var manifest = await ManifestUtils.GetManifestWithBicep(redis.Resource); 1186var manifest = await ManifestUtils.GetManifestWithBicep(mykv.Resource); 1248var manifest = await ManifestUtils.GetManifestWithBicep(mykv.Resource); 1313var manifest = await ManifestUtils.GetManifestWithBicep(sql.Resource); 1315Assert.True(sql.Resource.TryGetLastAnnotation<ConnectionStringRedirectAnnotation>(out var connectionStringAnnotation)); 1319Assert.Equal("Server=tcp:myserver,1433;Encrypt=True;Authentication=\"Active Directory Default\"", await sql.Resource.GetConnectionStringAsync(default)); 1320Assert.Equal("Server=tcp:{sql.outputs.sqlServerFqdn},1433;Encrypt=True;Authentication=\"Active Directory Default\"", sql.Resource.ConnectionStringExpression.ValueExpression); 1407var manifest = await ManifestUtils.GetManifestWithBicep(sql.Resource); 1409Assert.True(sql.Resource.TryGetLastAnnotation<ConnectionStringRedirectAnnotation>(out var connectionStringAnnotation)); 1413Assert.Equal("Server=tcp:myserver,1433;Encrypt=True;Authentication=\"Active Directory Default\"", await sql.Resource.GetConnectionStringAsync(default)); 1414Assert.Equal("Server=tcp:{sql.outputs.sqlServerFqdn},1433;Encrypt=True;Authentication=\"Active Directory Default\"", sql.Resource.ConnectionStringExpression.ValueExpression); 1493Assert.True(postgres.Resource.TryGetLastAnnotation<ConnectionStringRedirectAnnotation>(out var connectionStringAnnotation)); 1497var manifest = await ManifestUtils.GetManifestWithBicep(postgres.Resource); 1502Assert.Equal("myconnectionstring", await postgres.Resource.GetConnectionStringAsync(default)); 1611Assert.True(postgres.Resource.TryGetLastAnnotation<ConnectionStringRedirectAnnotation>(out var connectionStringAnnotation)); 1615var manifest = await ManifestUtils.GetManifestWithBicep(postgres.Resource); 1620Assert.Equal("myconnectionstring", await postgres.Resource.GetConnectionStringAsync(default)); 1721var manifest = await ManifestUtils.GetManifestWithBicep(postgres.Resource); 1727Assert.Equal(expectedConnectionString, await postgres.Resource.GetConnectionStringAsync()); 1753var manifest = await ManifestUtils.GetManifest(postgres.Resource); 1773manifest = await ManifestUtils.GetManifest(postgres.Resource); 1792manifest = await ManifestUtils.GetManifest(postgres.Resource); 1836serviceBus.Resource.Outputs["serviceBusEndpoint"] = "mynamespaceEndpoint"; 1838var connectionStringResource = (IResourceWithConnectionString)serviceBus.Resource; 1840Assert.Equal("sb", serviceBus.Resource.Name); 1844var manifest = await ManifestUtils.GetManifestWithBicep(serviceBus.Resource); 1929wps.Resource.Outputs["endpoint"] = "https://mywebpubsubendpoint"; 1943var connectionStringResource = (IResourceWithConnectionString)wps.Resource; 1946var manifest = await ManifestUtils.GetManifestWithBicep(wps.Resource); 1949Assert.Equal("wps1", wps.Resource.Name); 1998wps.Resource.Outputs["endpoint"] = "https://mywebpubsubendpoint"; 2013var manifest = await ManifestUtils.GetManifestWithBicep(wps.Resource); 2016Assert.Equal("wps1", wps.Resource.Name); 2069Assert.True(storage.Resource.IsContainer()); 2076=> new(storage.Resource, new EndpointAnnotation(ProtocolType.Tcp, name: name, targetPort: port)); 2082Assert.Equal(blobqs, blob.Resource.ConnectionStringExpression.ValueExpression); 2083Assert.Equal(queueqs, queue.Resource.ConnectionStringExpression.ValueExpression); 2084Assert.Equal(tableqs, table.Resource.ConnectionStringExpression.ValueExpression); 2090Assert.Equal(Resolve(blobqs, "blob", 10000), await ((IResourceWithConnectionString)blob.Resource).GetConnectionStringAsync()); 2091Assert.Equal(Resolve(queueqs, "queue", 10001), await ((IResourceWithConnectionString)queue.Resource).GetConnectionStringAsync()); 2092Assert.Equal(Resolve(tableqs, "table", 10002), await ((IResourceWithConnectionString)table.Resource).GetConnectionStringAsync()); 2111storage.Resource.Outputs["blobEndpoint"] = "https://myblob"; 2112storage.Resource.Outputs["queueEndpoint"] = "https://myqueue"; 2113storage.Resource.Outputs["tableEndpoint"] = "https://mytable"; 2116Assert.Equal("storage", storage.Resource.Name); 2118var storageManifest = await ManifestUtils.GetManifestWithBicep(storage.Resource); 2210var connectionStringBlobResource = (IResourceWithConnectionString)blob.Resource; 2219var blobManifest = await ManifestUtils.GetManifest(blob.Resource); 2225var connectionStringQueueResource = (IResourceWithConnectionString)queue.Resource; 2234var queueManifest = await ManifestUtils.GetManifest(queue.Resource); 2240var connectionStringTableResource = (IResourceWithConnectionString)table.Resource; 2249var tableManifest = await ManifestUtils.GetManifest(table.Resource); 2270storage.Resource.Outputs["blobEndpoint"] = "https://myblob"; 2271storage.Resource.Outputs["queueEndpoint"] = "https://myqueue"; 2272storage.Resource.Outputs["tableEndpoint"] = "https://mytable"; 2275Assert.Equal("storage", storage.Resource.Name); 2277var storageManifest = await ManifestUtils.GetManifestWithBicep(storage.Resource); 2369var connectionStringBlobResource = (IResourceWithConnectionString)blob.Resource; 2378var blobManifest = await ManifestUtils.GetManifest(blob.Resource); 2384var connectionStringQueueResource = (IResourceWithConnectionString)queue.Resource; 2393var queueManifest = await ManifestUtils.GetManifest(queue.Resource); 2399var connectionStringTableResource = (IResourceWithConnectionString)table.Resource; 2408var tableManifest = await ManifestUtils.GetManifest(table.Resource); 2428storage.Resource.Outputs["blobEndpoint"] = "https://myblob"; 2429storage.Resource.Outputs["queueEndpoint"] = "https://myqueue"; 2430storage.Resource.Outputs["tableEndpoint"] = "https://mytable"; 2433Assert.Equal("storage", storage.Resource.Name); 2435var storageManifest = await ManifestUtils.GetManifestWithBicep(storage.Resource); 2527var connectionStringBlobResource = (IResourceWithConnectionString)blob.Resource; 2536var blobManifest = await ManifestUtils.GetManifest(blob.Resource); 2542var connectionStringQueueResource = (IResourceWithConnectionString)queue.Resource; 2551var queueManifest = await ManifestUtils.GetManifest(queue.Resource); 2557var connectionStringTableResource = (IResourceWithConnectionString)table.Resource; 2566var tableManifest = await ManifestUtils.GetManifest(table.Resource); 2587storage.Resource.Outputs["blobEndpoint"] = "https://myblob"; 2588storage.Resource.Outputs["queueEndpoint"] = "https://myqueue"; 2589storage.Resource.Outputs["tableEndpoint"] = "https://mytable"; 2592Assert.Equal("storage", storage.Resource.Name); 2594var storageManifest = await ManifestUtils.GetManifestWithBicep(storage.Resource); 2686var connectionStringBlobResource = (IResourceWithConnectionString)blob.Resource; 2695var blobManifest = await ManifestUtils.GetManifest(blob.Resource); 2701var connectionStringQueueResource = (IResourceWithConnectionString)queue.Resource; 2710var queueManifest = await ManifestUtils.GetManifest(queue.Resource); 2716var connectionStringTableResource = (IResourceWithConnectionString)table.Resource; 2725var tableManifest = await ManifestUtils.GetManifest(table.Resource); 2745search.Resource.Outputs["connectionString"] = fakeConnectionString; 2747var connectionStringResource = (IResourceWithConnectionString)search.Resource; 2750Assert.Equal("search", search.Resource.Name); 2754var manifest = await ManifestUtils.GetManifestWithBicep(search.Resource); 2837var aiManifest = await ManifestUtils.GetManifest(ai.Resource); 2841var serviceBusManifest = await ManifestUtils.GetManifest(serviceBus.Resource); 2845var serviceManifest = await ManifestUtils.GetManifest(serviceA.Resource); 2872var manifest = await ManifestUtils.GetManifestWithBicep(openai.Resource); 3027var (manifest, bicep) = await ManifestUtils.GetManifestWithBicep(provisioningResource.Resource);
AzureCosmosDBEmulatorFunctionalTests.cs (14)
49await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running, cts.Token); 55await app.ResourceNotifications.WaitForResourceHealthyAsync(resource.Resource.Name, cts.Token); 95await app.ResourceNotifications.WaitForResourceHealthyAsync(db.Resource.Name, cts.Token); 98hb.Configuration[$"ConnectionStrings:{db.Resource.Name}"] = await cosmos.Resource.ConnectionStringExpression.GetValueAsync(default); 99hb.AddAzureCosmosClient(db.Resource.Name); 100hb.AddCosmosDbContext<EFCoreCosmosDbContext>(db.Resource.Name, databaseName); 223await rns.WaitForResourceHealthyAsync(cosmos2.Resource.Name, cts.Token); 231[$"ConnectionStrings:{cosmos2.Resource.Name}"] = await cosmos2.Resource.ConnectionStringExpression.GetValueAsync(default) 234hb.AddAzureCosmosClient(cosmos2.Resource.Name); 292await rns.WaitForResourceHealthyAsync(cosmos.Resource.Name, cts.Token); 295hb.Configuration[$"ConnectionStrings:{cosmos.Resource.Name}"] = await cosmos.Resource.ConnectionStringExpression.GetValueAsync(default); 296hb.AddAzureCosmosClient(cosmos.Resource.Name);
AzureCosmosDBExtensionsTests.cs (9)
29var endpointAnnotation = cosmos.Resource.Annotations.OfType<EndpointAnnotation>().FirstOrDefault(); 50var containerImageAnnotation = cosmos.Resource.Annotations.OfType<ContainerImageAnnotation>().FirstOrDefault(); 67var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(cosmos.Resource, DistributedApplicationOperation.Run, TestServiceProvider.Instance); 102Assert.Equal("{cosmos.outputs.connectionString}", cosmos.Resource.ConnectionStringExpression.ValueExpression); 103Assert.Equal("{cosmos.outputs.connectionString}", db1.Resource.ConnectionStringExpression.ValueExpression); 104Assert.Equal("{cosmos.outputs.connectionString}", container1.Resource.ConnectionStringExpression.ValueExpression); 117((IResourceWithAzureFunctionsConfig)cosmos.Resource).ApplyAzureFunctionsConfiguration(target, "cosmos"); 123((IResourceWithAzureFunctionsConfig)db1.Resource).ApplyAzureFunctionsConfiguration(target, "db1"); 129((IResourceWithAzureFunctionsConfig)container1.Resource).ApplyAzureFunctionsConfiguration(target, "container1");
AzureEventHubsExtensionsTests.cs (23)
51await rns.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running, cts.Token); 53await rns.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting, cts.Token); 57await rns.WaitForResourceHealthyAsync(resource.Resource.Name, cts.Token); 59await rns.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running, cts.Token); 85hb.Configuration["ConnectionStrings:hub"] = await eventHub.Resource.ConnectionStringExpression.GetValueAsync(CancellationToken.None); 91hb.Configuration["ConnectionStrings:eventhubns"] = await eventHubns.Resource.ConnectionStringExpression.GetValueAsync(CancellationToken.None); 129hb.Configuration["ConnectionStrings:eventhubns"] = await eventHubns.Resource.ConnectionStringExpression.GetValueAsync(CancellationToken.None); 137await rns.WaitForResourceHealthyAsync(eventHubns.Resource.Name, cts.Token); 163var volumeAnnotation = eventHubs.Resource.Annotations.OfType<ContainerMountAnnotation>().Single(a => !a.Target.Contains("Config.json")); 180var volumeAnnotation = eventHubs.Resource.Annotations.OfType<ContainerMountAnnotation>().Single(a => !a.Target.Contains("Config.json")); 197var volumeAnnotation = eventHubs.Resource.Annotations.OfType<ContainerMountAnnotation>().Single(a => !a.Target.Contains("Config.json")); 214var volumeAnnotation = eventHubs.Resource.Annotations.OfType<ContainerMountAnnotation>().Single(a => !a.Target.Contains("Config.json")); 234eventHubs.Resource.Annotations.OfType<EndpointAnnotation>(), 256var containerImageAnnotation = eventHubs.Resource.Annotations.OfType<ContainerImageAnnotation>().FirstOrDefault(); 274var manifest = await ManifestUtils.GetManifestWithBicep(eventHubs.Resource); 347var manifest = await ManifestUtils.GetManifestWithBicep(eventHubs.Resource); 549serviceBus.Resource.TryGetLastAnnotation<ContainerLifetimeAnnotation>(out var sbLifetimeAnnotation); 574Assert.Equal("{eh.outputs.eventHubsEndpoint}", eventHubs.Resource.ConnectionStringExpression.ValueExpression); 575Assert.Equal("Endpoint={eh.outputs.eventHubsEndpoint};EntityPath=hub1", eventHub.Resource.ConnectionStringExpression.ValueExpression); 576Assert.Equal("Endpoint={eh.outputs.eventHubsEndpoint};EntityPath=hub1;ConsumerGroup=cg1", consumerGroup.Resource.ConnectionStringExpression.ValueExpression); 589((IResourceWithAzureFunctionsConfig)eventHubs.Resource).ApplyAzureFunctionsConfiguration(target, "eh"); 599((IResourceWithAzureFunctionsConfig)eventHub.Resource).ApplyAzureFunctionsConfiguration(target, "hub1"); 615((IResourceWithAzureFunctionsConfig)consumerGroup.Resource).ApplyAzureFunctionsConfiguration(target, "cg1");
AzurePostgresExtensionsTests.cs (11)
22var manifest = await ManifestUtils.GetManifestWithBicep(postgres.Resource); 146var manifest = await ManifestUtils.GetManifestWithBicep(postgres.Resource); 154"administratorLogin": "{{{userName?.Resource.Name ?? "postgres-data-username"}}.value}", 155"administratorLoginPassword": "{{{password?.Resource.Name ?? "postgres-data-password"}}.value}", 280Assert.True(postgres.Resource.IsContainer(), "The resource should now be a container resource."); 281Assert.StartsWith("Host=localhost;Port=12455;Username=postgres;Password=", await postgres.Resource.ConnectionStringExpression.GetValueAsync(CancellationToken.None)); 283var db1ConnectionString = await db1.Resource.ConnectionStringExpression.GetValueAsync(CancellationToken.None); 287var db2ConnectionString = await db2.Resource.ConnectionStringExpression.GetValueAsync(CancellationToken.None); 322Assert.Equal("Host=localhost;Port=12455;Username=user;Password=p@ssw0rd1", await postgres.Resource.ConnectionStringExpression.GetValueAsync(CancellationToken.None)); 323Assert.Equal("Host=localhost;Port=12455;Username=user;Password=p@ssw0rd1;Database=db1", await db1.Resource.ConnectionStringExpression.GetValueAsync(CancellationToken.None)); 324Assert.Equal("Host=localhost;Port=12455;Username=user;Password=p@ssw0rd1;Database=db2Name", await db2.Resource.ConnectionStringExpression.GetValueAsync(CancellationToken.None));
AzureProvisioningResourceExtensionsTests.cs (1)
50var manifest = await ManifestUtils.GetManifestWithBicep(resource1.Resource);
AzureRedisExtensionsTests.cs (5)
20var manifest = await ManifestUtils.GetManifestWithBicep(redis.Resource); 88var manifest = await ManifestUtils.GetManifestWithBicep(redis.Resource); 150redisResource = c.Resource; 155Assert.True(redis.Resource.IsContainer(), "The resource should now be a container resource."); 158Assert.Equal($"localhost:12455,password={redisResource.PasswordParameter.Value}", await redis.Resource.ConnectionStringExpression.GetValueAsync(CancellationToken.None));
AzureServiceBusExtensionsTests.cs (21)
39var manifest = await ManifestUtils.GetManifestWithBicep(serviceBus.Resource); 129var manifest = await ManifestUtils.GetManifestWithBicep(serviceBus.Resource); 202await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running, cts.Token); 204await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting, cts.Token); 208await app.ResourceNotifications.WaitForResourceHealthyAsync(resource.Resource.Name, cts.Token); 210await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running, cts.Token); 234hb.Configuration["ConnectionStrings:servicebusns"] = await serviceBus.Resource.ConnectionStringExpression.GetValueAsync(CancellationToken.None); 241await rns.WaitForResourceAsync(serviceBus.Resource.Name, KnownResourceStates.Running, cts.Token); 242await rns.WaitForResourceHealthyAsync(serviceBus.Resource.Name, cts.Token); 269serviceBus.Resource.Annotations.OfType<EndpointAnnotation>(), 291var containerImageAnnotation = serviceBus.Resource.Annotations.OfType<ContainerImageAnnotation>().FirstOrDefault(); 369var manifest = await ManifestUtils.GetManifestWithBicep(serviceBus.Resource); 730serviceBus.Resource.TryGetLastAnnotation<ContainerLifetimeAnnotation>(out var sbLifetimeAnnotation); 758Assert.Equal("{sb.outputs.serviceBusEndpoint}", serviceBus.Resource.ConnectionStringExpression.ValueExpression); 759Assert.Equal("{sb.outputs.serviceBusEndpoint}", queue.Resource.ConnectionStringExpression.ValueExpression); 760Assert.Equal("{sb.outputs.serviceBusEndpoint}", topic.Resource.ConnectionStringExpression.ValueExpression); 761Assert.Equal("{sb.outputs.serviceBusEndpoint}", subscription.Resource.ConnectionStringExpression.ValueExpression); 775((IResourceWithAzureFunctionsConfig)serviceBus.Resource).ApplyAzureFunctionsConfiguration(target, "sb"); 781((IResourceWithAzureFunctionsConfig)queue.Resource).ApplyAzureFunctionsConfiguration(target, "queue"); 787((IResourceWithAzureFunctionsConfig)topic.Resource).ApplyAzureFunctionsConfiguration(target, "topic"); 793((IResourceWithAzureFunctionsConfig)subscription.Resource).ApplyAzureFunctionsConfiguration(target, "sub");
AzureSignalREmulatorFunctionalTest.cs (8)
30Assert.True(signalR.Resource.IsEmulator); 32var connectionStringExpr = signalR.Resource.ConnectionStringExpression; 37Assert.Equal(connectionString, await ((IResourceWithConnectionString)signalR.Resource).GetConnectionStringAsync()); 62await app.ResourceNotifications.WaitForResourceAsync(signalR.Resource.Name, KnownResourceStates.Running, cts.Token); 63await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting, cts.Token); 67await app.ResourceNotifications.WaitForResourceHealthyAsync(signalR.Resource.Name, cts.Token); 69await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running, cts.Token); 100var connectionString = await signalR.Resource.ConnectionStringExpression.GetValueAsync(default);
AzureSignalRExtensionsTests.cs (2)
20var manifest = await ManifestUtils.GetManifestWithBicep(signalr.Resource); 92var manifest = await ManifestUtils.GetManifestWithBicep(signalr.Resource);
AzureSqlExtensionsTests.cs (5)
25var manifest = await ManifestUtils.GetManifestWithBicep(sql.Resource); 161Assert.True(sql.Resource.IsContainer(), "The resource should now be a container resource."); 162var serverConnectionString = await sql.Resource.ConnectionStringExpression.GetValueAsync(CancellationToken.None); 166var db1ConnectionString = await db1.Resource.ConnectionStringExpression.GetValueAsync(CancellationToken.None); 170var db2ConnectionString = await db2.Resource.ConnectionStringExpression.GetValueAsync(CancellationToken.None);
AzureStorageEmulatorFunctionalTests.cs (7)
50await rns.WaitForResourceAsync(storage.Resource.Name, KnownResourceStates.Running, cts.Token); 52await rns.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting, cts.Token); 56await rns.WaitForResourceHealthyAsync(blobs.Resource.Name, cts.Token); 57await rns.WaitForResourceHealthyAsync(queues.Resource.Name, cts.Token); 58await rns.WaitForResourceHealthyAsync(tables.Resource.Name, cts.Token); 60await rns.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running, cts.Token); 78hb.Configuration["ConnectionStrings:BlobConnection"] = await storage.Resource.ConnectionStringExpression.GetValueAsync(CancellationToken.None);
AzureStorageExtensionsTests.cs (7)
32var volumeAnnotation = storage.Resource.Annotations.OfType<ContainerMountAnnotation>().Single(); 58var volumeAnnotation = storage.Resource.Annotations.OfType<ContainerMountAnnotation>().Single(); 84var volumeAnnotation = storage.Resource.Annotations.OfType<ContainerMountAnnotation>().Single(); 110var volumeAnnotation = storage.Resource.Annotations.OfType<ContainerMountAnnotation>().Single(); 129storage.Resource.Annotations.OfType<EndpointAnnotation>(), 143var args = await ArgumentEvaluator.GetArgumentListAsync(storage.Resource); 163var args = await ArgumentEvaluator.GetArgumentListAsync(storage.Resource);
AzureWebPubSubExtensionsTests.cs (15)
37Assert.Equal(hubName, hub.Resource.Name); 38var manifest = await ManifestUtils.GetManifestWithBicep(wps.Resource); 63var manifest = await ManifestUtils.GetManifestWithBicep(wps.Resource); 69Assert.Equal("wps1", wps.Resource.Name); 138var manifest = await ManifestUtils.GetManifestWithBicep(wps.Resource); 144Assert.Equal("wps1", wps.Resource.Name); 213var manifest = await ManifestUtils.GetManifestWithBicep(wps.Resource); 219Assert.Equal("wps1", wps.Resource.Name); 289wps.Resource.Outputs["endpoint"] = "https://mywebpubsubendpoint"; 290var manifest = await ManifestUtils.GetManifestWithBicep(wps.Resource); 295Assert.Equal("wps1", wps.Resource.Name); 375wps.Resource.Outputs["endpoint"] = "https://mywebpubsubendpoint"; 392var connectionStringResource = (IResourceWithConnectionString)wps.Resource; 395var manifest = await ManifestUtils.GetManifestWithBicep(wps.Resource); 402Assert.Equal("wps1", wps.Resource.Name);
ExistingAzureResourceExtensionsTests.cs (7)
23Assert.False(serviceBus.Resource.IsExisting()); 37Assert.True(serviceBus.Resource.TryGetLastAnnotation<ExistingAzureResourceAnnotation>(out var existingAzureResourceAnnotation)); 58Assert.True(serviceBus.Resource.TryGetLastAnnotation<ExistingAzureResourceAnnotation>(out var existingAzureResourceAnnotation)); 76Assert.True(serviceBus.Resource.TryGetLastAnnotation<ExistingAzureResourceAnnotation>(out var existingAzureResourceAnnotation)); 97Assert.True(serviceBus.Resource.TryGetLastAnnotation<ExistingAzureResourceAnnotation>(out var existingAzureResourceAnnotation)); 117Assert.True(serviceBus.Resource.TryGetLastAnnotation<ExistingAzureResourceAnnotation>(out var existingAzureResourceAnnotation)); 135Assert.True(serviceBus.Resource.TryGetLastAnnotation<ExistingAzureResourceAnnotation>(out var existingAzureResourceAnnotation));
ExistingAzureResourceTests.cs (24)
23var (ManifestNode, BicepText) = await ManifestUtils.GetManifestWithBicep(serviceBus.Resource); 85var (ManifestNode, BicepText) = await ManifestUtils.GetManifestWithBicep(serviceBus.Resource); 156var (ManifestNode, BicepText) = await ManifestUtils.GetManifestWithBicep(serviceBus.Resource); 219var (ManifestNode, BicepText) = await ManifestUtils.GetManifestWithBicep(serviceBus.Resource); 283var (ManifestNode, BicepText) = await ManifestUtils.GetManifestWithBicep(serviceBus.Resource); 346var (ManifestNode, BicepText) = await ManifestUtils.GetManifestWithBicep(storageAccount.Resource); 433var (ManifestNode, BicepText) = await ManifestUtils.GetManifestWithBicep(storageAccount.Resource); 519var (ManifestNode, BicepText) = await ManifestUtils.GetManifestWithBicep(appConfiguration.Resource); 580var (ManifestNode, BicepText) = await ManifestUtils.GetManifestWithBicep(eventHubs.Resource); 641var (ManifestNode, BicepText) = await ManifestUtils.GetManifestWithBicep(keyVault.Resource); 702var (ManifestNode, BicepText) = await ManifestUtils.GetManifestWithBicep(logAnalytics.Resource); 746var (ManifestNode, BicepText) = await ManifestUtils.GetManifestWithBicep(postgresSql.Resource); 826var (ManifestNode, BicepText) = await ManifestUtils.GetManifestWithBicep(postgresSql.Resource); 900var (ManifestNode, BicepText) = await ManifestUtils.GetManifestWithBicep(search.Resource); 971var (ManifestNode, BicepText) = await ManifestUtils.GetManifestWithBicep(signalR.Resource); 1032var (ManifestNode, BicepText) = await ManifestUtils.GetManifestWithBicep(webPubSub.Resource); 1093var (ManifestNode, BicepText) = await ManifestUtils.GetManifestWithBicep(sqlServer.Resource); 1161var (ManifestNode, BicepText) = await ManifestUtils.GetManifestWithBicep(sqlServer.Resource); 1236var (ManifestNode, BicepText) = await ManifestUtils.GetManifestWithBicep(redis.Resource); 1296var (ManifestNode, BicepText) = await ManifestUtils.GetManifestWithBicep(redis.Resource); 1351var (ManifestNode, BicepText) = await ManifestUtils.GetManifestWithBicep(appInsights.Resource); 1396var (ManifestNode, BicepText) = await ManifestUtils.GetManifestWithBicep(openAI.Resource); 1475var (ManifestNode, BicepText) = await ManifestUtils.GetManifestWithBicep(cosmos.Resource); 1571var (ManifestNode, BicepText) = await ManifestUtils.GetManifestWithBicep(cosmos.Resource);
PublicApiTests\CosmosDBPublicApiTests.cs (5)
23var parent = new AzureCosmosDBDatabaseResource("database", "cosmos-db", resource.Resource); 43var parent = new AzureCosmosDBDatabaseResource("database", "cosmos-db", resource.Resource); 63var parent = new AzureCosmosDBDatabaseResource("database", "cosmos-db", resource.Resource); 97var action = () => new AzureCosmosDBDatabaseResource(name, databaseName, parent.Resource); 115var action = () => new AzureCosmosDBDatabaseResource(name, databaseName, parent.Resource);
PublicApiTests\EventHubsPublicApiTests.cs (2)
22var parent = new AzureEventHubResource("hub", "event-hub", resource.Resource); 41var parent = new AzureEventHubResource("hub", "event-hub", resource.Resource);
ResourceWithAzureFunctionsConfigTests.cs (19)
16var storageResource = builder.AddAzureStorage("storage").Resource; 28var blobResource = storageResource.AddBlobs("blobs").Resource; 40var queueResource = storageResource.AddQueues("queues").Resource; 51var cosmosResource = builder.AddAzureCosmosDB("cosmos").Resource; 63var dbResource = cosmosResource.AddCosmosDatabase("database").Resource; 76var containerResource = dbResource.AddContainer("container", "/id").Resource; 87var eventHubsResource = builder.AddAzureEventHubs("eventhubs").Resource; 98var serviceBusResource = builder.AddAzureServiceBus("servicebus").Resource; 109var storage = builder.AddAzureStorage("storage").RunAsEmulator().Resource; 127var storage = builder.AddAzureStorage("storage").Resource; 148var blobResource = storage.AddBlobs("blobs").Resource; 165var tableResource = storage.AddTables("tables").Resource; 182var queueResource = storage.AddQueues("queues").Resource; 198var cosmosResource = builder.AddAzureCosmosDB("cosmos").RunAsEmulator().Resource; 214var cosmosResource = builder.AddAzureCosmosDB("cosmos").WithAccessKeyAuthentication().Resource; 230var cosmosResource = builder.AddAzureCosmosDB("cosmos").Resource; 246var eventHubsResource = builder.AddAzureEventHubs("eventhubs").RunAsEmulator().Resource; 266var eventHubsResource = builder.AddAzureEventHubs("eventhubs").Resource; 286var serviceBusResource = builder.AddAzureServiceBus("servicebus").Resource;
Aspire.Hosting.Azure.WebPubSub (4)
AzureWebPubSubExtensions.cs (4)
142if (!builder.Resource.Hubs.TryGetValue(hubName, out hubResource)) 144hubResource = new AzureWebPubSubHubResource(hubName, builder.Resource); 145builder.Resource.Hubs[hubName] = hubResource; 198builder.Resource.EventHandlers.Add((urlExpression, userEventPattern, systemEvents, authSettings));
Aspire.Hosting.Containers.Tests (37)
ContainerResourceBuilderTests.cs (17)
17Assert.Equal("redis-stack", redis.Resource.Annotations.OfType<ContainerImageAnnotation>().Single().Image); 25Assert.Equal("redis-stack", redis.Resource.Annotations.OfType<ContainerImageAnnotation>().Single().Image); 26Assert.Equal("1.0.0", redis.Resource.Annotations.OfType<ContainerImageAnnotation>().Single().Tag); 34container.Resource.Annotations.RemoveAt(0); 37Assert.Equal("new-image", container.Resource.Annotations.OfType<ContainerImageAnnotation>().Single().Image); 38Assert.Equal("latest", container.Resource.Annotations.OfType<ContainerImageAnnotation>().Single().Tag); 46container.Resource.Annotations.Add(new ContainerImageAnnotation { Image = "another-image" }); 49Assert.Equal("new-image", container.Resource.Annotations.OfType<ContainerImageAnnotation>().Last().Image); 50Assert.Equal("latest", container.Resource.Annotations.OfType<ContainerImageAnnotation>().Last().Tag); 58Assert.Equal("7.1", redis.Resource.Annotations.OfType<ContainerImageAnnotation>().Single().Tag); 66Assert.Equal("myregistry.azurecr.io", redis.Resource.Annotations.OfType<ContainerImageAnnotation>().Single().Registry); 74Assert.Equal("42b5c726e719639fcc1e9dbc13dd843f567dcd37911d0e1abb9f47f2cc1c95cd", redis.Resource.Annotations.OfType<ContainerImageAnnotation>().Single().SHA256); 152var annotation = redis.Resource.Annotations.OfType<ContainerImageAnnotation>().Single(); 164var annotation = redis.Resource.Annotations.OfType<ContainerImageAnnotation>().Single(); 177var annotation = redis.Resource.Annotations.OfType<ContainerImageAnnotation>().Single(); 213var annotation = redis.Resource.Annotations.OfType<ContainerImagePullPolicyAnnotation>().Single(); 221var containerImage = builder.Resource.Annotations.OfType<ContainerImageAnnotation>().Single();
ContainerResourceTests.cs (2)
116var args = await ArgumentEvaluator.GetArgumentListAsync(c2.Resource); 123var manifest = await ManifestUtils.GetManifest(c2.Resource);
WithDockerfileTests.cs (18)
100Assert.True(dockerFile.Resource.TryGetLastAnnotation<ContainerImageAnnotation>(out var containerImageAnnotation)); 119Assert.True(dockerFile.Resource.TryGetLastAnnotation<ContainerImageAnnotation>(out var containerImageAnnotation)); 133Assert.True(dockerFile.Resource.TryGetLastAnnotation<ContainerImageAnnotation>(out var containerImageAnnotation1)); 137Assert.True(dockerFile.Resource.TryGetLastAnnotation<ContainerImageAnnotation>(out var containerImageAnnotation2)); 154Assert.True(dockerFile.Resource.TryGetLastAnnotation<ContainerImageAnnotation>(out var containerImageAnnotation1)); 158Assert.True(dockerFile.Resource.TryGetLastAnnotation<ContainerImageAnnotation>(out var containerImageAnnotation2)); 252var manifest = await ManifestUtils.GetManifest(container.Resource, manifestDirectory: tempContextPath); 299var manifest = await ManifestUtils.GetManifest(container.Resource, manifestDirectory: tempContextPath); 345var manifest = await ManifestUtils.GetManifest(container.Resource, manifestDirectory: tempContextPath); 390var manifest = await ManifestUtils.GetManifest(container.Resource, manifestDirectory: tempContextPath); 617var annotation = Assert.Single(container.Resource.Annotations.OfType<DockerfileBuildAnnotation>()); 632var annotation = Assert.Single(container.Resource.Annotations.OfType<DockerfileBuildAnnotation>()); 648var annotation = Assert.Single(container.Resource.Annotations.OfType<DockerfileBuildAnnotation>()); 663var annotation = Assert.Single(container.Resource.Annotations.OfType<DockerfileBuildAnnotation>()); 679var annotation = Assert.Single(container.Resource.Annotations.OfType<DockerfileBuildAnnotation>()); 694var annotation = Assert.Single(container.Resource.Annotations.OfType<DockerfileBuildAnnotation>()); 710var annotation = Assert.Single(container.Resource.Annotations.OfType<DockerfileBuildAnnotation>()); 725var annotation = Assert.Single(container.Resource.Annotations.OfType<DockerfileBuildAnnotation>());
Aspire.Hosting.Elasticsearch (1)
ElasticsearchBuilderExtensions.cs (1)
53var passwordParameter = password?.Resource ?? ParameterResourceBuilderExtensions.CreateDefaultPasswordParameter(builder, $"{name}-password");
Aspire.Hosting.Elasticsearch.Tests (21)
AddElasticsearchTests.cs (3)
151Assert.Equal($"http://elastic:{elasticsearch.Resource.PasswordParameter.Value}@localhost:27020", connectionString); 162var manifest = await ManifestUtils.GetManifest(elasticsearch.Resource); 201var manifest = await ManifestUtils.GetManifest(elasticsearch.Resource);
ElasticsearchFunctionalTests.cs (17)
46await rns.WaitForResourceHealthyAsync(elasticsearch.Resource.Name, cts.Token); 50hb.Configuration[$"ConnectionStrings:{elasticsearch.Resource.Name}"] = await elasticsearch.Resource.ConnectionStringExpression.GetValueAsync(default); 52hb.AddElasticsearchClient(elasticsearch.Resource.Name); 89var password = elasticsearch1.Resource.PasswordParameter.Value; 110await app.ResourceNotifications.WaitForResourceHealthyAsync(elasticsearch1.Resource.Name, cts.Token); 116hb.Configuration[$"ConnectionStrings:{elasticsearch1.Resource.Name}"] = await elasticsearch1.Resource.ConnectionStringExpression.GetValueAsync(default); 118hb.AddElasticsearchClient(elasticsearch1.Resource.Name); 167await app.ResourceNotifications.WaitForResourceHealthyAsync(elasticsearch2.Resource.Name, cts.Token); 173hb.Configuration[$"ConnectionStrings:{elasticsearch2.Resource.Name}"] = await elasticsearch2.Resource.ConnectionStringExpression.GetValueAsync(default); 175hb.AddElasticsearchClient(elasticsearch2.Resource.Name); 257await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running, cts.Token); 259await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting, cts.Token); 263await app.ResourceNotifications.WaitForResourceHealthyAsync(resource.Resource.Name, cts.Token); 265await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running, cts.Token);
ElasticsearchPublicApiTests.cs (1)
89var action = () => new ElasticsearchResource(name, password.Resource);
Aspire.Hosting.Garnet (1)
GarnetBuilderExtensions.cs (1)
106var passwordParameter = password?.Resource ?? ParameterResourceBuilderExtensions.CreateDefaultPasswordParameter(builder, $"{name}-password", special: false);
Aspire.Hosting.Garnet.Tests (21)
AddGarnetTests.cs (10)
94var manifest = await ManifestUtils.GetManifest(garnet.Resource); 134var manifest = await ManifestUtils.GetManifest(garnet.Resource); 170var manifest = await ManifestUtils.GetManifest(garnet.Resource); 215var volumeAnnotation = garnet.Resource.Annotations.OfType<ContainerMountAnnotation>().Single(); 240var volumeAnnotation = garnet.Resource.Annotations.OfType<ContainerMountAnnotation>().Single(); 255Assert.True(garnet.Resource.TryGetAnnotationsOfType<CommandLineArgsCallbackAnnotation>(out var argsCallbacks)); 279Assert.True(garnet.Resource.TryGetAnnotationsOfType<CommandLineArgsCallbackAnnotation>(out var argsCallbacks)); 287var args = await ArgumentEvaluator.GetArgumentListAsync(builder.Resource); 310Assert.True(garnet.Resource.TryGetAnnotationsOfType<CommandLineArgsCallbackAnnotation>(out var argsCallbacks)); 327Assert.True(garnet.Resource.TryGetAnnotationsOfType<CommandLineArgsCallbackAnnotation>(out var argsAnnotations));
GarnetFunctionalTests.cs (11)
42await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running, cts.Token); 44await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting, cts.Token); 48await app.ResourceNotifications.WaitForResourceHealthyAsync(resource.Resource.Name, cts.Token); 50await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running, cts.Token); 76hb.Configuration[$"ConnectionStrings:{garnet.Resource.Name}"] = await garnet.Resource.ConnectionStringExpression.GetValueAsync(default); 78hb.AddRedisClient(garnet.Resource.Name); 155hb.Configuration[$"ConnectionStrings:{garnet1.Resource.Name}"] = $"{await garnet1.Resource.ConnectionStringExpression.GetValueAsync(default)}"; 206hb.Configuration[$"ConnectionStrings:{garnet2.Resource.Name}"] = $"{await garnet2.Resource.ConnectionStringExpression.GetValueAsync(default)}";
Aspire.Hosting.Kafka (1)
KafkaBuilderExtensions.cs (1)
103containerName ??= $"{builder.Resource.Name}-kafka-ui";
Aspire.Hosting.Kafka.Tests (15)
AddKafkaTests.cs (5)
81var manifest = await ManifestUtils.GetManifest(kafka.Resource); 121var config = await kafka.Resource.GetEnvironmentVariableValuesAsync(); 123var volumeAnnotation = kafka.Resource.Annotations.OfType<ContainerMountAnnotation>().Single(); 139var config = await kafka.Resource.GetEnvironmentVariableValuesAsync(); 141var volumeAnnotation = kafka.Resource.Annotations.OfType<ContainerMountAnnotation>().Single();
KafkaFunctionalTests.cs (10)
43await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 45await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 49await app.ResourceNotifications.WaitForResourceHealthyAsync(resource.Resource.Name).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 51await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 74hb.Configuration[$"ConnectionStrings:{kafka.Resource.Name}"] = await kafka.Resource.ConnectionStringExpression.GetValueAsync(default); 168hb.Configuration[$"ConnectionStrings:{kafka1.Resource.Name}"] = await kafka1.Resource.ConnectionStringExpression.GetValueAsync(default); 220hb.Configuration[$"ConnectionStrings:{kafka2.Resource.Name}"] = await kafka2.Resource.ConnectionStringExpression.GetValueAsync(default);
Aspire.Hosting.Keycloak (2)
KeycloakResourceBuilderExtensions.cs (2)
55var passwordParameter = adminPassword?.Resource ?? ParameterResourceBuilderExtensions.CreateDefaultPasswordParameter(builder, $"{name}-password"); 57var resource = new KeycloakResource(name, adminUsername?.Resource, passwordParameter);
Aspire.Hosting.Keycloak.Tests (7)
KeycloakPublicApiTests.cs (2)
173var containerAnnotation = keycloak.Resource.Annotations.OfType<ContainerMountAnnotation>().Single(); 208var containerAnnotation = keycloak.Resource.Annotations.OfType<ContainerMountAnnotation>().Single();
KeycloakResourceBuilderTests.cs (5)
66var volumeAnnotation = keycloak.Resource.Annotations.OfType<ContainerMountAnnotation>().Single(); 81var volumeAnnotation = keycloak.Resource.Annotations.OfType<ContainerMountAnnotation>().Single(); 96Assert.Equal("Aspire.Hosting.ApplicationModel.UserSecretsParameterDefault", rmq.Resource.AdminPasswordParameter.Default?.GetType().FullName); 106Assert.NotEqual("Aspire.Hosting.ApplicationModel.UserSecretsParameterDefault", rmq.Resource.AdminPasswordParameter.Default?.GetType().FullName); 115var manifest = await ManifestUtils.GetManifest(keycloak.Resource);
Aspire.Hosting.Milvus (5)
MilvusBuilderExtensions.cs (5)
49var apiKeyParameter = apiKey?.Resource ?? 103builder.Resource.AddDatabase(name, databaseName); 104var milvusDatabaseResource = new MilvusDatabaseResource(name, databaseName, builder.Resource); 135containerName ??= $"{builder.Resource.Name}-attu"; 142.WithEnvironment(context => ConfigureAttuContainer(context, builder.Resource))
Aspire.Hosting.Milvus.Tests (18)
AddMilvusTests.cs (5)
86var connectionStringResource = milvus.Resource as IResourceWithConnectionString; 106var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(projectA.Resource, DistributedApplicationOperation.Run, TestServiceProvider.Instance); 117var containerConfig = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(container1.Resource, DistributedApplicationOperation.Run, TestServiceProvider.Instance); 133var serverManifest = await ManifestUtils.GetManifest(milvus.Resource); // using this method does not get any ExecutionContext.IsPublishMode changes 134var dbManifest = await ManifestUtils.GetManifest(db1.Resource);
MilvusFunctionalTests.cs (13)
32await app.WaitForTextAsync("Milvus Proxy successfully initialized and ready to serve", milvus.Resource.Name); 36hb.Configuration[$"ConnectionStrings:{db.Resource.Name}"] = await db.Resource.ConnectionStringExpression.GetValueAsync(default); 38hb.AddMilvusClient(db.Resource.Name); 81var password = milvus1.Resource.ApiKeyParameter.Value; 106await app.WaitForTextAsync("Milvus Proxy successfully initialized and ready to serve", milvus1.Resource.Name); 112hb.Configuration[$"ConnectionStrings:{db1.Resource.Name}"] = await db1.Resource.ConnectionStringExpression.GetValueAsync(default); 114hb.AddMilvusClient(db1.Resource.Name); 153await app.WaitForTextAsync("Milvus Proxy successfully initialized and ready to serve", milvus2.Resource.Name); 159hb.Configuration[$"ConnectionStrings:{db2.Resource.Name}"] = await db2.Resource.ConnectionStringExpression.GetValueAsync(default); 161hb.AddMilvusClient(db2.Resource.Name);
Aspire.Hosting.MongoDB (6)
MongoDBBuilderExtensions.cs (6)
56var passwordParameter = password?.Resource ?? ParameterResourceBuilderExtensions.CreateDefaultPasswordParameter(builder, $"{name}-password", special: false); 58var mongoDBContainer = new MongoDBServerResource(name, userName?.Resource, passwordParameter); 108builder.Resource.AddDatabase(name, databaseName); 109var mongoDBDatabase = new MongoDBDatabaseResource(name, databaseName, builder.Resource); 152containerName ??= $"{builder.Resource.Name}-mongoexpress"; 158.WithEnvironment(context => ConfigureMongoExpressContainer(context, builder.Resource))
Aspire.Hosting.MongoDB.Tests (27)
AddMongoDBTests.cs (10)
196var mongoManifest = await ManifestUtils.GetManifest(mongo.Resource); 197var dbManifest = await ManifestUtils.GetManifest(db.Resource); 262Assert.Equal("customers1", db1.Resource.DatabaseName); 263Assert.Equal("customers2", db2.Resource.DatabaseName); 265Assert.Equal("mongodb://admin:{mongo1-password.value}@{mongo1.bindings.tcp.host}:{mongo1.bindings.tcp.port}/customers1?authSource=admin&authMechanism=SCRAM-SHA-256", db1.Resource.ConnectionStringExpression.ValueExpression); 266Assert.Equal("mongodb://admin:{mongo1-password.value}@{mongo1.bindings.tcp.host}:{mongo1.bindings.tcp.port}/customers2?authSource=admin&authMechanism=SCRAM-SHA-256", db2.Resource.ConnectionStringExpression.ValueExpression); 280Assert.Equal("imports", db1.Resource.DatabaseName); 281Assert.Equal("imports", db2.Resource.DatabaseName); 283Assert.Equal("mongodb://admin:{mongo1-password.value}@{mongo1.bindings.tcp.host}:{mongo1.bindings.tcp.port}/imports?authSource=admin&authMechanism=SCRAM-SHA-256", db1.Resource.ConnectionStringExpression.ValueExpression); 284Assert.Equal("mongodb://admin:{mongo2-password.value}@{mongo2.bindings.tcp.host}:{mongo2.bindings.tcp.port}/imports?authSource=admin&authMechanism=SCRAM-SHA-256", db2.Resource.ConnectionStringExpression.ValueExpression);
MongoDbFunctionalTests.cs (17)
54await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running, cts.Token); 56await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting, cts.Token); 60await app.ResourceNotifications.WaitForResourceHealthyAsync(resource.Resource.Name, cts.Token); 62await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running, cts.Token); 87hb.Configuration[$"ConnectionStrings:{db.Resource.Name}"] = await db.Resource.ConnectionStringExpression.GetValueAsync(default); 89hb.AddMongoDBClient(db.Resource.Name); 123var password = mongodb1.Resource.PasswordParameter!.Value; 150hb.Configuration[$"ConnectionStrings:{db1.Resource.Name}"] = await db1.Resource.ConnectionStringExpression.GetValueAsync(default); 152hb.AddMongoDBClient(db1.Resource.Name); 196hb.Configuration[$"ConnectionStrings:{db2.Resource.Name}"] = await db2.Resource.ConnectionStringExpression.GetValueAsync(default); 198hb.AddMongoDBClient(db2.Resource.Name); 306hb.Configuration[$"ConnectionStrings:{db.Resource.Name}"] = await db.Resource.ConnectionStringExpression.GetValueAsync(default); 308hb.AddMongoDBClient(db.Resource.Name);
Aspire.Hosting.MySql (5)
MySqlBuilderExtensions.cs (5)
35var passwordParameter = password?.Resource ?? ParameterResourceBuilderExtensions.CreateDefaultPasswordParameter(builder, $"{name}-password"); 80builder.Resource.AddDatabase(name, databaseName); 81var mySqlDatabase = new MySqlDatabaseResource(name, databaseName, builder.Resource); 104containerName ??= $"{builder.Resource.Name}-phpmyadmin"; 145var configStoreFilename = aspireStore.GetFileNameWithContent($"{builder.Resource.Name}-config.user.inc.php", tempConfigFile);
Aspire.Hosting.MySql.Tests (41)
AddMySqlTests.cs (21)
23Assert.Equal("Aspire.Hosting.ApplicationModel.UserSecretsParameterDefault", mysql.Resource.PasswordParameter.Default?.GetType().FullName); 33Assert.NotEqual("Aspire.Hosting.ApplicationModel.UserSecretsParameterDefault", mysql.Resource.PasswordParameter.Default?.GetType().FullName); 160var mySqlManifest = await ManifestUtils.GetManifest(mysql.Resource); 161var dbManifest = await ManifestUtils.GetManifest(db.Resource); 199var serverManifest = await ManifestUtils.GetManifest(mysql.Resource); 251Assert.Equal($"{mysql.Resource.Name}:{mysql.Resource.PrimaryEndpoint.TargetPort}", config["PMA_HOST"]); 283string pattern1 = $@"\$cfg\['Servers'\]\[\$i\]\['host'\] = '{mysql1.Resource.Name}:{mysql1.Resource.PrimaryEndpoint.TargetPort}';"; 284string pattern2 = $@"\$cfg\['Servers'\]\[\$i\]\['host'\] = '{mysql2.Resource.Name}:{mysql2.Resource.PrimaryEndpoint.TargetPort}';"; 333Assert.Equal(["db1", "db2"], mysql1.Resource.Databases.Keys); 334Assert.Equal(["customers1", "customers2"], mysql1.Resource.Databases.Values); 336Assert.Equal("customers1", db1.Resource.DatabaseName); 337Assert.Equal("customers2", db2.Resource.DatabaseName); 339Assert.Equal("{mysql1.connectionString};Database=customers1", db1.Resource.ConnectionStringExpression.ValueExpression); 340Assert.Equal("{mysql1.connectionString};Database=customers2", db2.Resource.ConnectionStringExpression.ValueExpression); 354Assert.Equal("imports", db1.Resource.DatabaseName); 355Assert.Equal("imports", db2.Resource.DatabaseName); 357Assert.Equal("{mysql1.connectionString};Database=imports", db1.Resource.ConnectionStringExpression.ValueExpression); 358Assert.Equal("{mysql2.connectionString};Database=imports", db2.Resource.ConnectionStringExpression.ValueExpression);
MySqlFunctionalTests.cs (20)
50await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running, cts.Token); 52await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting, cts.Token); 56await app.ResourceNotifications.WaitForResourceHealthyAsync(resource.Resource.Name, cts.Token); 58await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running, cts.Token); 91[$"ConnectionStrings:{db.Resource.Name}"] = await db.Resource.ConnectionStringExpression.GetValueAsync(default) 94hb.AddMySqlDataSource(db.Resource.Name); 133var password = mysql1.Resource.PasswordParameter.Value; 165[$"ConnectionStrings:{db1.Resource.Name}"] = await db1.Resource.ConnectionStringExpression.GetValueAsync(default) 168hb.AddMySqlDataSource(db1.Resource.Name); 234[$"ConnectionStrings:{db2.Resource.Name}"] = await db2.Resource.ConnectionStringExpression.GetValueAsync(default) 237hb.AddMySqlDataSource(db2.Resource.Name); 335[$"ConnectionStrings:{db.Resource.Name}"] = await db.Resource.ConnectionStringExpression.GetValueAsync(default) 338hb.AddMySqlDataSource(db.Resource.Name); 405[$"ConnectionStrings:{db.Resource.Name}"] = await db.Resource.ConnectionStringExpression.GetValueAsync(default) 408hb.AddMySqlDbContext<TestDbContext>(db.Resource.Name);
Aspire.Hosting.Nats (2)
NatsBuilderExtensions.cs (2)
54var passwordParameter = password?.Resource ?? ParameterResourceBuilderExtensions.CreateDefaultPasswordParameter(builder, $"{name}-password", special: false); 56var nats = new NatsServerResource(name, userName?.Resource, passwordParameter);
Aspire.Hosting.Nats.Tests (33)
AddNatsTests.cs (12)
21Assert.Equal("Aspire.Hosting.ApplicationModel.UserSecretsParameterDefault", nats.Resource.PasswordParameter!.Default?.GetType().FullName); 31Assert.NotEqual("Aspire.Hosting.ApplicationModel.UserSecretsParameterDefault", nats.Resource.PasswordParameter!.Default?.GetType().FullName); 42Assert.NotNull(nats.Resource.PasswordParameter); 43Assert.False(string.IsNullOrEmpty(nats.Resource.PasswordParameter!.Value)); 68Assert.NotNull(nats.Resource.UserNameParameter); 69Assert.NotNull(nats.Resource.PasswordParameter); 71Assert.Equal("usr", nats.Resource.UserNameParameter!.Value); 72Assert.Equal("password", nats.Resource.PasswordParameter!.Value); 188var manifest = await ManifestUtils.GetManifest(nats.Resource); 225var manifest = await ManifestUtils.GetManifest(nats.Resource); 253manifest = await ManifestUtils.GetManifest(nats.Resource); 280manifest = await ManifestUtils.GetManifest(nats.Resource);
NatsFunctionalTests.cs (19)
37await app.WaitForTextAsync("Listening for client connections", nats.Resource.Name); 41hb.Configuration[$"ConnectionStrings:{nats.Resource.Name}"] = await nats.Resource.ConnectionStringExpression.GetValueAsync(default); 82await app.WaitForTextAsync("Listening for client connections", nats.Resource.Name); 86var connectionString = await nats.Resource.ConnectionStringExpression.GetValueAsync(default); 87hb.Configuration[$"ConnectionStrings:{nats.Resource.Name}"] = connectionString; 124await app.WaitForTextAsync("Listening for client connections", nats.Resource.Name); 128var connectionString = await nats.Resource.ConnectionStringExpression.GetValueAsync(default); 133hb.Configuration[$"ConnectionStrings:{nats.Resource.Name}"] = modifiedConnectionString; 186await app.WaitForTextAsync("Listening for client connections", nats1.Resource.Name); 191hb.Configuration[$"ConnectionStrings:{nats1.Resource.Name}"] = await nats1.Resource.ConnectionStringExpression.GetValueAsync(default); 234await app.WaitForTextAsync("Listening for client connections", nats2.Resource.Name); 239hb.Configuration[$"ConnectionStrings:{nats2.Resource.Name}"] = await nats2.Resource.ConnectionStringExpression.GetValueAsync(default); 344await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running, cts.Token); 346await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting, cts.Token); 350await app.ResourceNotifications.WaitForResourceHealthyAsync(resource.Resource.Name, cts.Token); 352await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running, cts.Token);
NatsPublicApiTests.cs (2)
179var action = () => new NatsServerResource(name, user?.Resource, password?.Resource);
Aspire.Hosting.NodeJs.Tests (2)
AddNodeAppTests.cs (2)
19var manifest = await ManifestUtils.GetManifest(nodeApp.Resource); 48manifest = await ManifestUtils.GetManifest(npmApp.Resource);
Aspire.Hosting.Oracle (3)
OracleDatabaseBuilderExtensions.cs (3)
37var passwordParameter = password?.Resource ?? ParameterResourceBuilderExtensions.CreateDefaultPasswordParameter(builder, $"{name}-password"); 86builder.Resource.AddDatabase(name, databaseName); 87var oracleDatabase = new OracleDatabaseResource(name, databaseName, builder.Resource);
Aspire.Hosting.Oracle.Tests (32)
AddOracleTests.cs (13)
22Assert.Equal("Aspire.Hosting.ApplicationModel.UserSecretsParameterDefault", orcl.Resource.PasswordParameter.Default?.GetType().FullName); 32Assert.NotEqual("Aspire.Hosting.ApplicationModel.UserSecretsParameterDefault", orcl.Resource.PasswordParameter.Default?.GetType().FullName); 200var serverManifest = await ManifestUtils.GetManifest(oracleServer.Resource); 201var dbManifest = await ManifestUtils.GetManifest(db.Resource); 239var serverManifest = await ManifestUtils.GetManifest(oracleServer.Resource); 295Assert.Equal("customers1", db1.Resource.DatabaseName); 296Assert.Equal("customers2", db2.Resource.DatabaseName); 298Assert.Equal("{oracle1.connectionString}/customers1", db1.Resource.ConnectionStringExpression.ValueExpression); 299Assert.Equal("{oracle1.connectionString}/customers2", db2.Resource.ConnectionStringExpression.ValueExpression); 313Assert.Equal("imports", db1.Resource.DatabaseName); 314Assert.Equal("imports", db2.Resource.DatabaseName); 316Assert.Equal("{oracle1.connectionString}/imports", db1.Resource.ConnectionStringExpression.ValueExpression); 317Assert.Equal("{oracle2.connectionString}/imports", db2.Resource.ConnectionStringExpression.ValueExpression);
OracleFunctionalTests.cs (17)
52hb.Configuration[$"ConnectionStrings:{db.Resource.Name}"] = await db.Resource.ConnectionStringExpression.GetValueAsync(default); 54hb.AddOracleDatabaseDbContext<TestDbContext>(db.Resource.Name); 99var password = oracle1.Resource.PasswordParameter.Value; 135hb.Configuration[$"ConnectionStrings:{db1.Resource.Name}"] = await db1.Resource.ConnectionStringExpression.GetValueAsync(default); 137hb.AddOracleDatabaseDbContext<TestDbContext>(db1.Resource.Name); 195hb.Configuration[$"ConnectionStrings:{db2.Resource.Name}"] = await db2.Resource.ConnectionStringExpression.GetValueAsync(default); 197hb.AddOracleDatabaseDbContext<TestDbContext>(db2.Resource.Name); 309hb.Configuration[$"ConnectionStrings:{db.Resource.Name}"] = await db.Resource.ConnectionStringExpression.GetValueAsync(default); 311hb.AddOracleDatabaseDbContext<TestDbContext>(db.Resource.Name); 372await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running, cts.Token); 374await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting, cts.Token); 378await app.ResourceNotifications.WaitForResourceHealthyAsync(resource.Resource.Name, cts.Token); 380await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running, cts.Token);
OraclePublicApiTests.cs (2)
176var parent = builder.Resource; 195var parent = builder.Resource;
Aspire.Hosting.Orleans (7)
OrleansServiceExtensions.cs (5)
55orleansServiceBuilder.ClusterId = clusterId.Resource; 83orleansServiceBuilder.ServiceId = serviceId.Resource; 131=> WithGrainStorage(orleansServiceBuilder, provider.Resource.Name, provider); 183=> WithStreaming(orleansServiceBuilder, provider.Resource.Name, provider); 299=> WithGrainDirectory(orleansServiceBuilder, provider.Resource.Name, provider);
ProviderConfiguration.cs (2)
21var serviceKey = resourceBuilder.Resource.Name; 22var resourceType = resourceBuilder.Resource.GetType().Name;
Aspire.Hosting.PostgreSQL (9)
PostgresBuilderExtensions.cs (9)
54var passwordParameter = password?.Resource ?? ParameterResourceBuilderExtensions.CreateDefaultPasswordParameter(builder, $"{name}-password"); 56var postgresServer = new PostgresServerResource(name, userName?.Resource, passwordParameter); 124builder.Resource.AddDatabase(name, databaseName); 125var postgresDatabase = new PostgresDatabaseResource(name, databaseName, builder.Resource); 152containerName ??= $"{builder.Resource.Name}-pgadmin"; 178var configJsonPath = aspireStore.GetFileNameWithContent($"{builder.Resource.Name}-servers.json", tempConfigFile); 204pgAdminContainerBuilder.WithRelationship(builder.Resource, "PgAdmin"); 279containerName ??= $"{builder.Resource.Name}-pgweb"; 291pgwebContainerBuilder.WithRelationship(builder.Resource, "PgWeb");
Aspire.Hosting.PostgreSQL.Tests (49)
AddPostgresTests.cs (24)
22Assert.Single(redis.Resource.Annotations, a => a is HealthCheckAnnotation hca && hca.Key == "postgres_check"); 32Assert.Equal("Aspire.Hosting.ApplicationModel.UserSecretsParameterDefault", pg.Resource.PasswordParameter.Default?.GetType().FullName); 42Assert.NotEqual("Aspire.Hosting.ApplicationModel.UserSecretsParameterDefault", pg.Resource.PasswordParameter.Default?.GetType().FullName); 158var connectionStringResource = postgres.Resource as IResourceWithConnectionString; 162Assert.Equal($"Host=localhost;Port=2000;Username=postgres;Password={postgres.Resource.PasswordParameter.Value}", connectionString); 249var serverManifest = await ManifestUtils.GetManifest(pgServer.Resource); 250var dbManifest = await ManifestUtils.GetManifest(db.Resource); 293var serverManifest = await ManifestUtils.GetManifest(pgServer.Resource); 319serverManifest = await ManifestUtils.GetManifest(pgServer.Resource); 345serverManifest = await ManifestUtils.GetManifest(pgServer.Resource); 483Assert.Equal(pg1.Resource.Name, servers.GetProperty("1").GetProperty("Name").GetString()); 490Assert.Equal($"echo '{pg1.Resource.PasswordParameter.Value}'", servers.GetProperty("1").GetProperty("PasswordExecCommand").GetString()); 493Assert.Equal(pg2.Resource.Name, servers.GetProperty("2").GetProperty("Name").GetString()); 500Assert.Equal($"echo '{pg2.Resource.PasswordParameter.Value}'", servers.GetProperty("2").GetProperty("PasswordExecCommand").GetString()); 561Assert.Equal(CreatePgWebBookmarkfileContent(db1.Resource), content); 565Assert.Equal(CreatePgWebBookmarkfileContent(db2.Resource), content); 611Assert.Equal("customers1", db1.Resource.DatabaseName); 612Assert.Equal("customers2", db2.Resource.DatabaseName); 614Assert.Equal("{postgres1.connectionString};Database=customers1", db1.Resource.ConnectionStringExpression.ValueExpression); 615Assert.Equal("{postgres1.connectionString};Database=customers2", db2.Resource.ConnectionStringExpression.ValueExpression); 629Assert.Equal("imports", db1.Resource.DatabaseName); 630Assert.Equal("imports", db2.Resource.DatabaseName); 632Assert.Equal("{postgres1.connectionString};Database=imports", db1.Resource.ConnectionStringExpression.ValueExpression); 633Assert.Equal("{postgres2.connectionString};Database=imports", db2.Resource.ConnectionStringExpression.ValueExpression);
PostgrePublicApiTests.cs (3)
225var postgresParentResource = new PostgresServerResource("postgresServer", userName, builder.Resource); 245var postgresParentResource = new PostgresServerResource("postgresServer", userName, builder.Resource); 278var action = () => new PostgresServerResource(name, userName, builder.Resource);
PostgresFunctionalTests.cs (22)
54await app.ResourceNotifications.WaitForResourceAsync(postgres.Resource.Name, KnownResourceStates.Running).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 57await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 63await app.ResourceNotifications.WaitForResourceHealthyAsync(postgres.Resource.Name).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 66await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 88await app.WaitForTextAsync("Listening at", resourceName: adminBuilder.Resource.Name); 90var client = app.CreateHttpClient(adminBuilder.Resource.Name, "http"); 121[$"ConnectionStrings:{db.Resource.Name}"] = await db.Resource.ConnectionStringExpression.GetValueAsync(default) 124hb.AddNpgsqlDataSource(db.Resource.Name); 165var client = app.CreateHttpClient(pgWebBuilder.Resource.Name, "http"); 167await app.ResourceNotifications.WaitForResourceHealthyAsync(pgWebBuilder.Resource.Name).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 233await app.ResourceNotifications.WaitForResourceHealthyAsync(db1.Resource.Name, cts.Token); 241[$"ConnectionStrings:{db1.Resource.Name}"] = await db1.Resource.ConnectionStringExpression.GetValueAsync(default) 244hb.AddNpgsqlDataSource(db1.Resource.Name); 295await app.ResourceNotifications.WaitForResourceHealthyAsync(db2.Resource.Name, cts.Token); 303[$"ConnectionStrings:{db2.Resource.Name}"] = await db2.Resource.ConnectionStringExpression.GetValueAsync(default) 306hb.AddNpgsqlDataSource(db2.Resource.Name); 395[$"ConnectionStrings:{db.Resource.Name}"] = await db.Resource.ConnectionStringExpression.GetValueAsync(default) 398hb.AddNpgsqlDataSource(db.Resource.Name);
Aspire.Hosting.Python.Tests (3)
AddPythonAppTests.cs (3)
34var manifest = await ManifestUtils.GetManifest(pyproj.Resource, manifestDirectory: projectDirectory); 66var manifest = await ManifestUtils.GetManifest(pyproj.Resource, manifestDirectory: projectDirectory); 124var environmentVariables = await pyproj.Resource.GetEnvironmentVariableValuesAsync(DistributedApplicationOperation.Run);
Aspire.Hosting.Qdrant (5)
QdrantBuilderExtensions.cs (5)
46var apiKeyParameter = apiKey?.Resource ?? 137context.EnvironmentVariables[$"ConnectionStrings__{qdrantResource.Resource.Name}"] = qdrantResource.Resource.ConnectionStringExpression; 140context.EnvironmentVariables[$"ConnectionStrings__{qdrantResource.Resource.Name}_{QdrantServerResource.HttpEndpointName}"] = qdrantResource.Resource.HttpConnectionStringExpression;
Aspire.Hosting.Qdrant.Tests (20)
AddQdrantTests.cs (7)
25Assert.Equal("Aspire.Hosting.ApplicationModel.UserSecretsParameterDefault", qd.Resource.ApiKeyParameter.Default?.GetType().FullName); 35Assert.NotEqual("Aspire.Hosting.ApplicationModel.UserSecretsParameterDefault", qd.Resource.ApiKeyParameter.Default?.GetType().FullName); 159var connectionStringResource = qdrant.Resource as IResourceWithConnectionString; 180var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(projectA.Resource, DistributedApplicationOperation.Run, TestServiceProvider.Instance); 192var containerConfig = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(container1.Resource, DistributedApplicationOperation.Run, TestServiceProvider.Instance); 207var serverManifest = await ManifestUtils.GetManifest(qdrant.Resource); // using this method does not get any ExecutionContext.IsPublishMode changes 245var serverManifest = await ManifestUtils.GetManifest(qdrant.Resource); // using this method does not get any ExecutionContext.IsPublishMode changes
QdrantFunctionalTests.cs (13)
46[$"ConnectionStrings:{qdrant.Resource.Name}"] = await qdrant.Resource.ConnectionStringExpression.GetValueAsync(default) 49hb.AddQdrantClient(qdrant.Resource.Name); 131[$"ConnectionStrings:{qdrant1.Resource.Name}"] = await qdrant1.Resource.ConnectionStringExpression.GetValueAsync(default) 134hb.AddQdrantClient(qdrant1.Resource.Name); 176[$"ConnectionStrings:{qdrant2.Resource.Name}"] = await qdrant2.Resource.ConnectionStringExpression.GetValueAsync(default) 179hb.AddQdrantClient(qdrant2.Resource.Name); 246await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running, cts.Token); 248await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting, cts.Token); 252await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, (re => re.Snapshot.HealthStatus == HealthStatus.Healthy), cts.Token); 254await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running, cts.Token);
Aspire.Hosting.RabbitMQ (5)
RabbitMQBuilderExtensions.cs (5)
39var passwordParameter = password?.Resource ?? ParameterResourceBuilderExtensions.CreateDefaultPasswordParameter(builder, $"{name}-password", special: false); 41var rabbitMq = new RabbitMQServerResource(name, userName?.Resource, passwordParameter); 155var containerAnnotations = builder.Resource.Annotations.OfType<ContainerImageAnnotation>().ToList(); 204throw new DistributedApplicationException($"Cannot configure the RabbitMQ resource '{builder.Resource.Name}' to enable the management plugin as it uses an unrecognized container image registry, name, or tag."); 258var nodeName = $"{builder.Resource.Name}@localhost";
Aspire.Hosting.RabbitMQ.Tests (20)
AddRabbitMQTests.cs (6)
21Assert.Equal("Aspire.Hosting.ApplicationModel.UserSecretsParameterDefault", rmq.Resource.PasswordParameter.Default?.GetType().FullName); 31Assert.NotEqual("Aspire.Hosting.ApplicationModel.UserSecretsParameterDefault", rmq.Resource.PasswordParameter.Default?.GetType().FullName); 203var manifest = await ManifestUtils.GetManifest(rabbit.Resource); 249var manifest = await ManifestUtils.GetManifest(rabbit.Resource); 273manifest = await ManifestUtils.GetManifest(rabbit.Resource); 297manifest = await ManifestUtils.GetManifest(rabbit.Resource);
RabbitMQFunctionalTests.cs (14)
44await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 46await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 50await app.ResourceNotifications.WaitForResourceHealthyAsync(resource.Resource.Name).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 52await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 72hb.Configuration[$"ConnectionStrings:{rabbitMQ.Resource.Name}"] = await rabbitMQ.Resource.ConnectionStringExpression.GetValueAsync(default); 73hb.AddRabbitMQClient(rabbitMQ.Resource.Name); 109var password = rabbitMQ1.Resource.PasswordParameter.Value; 133hb.Configuration[$"ConnectionStrings:{rabbitMQ1.Resource.Name}"] = await rabbitMQ1.Resource.ConnectionStringExpression.GetValueAsync(default); 135hb.AddRabbitMQClient(rabbitMQ1.Resource.Name); 190hb.Configuration[$"ConnectionStrings:{rabbitMQ2.Resource.Name}"] = await rabbitMQ2.Resource.ConnectionStringExpression.GetValueAsync(default); 192hb.AddRabbitMQClient(rabbitMQ2.Resource.Name);
Aspire.Hosting.Redis (5)
RedisBuilderExtensions.cs (5)
74var passwordParameter = password?.Resource ?? ParameterResourceBuilderExtensions.CreateDefaultPasswordParameter(builder, $"{name}-password", special: false); 158containerName ??= $"{builder.Resource.Name}-commander"; 201resourceBuilder.WithRelationship(builder.Resource, "RedisCommander"); 229containerName ??= $"{builder.Resource.Name}-insight"; 272resourceBuilder.WithRelationship(builder.Resource, "RedisInsight");
Aspire.Hosting.Redis.Tests (62)
AddRedisTests.cs (14)
20Assert.Single(redis.Resource.Annotations, a => a is HealthCheckAnnotation hca && hca.Key == "redis_check"); 136var manifest = await ManifestUtils.GetManifest(redis.Resource); 174var manifest = await ManifestUtils.GetManifest(redis.Resource); 209var manifest = await ManifestUtils.GetManifest(redis.Resource); 340Assert.Equal($"myredis1:{redis.Resource.Name}:6379:0:{redis.Resource.PasswordParameter?.Value}", config["REDIS_HOSTS"]); 361Assert.Equal($"myredis1:{redis.Resource.Name}:6379:0:{password}", config["REDIS_HOSTS"]); 385Assert.Equal($"myredis1:{redis1.Resource.Name}:6379:0:{redis1.Resource.PasswordParameter?.Value},myredis2:myredis2:6379:0:{redis2.Resource.PasswordParameter?.Value}", config["REDIS_HOSTS"]); 405var volumeAnnotation = redis.Resource.Annotations.OfType<ContainerMountAnnotation>().Single(); 430var volumeAnnotation = redis.Resource.Annotations.OfType<ContainerMountAnnotation>().Single(); 500var args = await ArgumentEvaluator.GetArgumentListAsync(builder.Resource); 511Assert.True(redis.Resource.TryGetAnnotationsOfType<CommandLineArgsCallbackAnnotation>(out var argsAnnotations));
RedisFunctionalTests.cs (48)
50await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running, cts.Token); 52await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting, cts.Token); 56await app.ResourceNotifications.WaitForResourceHealthyAsync(resource.Resource.Name, cts.Token); 58await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running, cts.Token); 79await app.WaitForTextAsync("Redis Connection", resourceName: commanderBuilder.Resource.Name); 81var client = app.CreateHttpClient(commanderBuilder.Resource.Name, "http"); 84var path = $"/apiv2/server/R:{redis.Resource.Name}:{endpoint.TargetPort}:0/info"; 105[$"ConnectionStrings:{redis.Resource.Name}"] = await redis.Resource.GetConnectionStringAsync() 108hb.AddRedisClient(redis.Resource.Name); 158builder1.Eventing.Subscribe<ResourceReadyEvent>(redisInsightBuilder.Resource, (evt, ct) => 170using var client1 = app1.CreateHttpClient($"{redis1.Resource.Name}-insight", "http"); 175Assert.Equal($"{redis1.Resource.Name}", firstRunDatabases[0].Name); 196builder2.Eventing.Subscribe<ResourceReadyEvent>(redisInsightBuilder.Resource, (evt, ct) => 207using var client2 = app2.CreateHttpClient($"{redisInsightBuilder.Resource.Name}", "http"); 212Assert.Equal($"{redis2.Resource.Name}", secondRunDatabases[0].Name); 223var latestEvent = await app2.ResourceNotifications.WaitForResourceHealthyAsync(redisInsightBuilder.Resource.Name, cts.Token); 247builder.Eventing.Subscribe<ResourceReadyEvent>(redisInsightBuilder.Resource, (evt, ct) => 259var client = app.CreateHttpClient(redisInsightBuilder.Resource.Name, "http"); 270Assert.Equal(redis1.Resource.Name, db.Name); 271Assert.Equal(redis1.Resource.Name, db.Host); 272Assert.Equal(redis1.Resource.PrimaryEndpoint.TargetPort, db.Port); 278Assert.Equal(redis2.Resource.Name, db.Name); 279Assert.Equal(redis2.Resource.Name, db.Host); 280Assert.Equal(redis2.Resource.PrimaryEndpoint.TargetPort, db.Port); 317[$"ConnectionStrings:{redis1.Resource.Name}"] = $"{await redis1.Resource.GetConnectionStringAsync()},allowAdmin=true" 320hb.AddRedisClient(redis1.Resource.Name); 353[$"ConnectionStrings:{redis2.Resource.Name}"] = await redis2.Resource.GetConnectionStringAsync() 356hb.AddRedisClient(redis2.Resource.Name); 400[$"ConnectionStrings:{redis1.Resource.Name}"] = $"{await redis1.Resource.GetConnectionStringAsync()},allowAdmin=true" 403hb.AddRedisClient(redis1.Resource.Name); 435[$"ConnectionStrings:{redis2.Resource.Name}"] = await redis2.Resource.GetConnectionStringAsync() 438hb.AddRedisClient(redis2.Resource.Name); 484[$"ConnectionStrings:{redis1.Resource.Name}"] = $"{await redis1.Resource.GetConnectionStringAsync()},allowAdmin=true" 487hb.AddRedisClient(redis1.Resource.Name); 514[$"ConnectionStrings:{redis2.Resource.Name}"] = await redis2.Resource.GetConnectionStringAsync() 517hb.AddRedisClient(redis2.Resource.Name); 579builder1.Eventing.Subscribe<ResourceReadyEvent>(redisInsightBuilder1.Resource, (evt, ct) => 589var httpClient = app.CreateHttpClient(redisInsightBuilder1.Resource.Name, "http"); 622builder2.Eventing.Subscribe<ResourceReadyEvent>(redisInsightBuilder2.Resource, (evt, ct) => 632var httpClient = app.CreateHttpClient(redisInsightBuilder2.Resource.Name, "http"); 734await app.ResourceNotifications.WaitForResourceHealthyAsync(redis.Resource.Name, cts.Token);
Aspire.Hosting.Seq.Tests (9)
AddSeqTests.cs (3)
93var manifest = await ManifestUtils.GetManifest(seq.Resource); 133var volumeAnnotation = seq.Resource.Annotations.OfType<ContainerMountAnnotation>().Single(); 158var volumeAnnotation = seq.Resource.Annotations.OfType<ContainerMountAnnotation>().Single();
SeqFunctionalTests.cs (6)
28await app.WaitForTextAsync("Seq listening on", seq.Resource.Name); 30var seqUrl = await seq.Resource.ConnectionStringExpression.GetValueAsync(default); 103await app.WaitForTextAsync("Seq listening on", seq1.Resource.Name); 107var seqUrl = await seq1.Resource.ConnectionStringExpression.GetValueAsync(default); 139await app.WaitForTextAsync("Seq listening on", seq2.Resource.Name); 143var seqUrl = await seq2.Resource.ConnectionStringExpression.GetValueAsync(default);
Aspire.Hosting.SqlServer (3)
SqlServerBuilderExtensions.cs (3)
32var passwordParameter = password?.Resource ?? ParameterResourceBuilderExtensions.CreateDefaultPasswordParameter(builder, $"{name}-password", minLower: 1, minUpper: 1, minNumeric: 1); 78builder.Resource.AddDatabase(name, databaseName); 79var sqlServerDatabase = new SqlServerDatabaseResource(name, databaseName, builder.Resource);
Aspire.Hosting.SqlServer.Tests (30)
AddSqlServerTests.cs (13)
22Assert.Equal("Aspire.Hosting.ApplicationModel.UserSecretsParameterDefault", sql.Resource.PasswordParameter.Default?.GetType().FullName); 32Assert.NotEqual("Aspire.Hosting.ApplicationModel.UserSecretsParameterDefault", sql.Resource.PasswordParameter.Default?.GetType().FullName); 130var serverManifest = await ManifestUtils.GetManifest(sqlServer.Resource); 131var dbManifest = await ManifestUtils.GetManifest(db.Resource); 171var serverManifest = await ManifestUtils.GetManifest(sqlServer.Resource); 228Assert.Equal("customers1", db1.Resource.DatabaseName); 229Assert.Equal("customers2", db2.Resource.DatabaseName); 231Assert.Equal("{sqlserver1.connectionString};Database=customers1", db1.Resource.ConnectionStringExpression.ValueExpression); 232Assert.Equal("{sqlserver1.connectionString};Database=customers2", db2.Resource.ConnectionStringExpression.ValueExpression); 246Assert.Equal("imports", db1.Resource.DatabaseName); 247Assert.Equal("imports", db2.Resource.DatabaseName); 249Assert.Equal("{sqlserver1.connectionString};Database=imports", db1.Resource.ConnectionStringExpression.ValueExpression); 250Assert.Equal("{sqlserver2.connectionString};Database=imports", db2.Resource.ConnectionStringExpression.ValueExpression);
SqlServerFunctionalTests.cs (17)
44await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running, cts.Token); 46await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting, cts.Token); 50await app.ResourceNotifications.WaitForResourceHealthyAsync(resource.Resource.Name, cts.Token); 52await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running, cts.Token); 79hb.Configuration[$"ConnectionStrings:{tempDb.Resource.Name}"] = await tempDb.Resource.ConnectionStringExpression.GetValueAsync(default); 81hb.AddSqlServerDbContext<TestDbContext>(tempDb.Resource.Name); 82hb.AddSqlServerClient(tempDb.Resource.Name); 137var password = sqlserver1.Resource.PasswordParameter.Value; 174await app1.ResourceNotifications.WaitForResourceHealthyAsync(masterdb1.Resource.Name, cts.Token); 182[$"ConnectionStrings:{masterdb1.Resource.Name}"] = await masterdb1.Resource.ConnectionStringExpression.GetValueAsync(default), 185hb1.AddSqlServerClient(masterdb1.Resource.Name); 257await app2.ResourceNotifications.WaitForResourceHealthyAsync(masterdb2.Resource.Name, cts.Token); 265[$"ConnectionStrings:{masterdb2.Resource.Name}"] = await masterdb2.Resource.ConnectionStringExpression.GetValueAsync(default), 268hb2.AddSqlServerClient(masterdb2.Resource.Name);
Aspire.Hosting.Testing.Tests (1)
tests\Aspire.Hosting.Tests\Utils\LoggerNotificationExtensions.cs (1)
36await rns.WaitForResourceHealthyAsync(resource.Resource.Name, cancellationToken);
Aspire.Hosting.Tests (215)
AddParameterTests.cs (3)
58parameter.Resource.Default = new TestParameterDefault("DefaultValue"); 246Assert.IsType<UserSecretsParameterDefault>(parameter1.Resource.Default); 250Assert.IsType<GenerateParameterDefault>(parameter2.Resource.Default);
Dashboard\DashboardResourceTests.cs (1)
105Assert.Same(container.Resource, dashboard);
Dcp\DcpExecutorTests.cs (5)
56.WithReplicas(2).Resource; 183}).Resource; 1163HasKnownCommandAnnotations(exe.Resource); 1164HasKnownCommandAnnotations(container.Resource); 1165HasKnownCommandAnnotations(project.Resource);
DistributedApplicationBuilderExtensionsTests.cs (4)
35Assert.Same(originalRedis.Resource, newRedisBuilder.Resource); 44Assert.Same(originalRedis.Resource, newRedisBuilder.Resource);
DistributedApplicationTests.cs (11)
362using var clientA = app.CreateHttpClient(testProgram.ServiceABuilder.Resource.Name, "http"); 363using var clientC = app.CreateHttpClient(testProgram.ServiceCBuilder.Resource.Name, "http"); 370var uri = app.GetEndpoint(testProgram.ServiceBBuilder.Resource.Name, "http"); 938var httpEndPoint = app.GetEndpoint(testProgram.ServiceABuilder.Resource.Name, endpointName: "http"); 956var httpsEndpoint = app.GetEndpoint(testProgram.ServiceABuilder.Resource.Name, endpointName: "https"); 1004using var clientA = app.CreateHttpClient(servicea.Resource.Name, "http"); 1012Assert.Equal($"localhost:1234,password={redis.Resource.PasswordParameter?.Value}", env.Value); 1019Assert.Equal($"localhost:6379,password={redisNoPort.Resource.PasswordParameter?.Value}", otherRedisEnv.Value); 1054using var clientA = app.CreateHttpClient(servicea.Resource.Name, "http"); 1066Assert.Equal($"localhost:1234,password={redis.Resource.PasswordParameter!.Value}", env.Value); 1073Assert.Equal($"localhost:6379,password={redisNoPort.Resource.PasswordParameter!.Value}", otherRedisEnv.Value);
Eventing\DistributedApplicationBuilderEventingTests.cs (1)
182builder.Eventing.Subscribe<BeforeResourceStartedEvent>(redis.Resource, (e, ct) =>
ExecutableResourceTests.cs (2)
39var args = await ArgumentEvaluator.GetArgumentListAsync(exe2.Resource).DefaultTimeout(); 51var manifest = await ManifestUtils.GetManifest(exe2.Resource).DefaultTimeout();
ExpressionResolverTests.cs (4)
98var csRef = new ConnectionStringReference(target.Resource, false); 110var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(source.Resource, DistributedApplicationOperation.Run, TestServiceProvider.Instance, "ContainerHostName").DefaultTimeout(); 142var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(test.Resource, DistributedApplicationOperation.Run, TestServiceProvider.Instance, "ContainerHostName").DefaultTimeout(); 161var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(test.Resource, DistributedApplicationOperation.Run, TestServiceProvider.Instance, "ContainerHostName").DefaultTimeout();
Health\ResourceHealthCheckServiceTests.cs (24)
74await app.ResourceNotifications.PublishUpdateAsync(resource.Resource, s => s with 82await app.ResourceNotifications.PublishUpdateAsync(resource.Resource, s => s with 117await app.ResourceNotifications.PublishUpdateAsync(resource.Resource, s => s with 125await app.ResourceNotifications.PublishUpdateAsync(resource.Resource, s => s with 153builder.Eventing.Subscribe<ResourceReadyEvent>(resource.Resource, (@event, ct) => 165await app.ResourceNotifications.PublishUpdateAsync(resource.Resource, s => s with 174Assert.Equal(resource.Resource, e1.Resource); 180await app.ResourceNotifications.PublishUpdateAsync(resource.Resource, s => s with 188await app.ResourceNotifications.PublishUpdateAsync(resource.Resource, s => s with 202Assert.Equal(resource.Resource, e2.Resource); 231await app.ResourceNotifications.PublishUpdateAsync(resource.Resource, s => s with 235await app.ResourceNotifications.WaitForResourceHealthyAsync(resource.Resource.Name, abortTokenSource.Token).DefaultTimeout(); 272await app.ResourceNotifications.PublishUpdateAsync(resource.Resource, s => s with 315await app.ResourceNotifications.PublishUpdateAsync(resource.Resource, s => s with 319await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running, abortTokenSource.Token).DefaultTimeout(); 382await app.ResourceNotifications.PublishUpdateAsync(resource.Resource, s => s with 420builder.Eventing.Subscribe<ResourceReadyEvent>(parent.Resource, (@event, ct) => 445await app.ResourceNotifications.PublishUpdateAsync(parent.Resource, s => s with 479builder.Eventing.Subscribe<ResourceReadyEvent>(parent.Resource, (@event, ct) => 491await app.ResourceNotifications.PublishUpdateAsync(parent.Resource, s => s with 524builder.Eventing.Subscribe<ResourceReadyEvent>(parent.Resource, (@event, ct) => 530var child = builder.AddResource(new ChildResource("child", parent.Resource)); 543await app.ResourceNotifications.PublishUpdateAsync(parent.Resource, s => s with 557Assert.Equal(parentReadyEvent.Resource, parent.Resource);
HealthCheckTests.cs (4)
88await rns.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running).DefaultTimeout(TestConstants.DefaultOrchestratorTestLongTimeout); 90await rns.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting).DefaultTimeout(TestConstants.DefaultOrchestratorTestLongTimeout); 94await rns.WaitForResourceHealthyAsync(resource.Resource.Name).DefaultTimeout(TestConstants.DefaultOrchestratorTestLongTimeout); 96await rns.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running).DefaultTimeout(TestConstants.DefaultOrchestratorTestLongTimeout);
ManifestGenerationTests.cs (3)
100var redisManifest = await ManifestUtils.GetManifest(redis.Resource).DefaultTimeout(); 486param.Resource.Default = new GenerateParameterDefault() 524var manifest = await ManifestUtils.GetManifest(param.Resource).DefaultTimeout();
Orchestrator\ApplicationOrchestratorTests.cs (24)
25var childResource = builder.AddResource(new CustomChildResource("child", parentResource.Resource)); 42if (item.Resource == parentResource.Resource) 46else if (item.Resource == childResource.Resource) 58await events.PublishAsync(new OnResourceStartingContext(CancellationToken.None, KnownResourceTypes.Container, parentResource.Resource, parentResource.Resource.Name)); 94if (item.Resource == parent.Resource) 98else if (item.Resource == child.Resource) 103else if (item.Resource == nestedChild.Resource) 107else if (item.Resource == child2.Resource) 119await events.PublishAsync(new OnResourceStartingContext(CancellationToken.None, KnownResourceTypes.Container, parent.Resource, parent.Resource.Name)); 159if (item.Resource == firstParent.Resource) 163else if (item.Resource == secondParent.Resource) 167else if (item.Resource == child.Resource) 179await events.PublishAsync(new OnResourceStartingContext(CancellationToken.None, KnownResourceTypes.Container, firstParent.Resource, firstParent.Resource.Name)); 180await events.PublishAsync(new OnResourceStartingContext(CancellationToken.None, KnownResourceTypes.Container, secondParent.Resource, secondParent.Resource.Name)); 211if (item.Resource == projectA.Resource) 215else if (item.Resource == projectB.Resource) 227await events.PublishAsync(new OnResourceStartingContext(CancellationToken.None, KnownResourceTypes.Container, projectA.Resource, projectA.Resource.Name)); 228await events.PublishAsync(new OnResourceStartingContext(CancellationToken.None, KnownResourceTypes.Container, projectB.Resource, projectB.Resource.Name));
Orchestrator\RelationshipEvaluatorTests.cs (14)
18var childResource = builder.AddResource(new CustomChildResource("child", parentResource.Resource)); 19var grandChildResource = builder.AddResource(new CustomChildResource("grandchild", childResource.Resource)); 20var greatGrandChildResource = builder.AddResource(new CustomChildResource("greatgrandchild", grandChildResource.Resource)); 34Assert.Collection(parentChildLookup[parentResource.Resource], 35x => Assert.Equal(childResource.Resource, x), 36x => Assert.Equal(childWithAnnotationsResource.Resource, x)); 38Assert.Single(parentChildLookup[childResource.Resource], grandChildResource.Resource); 39Assert.Single(parentChildLookup[grandChildResource.Resource], greatGrandChildResource.Resource); 41Assert.Empty(parentChildLookup[greatGrandChildResource.Resource]); 43Assert.Single(parentChildLookup[childWithAnnotationsResource.Resource], grandChildWithAnnotationsResource.Resource); 45Assert.Empty(parentChildLookup[grandChildWithAnnotationsResource.Resource]);
ProjectResourceTests.cs (1)
587var args = await ArgumentEvaluator.GetArgumentListAsync(project.Resource).DefaultTimeout();
PublishAsConnectionStringTests.cs (2)
19Assert.True(redis.Resource.TryGetLastAnnotation<ManifestPublishingCallbackAnnotation>(out _)); 21var manifest = await ManifestUtils.GetManifest(redis.Resource).DefaultTimeout();
PublishAsDockerfileTests.cs (3)
29var manifest = await ManifestUtils.GetManifest(frontend.Resource, manifestDirectory: path).DefaultTimeout(); 173var manifest = await ManifestUtils.GetManifest(frontend.Resource, manifestDirectory: path).DefaultTimeout(); 232var manifest = await ManifestUtils.GetManifest(project.Resource, manifestDirectory: path).DefaultTimeout();
ResourceCommandAnnotationTests.cs (2)
45resourceBuilder.Resource.AddLifeCycleCommands(); 47var startCommand = resourceBuilder.Resource.Annotations.OfType<ResourceCommandAnnotation>().Single(a => a.Name == commandName);
ResourceExtensionsTests.cs (32)
18Assert.False(parent.Resource.HasAnnotationOfType<DummyAnnotation>()); 19Assert.False(parent.Resource.TryGetAnnotationsOfType<DummyAnnotation>(out var annotations)); 30Assert.False(parent.Resource.HasAnnotationOfType<DummyAnnotation>()); 31Assert.False(parent.Resource.TryGetAnnotationsOfType<DummyAnnotation>(out var annotations)); 42Assert.True(parent.Resource.HasAnnotationOfType<DummyAnnotation>()); 43Assert.True(parent.Resource.TryGetAnnotationsOfType<DummyAnnotation>(out var annotations)); 54Assert.True(parent.Resource.HasAnnotationIncludingAncestorsOfType<DummyAnnotation>()); 55Assert.True(parent.Resource.TryGetAnnotationsIncludingAncestorsOfType<DummyAnnotation>(out var annotations)); 65Assert.False(parent.Resource.HasAnnotationIncludingAncestorsOfType<DummyAnnotation>()); 66Assert.False(parent.Resource.TryGetAnnotationsIncludingAncestorsOfType<DummyAnnotation>(out var annotations)); 77Assert.False(parent.Resource.HasAnnotationIncludingAncestorsOfType<DummyAnnotation>()); 78Assert.False(parent.Resource.TryGetAnnotationsIncludingAncestorsOfType<DummyAnnotation>(out var annotations)); 89var child = builder.AddResource(new ChildResource("child", parent.Resource)) 92Assert.False(parent.Resource.HasAnnotationIncludingAncestorsOfType<DummyAnnotation>()); 93Assert.False(child.Resource.TryGetAnnotationsIncludingAncestorsOfType<DummyAnnotation>(out var annotations)); 104var child = builder.AddResource(new ChildResource("child", parent.Resource)); 106Assert.True(parent.Resource.HasAnnotationIncludingAncestorsOfType<DummyAnnotation>()); 107Assert.True(child.Resource.TryGetAnnotationsIncludingAncestorsOfType<DummyAnnotation>(out var annotations)); 118var child = builder.AddResource(new ChildResource("child", parent.Resource)) 121Assert.True(parent.Resource.HasAnnotationIncludingAncestorsOfType<DummyAnnotation>()); 122Assert.True(child.Resource.TryGetAnnotationsIncludingAncestorsOfType<DummyAnnotation>(out var annotations)); 133var child = builder.AddResource(new ChildResource("child", parent: parent.Resource)) 136var grandchild = builder.AddResource(new ChildResource("grandchild", parent: child.Resource)) 139Assert.True(parent.Resource.HasAnnotationIncludingAncestorsOfType<DummyAnnotation>()); 140Assert.True(grandchild.Resource.TryGetAnnotationsIncludingAncestorsOfType<DummyAnnotation>(out var annotations)); 150Assert.True(container.Resource.TryGetContainerImageName(out var imageName)); 160Assert.True(container.Resource.TryGetContainerImageName(out var imageName)); 176var env = await container.Resource.GetEnvironmentVariableValuesAsync().DefaultTimeout(); 209var env = await container.Resource.GetEnvironmentVariableValuesAsync().DefaultTimeout(); 242var env = await container.Resource.GetEnvironmentVariableValuesAsync(DistributedApplicationOperation.Publish).DefaultTimeout(); 274.Resource.GetArgumentValuesAsync().DefaultTimeout(); 286.Resource.GetArgumentValuesAsync().DefaultTimeout();
ResourceNotificationTests.cs (1)
29var annotation = custom.Resource.Annotations.OfType<ResourceSnapshotAnnotation>().SingleOrDefault();
SlimTestProgramTests.cs (5)
36using var clientA = app.CreateHttpClientWithResilience(testProgram.ServiceABuilder.Resource.Name, "http"); 39using var clientB = app.CreateHttpClientWithResilience(testProgram.ServiceBBuilder.Resource.Name, "http"); 42using var clientC = app.CreateHttpClientWithResilience(testProgram.ServiceCBuilder.Resource.Name, "http"); 59var endpoint = projectBuilders.Resource.Annotations.OfType<EndpointAnnotation>().Single(); 78var endpoint = projectBuilders.Resource.Annotations.OfType<EndpointAnnotation>().Single();
TestProgramFixture.cs (3)
69using var clientA = App.CreateHttpClientWithResilience(TestProgram.ServiceABuilder.Resource.Name, "http"); 73using var clientB = App.CreateHttpClientWithResilience(TestProgram.ServiceBBuilder.Resource.Name, "http"); 77using var clientC = App.CreateHttpClientWithResilience(TestProgram.ServiceCBuilder.Resource.Name, "http");
Utils\LoggerNotificationExtensions.cs (1)
36await rns.WaitForResourceHealthyAsync(resource.Resource.Name, cancellationToken);
Utils\VolumeNameGeneratorTests.cs (1)
23Assert.Equal($"{volumePrefix}-{resource.Resource.Name}-data", volumeName);
Utils\WithAnnotationTests.cs (4)
18var dummyAnnotations = redis.Resource.Annotations.OfType<DummyAnnotation>(); 32var dummyAnnotations = redis.Resource.Annotations.OfType<DummyAnnotation>(); 44var firstAnnotation = redis.Resource.Annotations.OfType<DummyAnnotation>().Single(); 48var secondAnnotation = redis.Resource.Annotations.OfType<DummyAnnotation>().Single();
WaitForTests.cs (16)
33await app.ResourceNotifications.WaitForResourceAsync(throwingResource.Resource.Name, KnownResourceStates.FailedToStart, abortCts.Token); 34await app.ResourceNotifications.WaitForResourceAsync(dependingContainerResource.Resource.Name, KnownResourceStates.FailedToStart, abortCts.Token); 35await app.ResourceNotifications.WaitForResourceAsync(dependingExecutableResource.Resource.Name, KnownResourceStates.FailedToStart, abortCts.Token); 139await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.Waiting, waitingStateCts.Token); 245dependency.Resource.Name, 269dependency.Resource.Name, 299await app.ResourceNotifications.WaitForResourceHealthyAsync(dependency.Resource.Name) 454await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.Waiting, waitingStateCts.Token); 469await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.Running, runningStateCts.Token); 610await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.Waiting, waitingStateCts.Token); 624await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.FailedToStart, runningStateCts.Token); 714await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.Waiting, waitingStateCts.Token); 722await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.Waiting, waitingStateCts.Token); 730await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.Running, waitingStateCts.Token); 763await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.Waiting, waitingStateCts.Token); 771await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.Running, waitingStateCts.Token);
WithEndpointTests.cs (18)
29var endpoint = projectA.Resource.Annotations.OfType<EndpointAnnotation>() 46var endpoint = projectA.Resource.Annotations.OfType<EndpointAnnotation>() 81var endpoint = projectA.Resource.Annotations.OfType<EndpointAnnotation>() 119Assert.False(projectA.Resource.TryGetAnnotationsOfType<EndpointAnnotation>(out var annotations)); 136Assert.True(projectA.Resource.TryGetAnnotationsOfType<EndpointAnnotation>(out _)); 153Assert.True(projectA.Resource.TryGetAnnotationsOfType<EndpointAnnotation>(out _)); 272var manifest = await ManifestUtils.GetManifest(container.Resource).DefaultTimeout(); 300var manifest = await ManifestUtils.GetManifest(container.Resource).DefaultTimeout(); 327var manifest = await ManifestUtils.GetManifest(container.Resource).DefaultTimeout(); 354var manifest = await ManifestUtils.GetManifest(container.Resource).DefaultTimeout(); 381var manifest = await ManifestUtils.GetManifest(container.Resource).DefaultTimeout(); 408var manifest = await ManifestUtils.GetManifest(container.Resource).DefaultTimeout(); 435var manifest = await ManifestUtils.GetManifest(container.Resource).DefaultTimeout(); 466var manifest = await ManifestUtils.GetManifest(project.Resource).DefaultTimeout(); 536var manifest = await ManifestUtils.GetManifest(project.Resource).DefaultTimeout(); 563var manifests = await ManifestUtils.GetManifests([container0.Resource, container1.Resource]).DefaultTimeout(); 608var endpoint = projectA.Resource.Annotations.OfType<EndpointAnnotation>()
WithEnvironmentTests.cs (15)
31container.Resource, 53var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(projectB.Resource, DistributedApplicationOperation.Run, TestServiceProvider.Instance).DefaultTimeout(); 66var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(project.Resource, DistributedApplicationOperation.Run, TestServiceProvider.Instance).DefaultTimeout(); 82var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(project.Resource, DistributedApplicationOperation.Run, TestServiceProvider.Instance).DefaultTimeout(); 98var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(projectA.Resource, DistributedApplicationOperation.Run, TestServiceProvider.Instance).DefaultTimeout(); 115var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(projectA.Resource, DistributedApplicationOperation.Run, TestServiceProvider.Instance).DefaultTimeout(); 130var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(projectA.Resource, 147projectA.Resource, 170var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(projectA.Resource, DistributedApplicationOperation.Run, TestServiceProvider.Instance).DefaultTimeout(); 195.WithEnvironment("HOST", $"{test.Resource};name=1"); 197var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(containerB.Resource).DefaultTimeout(); 198var manifestConfig = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(containerB.Resource, DistributedApplicationOperation.Publish).DefaultTimeout(); 230var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(containerB.Resource).DefaultTimeout(); 254var runConfig = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(targetBuilder.Resource, DistributedApplicationOperation.Run).DefaultTimeout(); 260var publishConfig = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(targetBuilder.Resource, DistributedApplicationOperation.Publish).DefaultTimeout();
WithReferenceTests.cs (11)
29var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(projectB.Resource, DistributedApplicationOperation.Run, TestServiceProvider.Instance).DefaultTimeout(); 52var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(projectB.Resource, DistributedApplicationOperation.Run, TestServiceProvider.Instance).DefaultTimeout(); 77var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(projectB.Resource, DistributedApplicationOperation.Run, TestServiceProvider.Instance).DefaultTimeout(); 100var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(projectB.Resource, DistributedApplicationOperation.Run, TestServiceProvider.Instance).DefaultTimeout(); 121var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(projectB.Resource, DistributedApplicationOperation.Run, TestServiceProvider.Instance).DefaultTimeout(); 172var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(projectB.Resource, DistributedApplicationOperation.Run, TestServiceProvider.Instance); 191var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(projectB.Resource, DistributedApplicationOperation.Run, TestServiceProvider.Instance).DefaultTimeout(); 207var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(projectB.Resource, DistributedApplicationOperation.Publish).DefaultTimeout(); 223var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(projectB.Resource, DistributedApplicationOperation.Publish).DefaultTimeout(); 266var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(projectB.Resource, DistributedApplicationOperation.Run, TestServiceProvider.Instance).DefaultTimeout(); 320var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(projectA.Resource, DistributedApplicationOperation.Run, TestServiceProvider.Instance).DefaultTimeout();
Aspire.Hosting.Valkey (1)
ValkeyBuilderExtensions.cs (1)
118var passwordParameter = password?.Resource ?? ParameterResourceBuilderExtensions.CreateDefaultPasswordParameter(builder, $"{name}-password", special: false);
Aspire.Hosting.Valkey.Tests (22)
AddValkeyTests.cs (9)
128var manifest = await ManifestUtils.GetManifest(valkey.Resource); 166var manifest = await ManifestUtils.GetManifest(valkey.Resource); 211var volumeAnnotation = valkey.Resource.Annotations.OfType<ContainerMountAnnotation>().Single(); 236var volumeAnnotation = valkey.Resource.Annotations.OfType<ContainerMountAnnotation>().Single(); 251Assert.True(valkey.Resource.TryGetAnnotationsOfType<CommandLineArgsCallbackAnnotation>(out var argsCallbacks)); 275Assert.True(valkey.Resource.TryGetAnnotationsOfType<CommandLineArgsCallbackAnnotation>(out var argsCallbacks)); 300Assert.True(valkey.Resource.TryGetAnnotationsOfType<CommandLineArgsCallbackAnnotation>(out var argsCallbacks)); 317Assert.True(valkey.Resource.TryGetAnnotationsOfType<CommandLineArgsCallbackAnnotation>(out var argsAnnotations)); 346var args = await ArgumentEvaluator.GetArgumentListAsync(builder.Resource);
ValkeyFunctionalTests.cs (13)
36[$"ConnectionStrings:{valkey.Resource.Name}"] = await valkey.Resource.ConnectionStringExpression.GetValueAsync(default) 39hb.AddRedisClient(valkey.Resource.Name); 98[$"ConnectionStrings:{valkey1.Resource.Name}"] = $"{await valkey1.Resource.ConnectionStringExpression.GetValueAsync(default)},allowAdmin=true" 101hb.AddRedisClient(valkey1.Resource.Name); 149[$"ConnectionStrings:{valkey2.Resource.Name}"] = await valkey2.Resource.ConnectionStringExpression.GetValueAsync(default) 152hb.AddRedisClient(valkey2.Resource.Name); 220await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running, cts.Token); 222await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting, cts.Token); 226await app.ResourceNotifications.WaitForResourceHealthyAsync(resource.Resource.Name, cts.Token); 228await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running, cts.Token);
Aspire.Playground.Tests (1)
tests\Aspire.Hosting.Tests\Utils\LoggerNotificationExtensions.cs (1)
36await rns.WaitForResourceHealthyAsync(resource.Resource.Name, cancellationToken);
BicepSample.AppHost (1)
Program.cs (1)
25temp00 = bicep0.Resource;
KafkaBasic.AppHost (2)
Program.cs (2)
11.WithArgs(kafka.Resource.Name); 15.WithArgs(kafka.Resource.Name);
Mongo.AppHost (2)
Program.cs (2)
14builder.Eventing.Subscribe<ResourceReadyEvent>(db.Resource, async (@event, ct) => 20var cs = await db.Resource.ConnectionStringExpression.GetValueAsync(ct);
Stress.AppHost (5)
Program.cs (2)
19IResource parent = rb.Resource; 25parent = nestedRb.Resource;
ResourceBuilderExtensions.cs (3)
43var endpoints = builder.Resource.GetEndpoints(); 45?? throw new DistributedApplicationException($"Could not create HTTP command for resource '{builder.Resource.Name}' as no endpoint named '{endpointName}' was found."); 58return new ExecuteCommandResult { Success = false, ErrorMessage = $"The endpoint named '{endpointName}' on resource '{builder.Resource.Name}' does not have the expected scheme of '{expectedScheme}'." };