1649 references to Resource
Aspire.Hosting (105)
ApplicationModel\ReferenceExpression.cs (2)
151_valueProviders.Add(valueProvider.Resource); 152_manifestExpressions.Add(valueProvider.Resource.ValueExpression);
ApplicationModel\ResourceExtensions.cs (4)
304(DistributedApplicationOperation.Run, IResourceBuilder<IResource> rb) when rb.Resource is IValueProvider provider => await GetValue(key: null, provider, logger, resource.IsContainer(), containerHostName, cancellationToken).ConfigureAwait(false), 306(DistributedApplicationOperation.Publish, IResourceBuilder<IResource> rb) when rb.Resource is IManifestExpressionProvider provider => new(provider.ValueExpression, false), 363(DistributedApplicationOperation.Run, IResourceBuilder<IResource> rb) when rb.Resource is IValueProvider provider => await GetValue(key, provider, logger, resource.IsContainer(), containerHostName, cancellationToken).ConfigureAwait(false), 365(DistributedApplicationOperation.Publish, IResourceBuilder<IResource> rb) when rb.Resource is IManifestExpressionProvider provider => new(provider.ValueExpression, false),
ContainerResourceBuilderExtensions.cs (15)
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) 423throw new InvalidOperationException($"The resource '{builder.Resource.Name}' does not have a container image specified. Use WithImage to specify the container image and tag."); 435return builder.WithManifestPublishingCallback(context => context.WriteContainerAsync(builder.Resource)); 594var annotation = builder.Resource.Annotations.OfType<DockerfileBuildAnnotation>().SingleOrDefault(); 645if (value.Resource.Secret) 650return builder.WithBuildArg(name, value.Resource); 692var annotation = builder.Resource.Annotations.OfType<DockerfileBuildAnnotation>().SingleOrDefault(); 699annotation.BuildSecrets[name] = value.Resource; 761builder.Resource.Annotations.Add(annotation); 834builder.Resource.Annotations.Add(annotation);
ExecutableResourceBuilderExtensions.cs (4)
131builder.ApplicationBuilder.Resources.Remove(builder.Resource); 133var container = new ExecutableContainerResource(builder.Resource); 136cb.WithImage(builder.Resource.Name); 137cb.WithDockerfile(contextPath: builder.Resource.WorkingDirectory);
OtlpConfigurationExtensions.cs (1)
111AddOtlpEnvironment(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; 547builder.Resource.DefaultHttpsEndpoint = e; 651builder.Resource.Annotations.Add(new EndpointEnvironmentInjectionFilterAnnotation(filter)); 685builder.ApplicationBuilder.Resources.Remove(builder.Resource); 687var container = new ProjectContainerResource(builder.Resource); 690cb.WithImage(builder.Resource.Name); 692var projectFilePath = builder.Resource.GetProjectMetadata().ProjectPath; 746foreach (var e in builder.Resource.GetEndpoints().Where(builder.Resource.ShouldInjectEndpointEnvironment)) 763var targetHost = e.EndpointAnnotation.IsProxied && builder.Resource.SupportsProxy() ? "localhost" : e.EndpointAnnotation.TargetHost; 798foreach (var e in builder.Resource.GetEndpoints().Where(builder.Resource.ShouldInjectEndpointEnvironment)) 801if (e.EndpointAnnotation.UriScheme == scheme && e.EndpointAnnotation != builder.Resource.DefaultHttpsEndpoint) 827if (builder.Resource.HasKestrelEndpoints) 829foreach (var e in builder.Resource.GetEndpoints().Where(builder.Resource.ShouldInjectEndpointEnvironment)) 832if (e.EndpointAnnotation == builder.Resource.DefaultHttpsEndpoint) 840builder.Resource.KestrelEndpointAnnotationHosts.TryGetValue(e.EndpointAnnotation, out var kestrelHost) ? kestrelHost : "*";
ResourceBuilderExtensions.cs (57)
171builder.WithReferenceRelationship(parameter.Resource); 175context.EnvironmentVariables[name] = parameter.Resource; 197builder.WithReferenceRelationship(resource.Resource); 201context.EnvironmentVariables[envVarName] = new ConnectionStringReference(resource.Resource, optional: false); 381var resource = source.Resource; 408ApplyEndpoints(builder, source.Resource); 466var endpointReferenceAnnotation = builder.Resource.Annotations 530var endpoint = builder.Resource.Annotations 544builder.Resource.Annotations.Add(endpoint); 584if (builder.Resource.Annotations.OfType<EndpointAnnotation>().Any(sb => string.Equals(sb.Name, annotation.Name, StringComparisons.EndpointAnnotationName))) 590if (env is not null && builder.Resource is IResourceWithEndpoints resourceWithEndpoints and IResourceWithEnvironment) 675if (!builder.Resource.TryGetAnnotationsOfType<EndpointAnnotation>(out var endpoints)) 703return builder.Resource.GetEndpoint(name); 920context.Logger.LogWarning("Could not execute callback to customize endpoint URL as no endpoint with name '{EndpointName}' could be found on resource '{ResourceName}'.", endpointName, builder.Resource.Name); 967context.Logger.LogWarning("Could not execute callback to add an endpoint URL as no endpoint with name '{EndpointName}' could be found on resource '{ResourceName}'.", endpointName, builder.Resource.Name); 1066if (builder.Resource as IResource == dependency.Resource) 1068throw new DistributedApplicationException($"The '{builder.Resource.Name}' resource cannot wait for itself."); 1071if (builder.Resource is IResourceWithParent resourceWithParent && resourceWithParent.Parent == dependency.Resource) 1073throw new DistributedApplicationException($"The '{builder.Resource.Name}' resource cannot wait for its parent '{dependency.Resource.Name}'."); 1076if (dependency.Resource is IResourceWithParent dependencyResourceWithParent) 1088if (dependency.Resource is ConnectionStringResource cs) 1099builder.WithRelationship(dependency.Resource, KnownRelationshipTypes.WaitFor); 1102return builder.WithAnnotation(new WaitAnnotation(dependency.Resource, WaitType.WaitUntilHealthy) { WaitBehavior = waitBehavior }); 1162if (builder.Resource as IResource == dependency.Resource) 1164throw new DistributedApplicationException($"The '{builder.Resource.Name}' resource cannot wait for itself."); 1167if (builder.Resource is IResourceWithParent resourceWithParent && resourceWithParent.Parent == dependency.Resource) 1169throw new DistributedApplicationException($"The '{builder.Resource.Name}' resource cannot wait for its parent '{dependency.Resource.Name}'."); 1172builder.WithRelationship(dependency.Resource, KnownRelationshipTypes.WaitFor); 1174return builder.WithAnnotation(new WaitAnnotation(dependency.Resource, WaitType.WaitForCompletion, exitCode)); 1218if (builder.Resource.TryGetAnnotationsOfType<HealthCheckAnnotation>(out var annotations) && annotations.Any(a => a.Key == key)) 1220throw new DistributedApplicationException($"Resource '{builder.Resource.Name}' already has a health check with key '{key}'."); 1302?? throw new DistributedApplicationException($"Could not create HTTP health check for resource '{builder.Resource.Name}' as the endpoint selector returned null."); 1306throw new DistributedApplicationException($"Could not create HTTP health check for resource '{builder.Resource.Name}' as the endpoint with name '{endpoint.EndpointName}' and scheme '{endpoint.Scheme}' is not an HTTP endpoint."); 1318throw new DistributedApplicationException($"The endpoint '{endpointName}' does not exist on the resource '{builder.Resource.Name}'."); 1325builder.ApplicationBuilder.Eventing.Subscribe<BeforeResourceStartedEvent>(builder.Resource, (@event, ct) => 1332var healthCheckKey = $"{builder.Resource.Name}_{endpointName}_{path}_{statusCode}_check"; 1422var existingAnnotation = builder.Resource.Annotations.OfType<ResourceCommandAnnotation>().SingleOrDefault(a => a.Name == name); 1425builder.Resource.Annotations.Remove(existingAnnotation); 1487var existingAnnotation = builder.Resource.Annotations.OfType<ResourceCommandAnnotation>().SingleOrDefault(a => a.Name == name); 1490builder.Resource.Annotations.Remove(existingAnnotation); 1654?? throw new DistributedApplicationException($"Could not create HTTP command for resource '{builder.Resource.Name}' as the endpoint selector returned null."); 1658throw new DistributedApplicationException($"Could not create HTTP command for resource '{builder.Resource.Name}' as the endpoint with name '{endpoint.EndpointName}' and scheme '{endpoint.Scheme}' is not an HTTP endpoint."); 1756var endpoints = builder.Resource.GetEndpoints(); 1766throw new DistributedApplicationException($"Could not create {errorDisplayNoun} for resource '{builder.Resource.Name}' as the endpoint with name '{matchingEndpoint.EndpointName}' and scheme '{matchingEndpoint.Scheme}' is not an HTTP endpoint."); 1774throw new DistributedApplicationException($"Could not create {errorDisplayNoun} for resource '{builder.Resource.Name}' as no endpoint was found matching one of the specified names: {endpointNamesString}"); 1782var endpoints = builder.Resource.GetEndpoints(); 1794throw new DistributedApplicationException($"Could not create HTTP command for resource '{builder.Resource.Name}' as it has no HTTP endpoints."); 1891AddReference(resourceBuilder.Resource); 1922return builder.WithAnnotation(new ResourceRelationshipAnnotation(resourceBuilder.Resource, KnownRelationshipTypes.Reference)); 1952return builder.WithParentRelationship(parent.Resource); 2001builder.WithAnnotation(new ComputeEnvironmentAnnotation(computeEnvironmentResource.Resource));
Utils\ImageNameGenerator.cs (1)
16return builder.Resource.Name.ToLowerInvariant();
VolumeNameGenerator.cs (1)
33var resourceName = builder.Resource.Name;
Aspire.Hosting.Azure (27)
AzureBicepResourceExtensions.cs (15)
55return new BicepOutputReference(name, builder.Resource); 66return new BicepSecretOutputReference(name, builder.Resource); 133builder.Resource.Parameters[name] = null; 149builder.Resource.Parameters[name] = value; 165builder.Resource.Parameters[name] = value; 181builder.Resource.Parameters[name] = value; 197builder.Resource.Parameters[name] = valueCallback; 212return builder.WithParameter(name, value.Resource); 230builder.Resource.Parameters[name] = value; 247builder.WithReferenceRelationship(value.Resource); 249builder.Resource.Parameters[name] = value.Resource; 268builder.Resource.Parameters[name] = value; 287builder.Resource.Parameters[name] = value; 306builder.Resource.Parameters[name] = value;
AzureEnvironmentResourceExtensions.cs (4)
68builder.Resource.Location = location.Resource; 91builder.Resource.ResourceGroupName = resourceGroup.Resource;
AzureProvisioningResourceExtensions.cs (2)
45builder.Resource.ConfigureInfrastructure += configure; 118return 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.AppConfiguration (1)
src\Shared\AzureRoleAssignmentUtils.cs (1)
15return builder.WithAnnotation(new RoleAssignmentAnnotation(target.Resource, CreateRoleDefinitions(roles, getName)));
Aspire.Hosting.Azure.AppContainers (1)
AzureContainerAppExtensions.cs (1)
361builder.Resource.UseAzdNamingConvention = true;
Aspire.Hosting.Azure.ApplicationInsights (1)
AzureApplicationInsightsExtensions.cs (1)
76appInsights.WorkspaceResourceId = logAnalyticsWorkspace.Resource.WorkspaceId.AsProvisioningParameter(infrastructure, AzureBicepResource.KnownParameters.LogAnalyticsWorkspaceId);
Aspire.Hosting.Azure.CognitiveServices (5)
AzureOpenAIExtensions.cs (4)
152builder.Resource.AddDeployment(deployment); 172var deployment = new AzureOpenAIDeploymentResource(name, modelName, modelVersion, builder.Resource); 173builder.Resource.AddDeployment(deployment); 189configure(builder.Resource);
src\Shared\AzureRoleAssignmentUtils.cs (1)
15return builder.WithAnnotation(new RoleAssignmentAnnotation(target.Resource, CreateRoleDefinitions(roles, getName)));
Aspire.Hosting.Azure.ContainerRegistry (2)
AzureContainerRegistryExtensions.cs (1)
82builder.WithAnnotation(new ContainerRegistryReferenceAnnotation(registryBuilder.Resource));
src\Shared\AzureRoleAssignmentUtils.cs (1)
15return builder.WithAnnotation(new RoleAssignmentAnnotation(target.Resource, CreateRoleDefinitions(roles, getName)));
Aspire.Hosting.Azure.CosmosDB (21)
AzureCosmosDBExtensions.cs (21)
92builder.ApplicationBuilder.Eventing.Subscribe<ConnectionStringAvailableEvent>(builder.Resource, async (@event, ct) => 94var connectionString = await builder.Resource.ConnectionStringExpression.GetValueAsync(ct).ConfigureAwait(false); 98throw new DistributedApplicationException($"ConnectionStringAvailableEvent was published for the '{builder.Resource.Name}' resource but the connection string was null."); 104builder.ApplicationBuilder.Eventing.Subscribe<ResourceReadyEvent>(builder.Resource, async (@event, ct) => 113foreach (var database in builder.Resource.Databases) 125var healthCheckKey = $"{builder.Resource.Name}_check"; 135var surrogate = new AzureCosmosDBEmulatorResource(builder.Resource); 174var dataPath = builder.Resource.InnerResource.IsPreviewEmulator ? "/data" : "/tmp/cosmos/appdata"; 209if (builder.Resource.InnerResource.IsPreviewEmulator) 254var database = new AzureCosmosDBDatabaseResource(name, databaseName, builder.Resource); 255builder.Resource.Databases.Add(database); 277var container = new AzureCosmosDBContainerResource(name, containerName, partitionKeyPath, builder.Resource); 278builder.Resource.Containers.Add(container); 297if (!builder.Resource.InnerResource.IsPreviewEmulator) 346var kv = builder.ApplicationBuilder.AddAzureKeyVault($"{builder.Resource.Name}-kv") 347.WithParentRelationship(builder.Resource); 355if (builder.Resource.IsEmulator) 357data.Model.Resources.Remove(kv.Resource); 376var azureResource = builder.Resource; 377azureResource.ConnectionStringSecretOutput = keyVaultBuilder.Resource.GetSecret( 380builder.WithParameter(AzureBicepResource.KnownParameters.KeyVaultName, keyVaultBuilder.Resource.NameOutputReference);
Aspire.Hosting.Azure.EventHubs (17)
AzureEventHubsExtensions.cs (16)
135var hub = new AzureEventHubResource(name, hubName, builder.Resource); 136builder.Resource.Hubs.Add(hub); 152configure(builder.Resource); 175var consumerGroup = new AzureEventHubConsumerGroupResource(name, groupName, builder.Resource); 176builder.Resource.ConsumerGroups.Add(consumerGroup); 213if (builder.Resource.IsEmulator) 237.AddAzureStorage($"{builder.Resource.Name}-storage") 246var surrogate = new AzureEventHubsEmulatorResource(builder.Resource); 258var storage = storageResource.Resource; 277var hasCustomConfigJson = builder.Resource.Annotations.OfType<ContainerMountAnnotation>().Any(v => v.Target == AzureEventHubsEmulatorResource.EmulatorConfigJsonPath); 285var tempConfigFile = WriteEmulatorConfigJson(builder.Resource); 290var configJsonAnnotations = builder.Resource.Annotations.OfType<ConfigJsonAnnotation>(); 316var configJsonPath = aspireStore.GetFileNameWithContent($"{builder.Resource.Name}-Config.json", tempConfigFile); 358return builder.WithBindMount(path ?? $".eventhubs/{builder.Resource.Name}", "/data", isReadOnly: false); 417var configFileMount = builder.Resource.Annotations.OfType<ContainerMountAnnotation>().LastOrDefault(v => v.Target == AzureEventHubsEmulatorResource.EmulatorConfigJsonPath); 420builder.Resource.Annotations.Remove(configFileMount);
src\Shared\AzureRoleAssignmentUtils.cs (1)
15return builder.WithAnnotation(new RoleAssignmentAnnotation(target.Resource, CreateRoleDefinitions(roles, getName)));
Aspire.Hosting.Azure.Functions (9)
AzureFunctionsProjectResourceExtensions.cs (8)
60.Resource; 150var launchProfile = builder.Resource.GetEffectiveLaunchProfile(); 194var targetEndpoint = builder.Resource.GetEndpoint(useHttps ? "https" : "http"); 211builder.Resource.HostStorage = storage.Resource; 229destination.WithReferenceRelationship(source.Resource); 233connectionName ??= source.Resource.Name; 234source.Resource.ApplyAzureFunctionsConfiguration(context.EnvironmentVariables, connectionName);
src\Shared\AzureRoleAssignmentUtils.cs (1)
15return builder.WithAnnotation(new RoleAssignmentAnnotation(target.Resource, CreateRoleDefinitions(roles, getName)));
Aspire.Hosting.Azure.KeyVault (1)
src\Shared\AzureRoleAssignmentUtils.cs (1)
15return builder.WithAnnotation(new RoleAssignmentAnnotation(target.Resource, CreateRoleDefinitions(roles, getName)));
Aspire.Hosting.Azure.PostgreSQL (21)
AzurePostgresExtensions.cs (21)
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); 163var azureResource = builder.Resource; 166builder.Resource.AddDatabase(name, databaseName); 216var azureResource = builder.Resource; 236azureResource.SetInnerResource(postgresContainer.Resource); 293var kv = builder.ApplicationBuilder.AddAzureKeyVault($"{builder.Resource.Name}-kv") 294.WithParentRelationship(builder.Resource); 302if (builder.Resource.IsContainer()) 304data.Model.Resources.Remove(kv.Resource); 330var azureResource = builder.Resource; 332azureResource.UserNameParameter = userName?.Resource ?? 336azureResource.PasswordParameter = password?.Resource ?? 337ParameterResourceBuilderExtensions.CreateDefaultPasswordParameter(builder.ApplicationBuilder, $"{builder.Resource.Name}-password"); 340azureResource.ConnectionStringSecretOutput = keyVaultBuilder.Resource.GetSecret($"connectionstrings--{builder.Resource.Name}"); 342builder.WithParameter(AzureBicepResource.KnownParameters.KeyVaultName, keyVaultBuilder.Resource.NameOutputReference); 535builder.ApplicationBuilder, $"{builder.Resource.Name}-username", secret: false, generatedUserName);
Aspire.Hosting.Azure.Redis (12)
AzureRedisExtensions.cs (12)
59var resource = new AzureRedisResource(builder.Resource, configureInfrastructure); 70if (builder.Resource.Annotations.OfType<ContainerImageAnnotation>().SingleOrDefault() is { } containerAnnotation) 72builder.Resource.Annotations.Remove(containerAnnotation); 162var azureResource = builder.Resource; 167azureResource.SetInnerResource(redisContainer.Resource); 199var kv = builder.ApplicationBuilder.AddAzureKeyVault($"{builder.Resource.Name}-kv") 200.WithParentRelationship(builder.Resource); 208if (builder.Resource.IsContainer()) 210data.Model.Resources.Remove(kv.Resource); 230var azureResource = builder.Resource; 231azureResource.ConnectionStringSecretOutput = keyVaultBuilder.Resource.GetSecret($"connectionstrings--{azureResource.Name}"); 232builder.WithParameter(AzureBicepResource.KnownParameters.KeyVaultName, keyVaultBuilder.Resource.NameOutputReference);
Aspire.Hosting.Azure.Search (1)
src\Shared\AzureRoleAssignmentUtils.cs (1)
15return builder.WithAnnotation(new RoleAssignmentAnnotation(target.Resource, CreateRoleDefinitions(roles, getName)));
Aspire.Hosting.Azure.ServiceBus (22)
AzureServiceBusExtensions.cs (21)
148var queue = new AzureServiceBusQueueResource(name, queueName, builder.Resource); 149builder.Resource.Queues.Add(queue); 165configure(builder.Resource); 225var topic = new AzureServiceBusTopicResource(name, topicName, builder.Resource); 226builder.Resource.Topics.Add(topic); 242configure(builder.Resource); 262if (builder.Resource.Topics.FirstOrDefault(x => x.Name == topicName) is { } existingResource) 291var subscription = new AzureServiceBusSubscriptionResource(name, subscriptionName, builder.Resource); 292builder.Resource.Subscriptions.Add(subscription); 308configure(builder.Resource); 342if (builder.Resource.IsEmulator) 355var passwordParameter = ParameterResourceBuilderExtensions.CreateDefaultPasswordParameter(builder.ApplicationBuilder, $"{builder.Resource.Name}-sql-pwd", minLower: 1, minUpper: 1, minNumeric: 1); 369.AddContainer($"{builder.Resource.Name}-sqledge", 383var sqlEndpoint = sqlEdgeResource.Resource.GetEndpoint("tcp"); 394var surrogate = new AzureServiceBusEmulatorResource(builder.Resource); 413var hasCustomConfigJson = builder.Resource.Annotations.OfType<ContainerMountAnnotation>().Any(v => v.Target == AzureServiceBusEmulatorResource.EmulatorConfigJsonPath); 421var tempConfigFile = WriteEmulatorConfigJson(builder.Resource); 426var configJsonAnnotations = builder.Resource.Annotations.OfType<ConfigJsonAnnotation>(); 452var configJsonPath = aspireStore.GetFileNameWithContent($"{builder.Resource.Name}-Config.json", tempConfigFile); 497var configFileMount = builder.Resource.Annotations.OfType<ContainerMountAnnotation>().LastOrDefault(v => v.Target == AzureServiceBusEmulatorResource.EmulatorConfigJsonPath); 500builder.Resource.Annotations.Remove(configFileMount);
src\Shared\AzureRoleAssignmentUtils.cs (1)
15return builder.WithAnnotation(new RoleAssignmentAnnotation(target.Resource, CreateRoleDefinitions(roles, getName)));
Aspire.Hosting.Azure.SignalR (2)
AzureSignalRExtensions.cs (1)
134var surrogate = new AzureSignalREmulatorResource(builder.Resource);
src\Shared\AzureRoleAssignmentUtils.cs (1)
15return builder.WithAnnotation(new RoleAssignmentAnnotation(target.Resource, CreateRoleDefinitions(roles, getName)));
Aspire.Hosting.Azure.Sql (10)
AzureSqlExtensions.cs (10)
28CreateSqlServer(infrastructure, builder.ApplicationBuilder, builder.Resource.Databases); 31var resource = new AzureSqlServerResource(builder.Resource, configureInfrastructure); 42if (builder.Resource.Annotations.OfType<ContainerImageAnnotation>().SingleOrDefault() is { } containerAnnotation) 44builder.Resource.Annotations.Remove(containerAnnotation); 111var azureResource = builder.Resource; 114builder.Resource.AddDatabase(azureSqlDatabase); 125azureSqlDatabase.SetInnerResource(innerDb.Resource); 140builder.Resource.UseDefaultAzureSku = true; 176var azureResource = builder.Resource; 186azureResource.SetInnerResource(sqlContainer.Resource);
Aspire.Hosting.Azure.Storage (17)
AzureStorageExtensions.cs (16)
135builder.ApplicationBuilder.Eventing.Subscribe<BeforeResourceStartedEvent>(builder.Resource, async (@event, ct) => 137var connectionString = await builder.Resource.GetBlobConnectionString().GetValueAsync(ct).ConfigureAwait(false); 140throw new DistributedApplicationException($"BeforeResourceStartedEvent was published for the '{builder.Resource.Name}' resource but the connection string was null."); 146builder.ApplicationBuilder.Eventing.Subscribe<ResourceReadyEvent>(builder.Resource, async (@event, ct) => 150throw new DistributedApplicationException($"BlobServiceClient was not created for the '{builder.Resource.Name}' resource."); 153var connectionString = await builder.Resource.GetBlobConnectionString().GetValueAsync(ct).ConfigureAwait(false); 156throw new DistributedApplicationException($"ResourceReadyEvent was published for the '{builder.Resource.Name}' resource but the connection string was null."); 159foreach (var blobContainer in builder.Resource.BlobContainers) 165var healthCheckKey = $"{builder.Resource.Name}_check"; 177var surrogate = new AzureStorageEmulatorResource(builder.Resource); 210return builder.WithBindMount(path ?? $".azurite/{builder.Resource.Name}", "/data", isReadOnly); 310var resource = new AzureBlobStorageResource(name, builder.Resource); 328AzureBlobStorageContainerResource resource = new(name, blobContainerName, builder.Resource); 330builder.Resource.Parent.BlobContainers.Add(resource); 346var resource = new AzureTableStorageResource(name, builder.Resource); 361var resource = new AzureQueueStorageResource(name, builder.Resource);
src\Shared\AzureRoleAssignmentUtils.cs (1)
15return builder.WithAnnotation(new RoleAssignmentAnnotation(target.Resource, CreateRoleDefinitions(roles, getName)));
Aspire.Hosting.Azure.Tests (492)
AzureAppServiceTests.cs (2)
43Assert.Same(env.Resource, target.ComputeEnvironment); 134project2.Resource.TryGetLastAnnotation<DeploymentTargetAnnotation>(out var target);
AzureBicepProvisionerTests.cs (25)
25await BicepProvisioner.SetParametersAsync(parameters, bicep0.Resource); 57.WithParameter("expr", ReferenceExpression.Create($"{param.Resource}/1")) 80Assert.Same(connectionStringResource.Resource, r.Resource); 85Assert.Same(param.Resource, r.Resource); 90Assert.Same(container.Resource, r.Resource); 197await BicepProvisioner.SetParametersAsync(parameters0, bicep0.Resource); 198var checkSum0 = BicepProvisioner.GetChecksum(bicep0.Resource, parameters0, null); 204var checkSum1 = await BicepProvisioner.GetCurrentChecksumAsync(bicep1.Resource, config); 216bicep0.Resource.Scope = new("rg0"); 220bicep1.Resource.Scope = new("rg1"); 224await BicepProvisioner.SetParametersAsync(parameters0, bicep0.Resource); 225await BicepProvisioner.SetScopeAsync(scope0, bicep0.Resource); 226var checkSum0 = BicepProvisioner.GetChecksum(bicep0.Resource, parameters0, scope0); 230await BicepProvisioner.SetParametersAsync(parameters1, bicep1.Resource); 231await BicepProvisioner.SetScopeAsync(scope1, bicep1.Resource); 232var checkSum1 = BicepProvisioner.GetChecksum(bicep1.Resource, parameters1, scope1); 244bicep0.Resource.Scope = new("rg0"); 248bicep1.Resource.Scope = new("rg0"); 252await BicepProvisioner.SetParametersAsync(parameters0, bicep0.Resource); 253await BicepProvisioner.SetScopeAsync(scope0, bicep0.Resource); 254var checkSum0 = BicepProvisioner.GetChecksum(bicep0.Resource, parameters0, scope0); 258await BicepProvisioner.SetParametersAsync(parameters1, bicep1.Resource); 259await BicepProvisioner.SetScopeAsync(scope1, bicep1.Resource); 260var checkSum1 = BicepProvisioner.GetChecksum(bicep1.Resource, parameters1, scope1); 284if (resourceEvent.Resource == entries.Resource)
AzureBicepResourceTests.cs (148)
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()); 310var manifest = await AzureManifestUtils.GetManifestWithBicep(cosmos.Resource); 336var connectionStringResource = (IResourceWithConnectionString)cosmos.Resource; 338Assert.Equal("cosmos", cosmos.Resource.Name); 356cosmos.Resource.Outputs["connectionString"] = "mycosmosconnectionstring"; 358var manifest = await AzureManifestUtils.GetManifestWithBicep(cosmos.Resource); 380var connectionStringResource = (IResourceWithConnectionString)cosmos.Resource; 382Assert.Equal("cosmos", cosmos.Resource.Name); 420kv.Resource.SecretResolver = (secretRef, _) => 430var manifest = await AzureManifestUtils.GetManifestWithBicep(cosmos.Resource); 457var connectionStringResource = (IResourceWithConnectionString)cosmos.Resource; 459Assert.Equal("cosmos", cosmos.Resource.Name); 477cosmos.Resource.Outputs["connectionString"] = "mycosmosconnectionstring"; 479var manifest = await AzureManifestUtils.GetManifestWithBicep(cosmos.Resource); 499var connectionStringResource = (IResourceWithConnectionString)cosmos.Resource; 501Assert.Equal("cosmos", cosmos.Resource.Name); 511appConfig.Resource.Outputs["appConfigEndpoint"] = "https://myendpoint"; 512Assert.Equal("https://myendpoint", await appConfig.Resource.ConnectionStringExpression.GetValueAsync(default)); 516var manifest = await GetManifestWithBicep(model, appConfig.Resource); 518var connectionStringResource = (IResourceWithConnectionString)appConfig.Resource; 593appInsights.Resource.Outputs["appInsightsConnectionString"] = "myinstrumentationkey"; 595var connectionStringResource = (IResourceWithConnectionString)appInsights.Resource; 597Assert.Equal("appInsights", appInsights.Resource.Name); 599Assert.Equal("{appInsights.outputs.appInsightsConnectionString}", appInsights.Resource.ConnectionStringExpression.ValueExpression); 601var appInsightsManifest = await AzureManifestUtils.GetManifestWithBicep(appInsights.Resource); 625appInsights.Resource.Outputs["appInsightsConnectionString"] = "myinstrumentationkey"; 627var connectionStringResource = (IResourceWithConnectionString)appInsights.Resource; 629Assert.Equal("appInsights", appInsights.Resource.Name); 631Assert.Equal("{appInsights.outputs.appInsightsConnectionString}", appInsights.Resource.ConnectionStringExpression.ValueExpression); 633var appInsightsManifest = await AzureManifestUtils.GetManifestWithBicep(appInsights.Resource); 655appInsights.Resource.Outputs["appInsightsConnectionString"] = "myinstrumentationkey"; 657var connectionStringResource = (IResourceWithConnectionString)appInsights.Resource; 659Assert.Equal("appInsights", appInsights.Resource.Name); 661Assert.Equal("{appInsights.outputs.appInsightsConnectionString}", appInsights.Resource.ConnectionStringExpression.ValueExpression); 663var appInsightsManifest = await AzureManifestUtils.GetManifestWithBicep(appInsights.Resource); 687Assert.Equal("logAnalyticsWorkspace", logAnalyticsWorkspace.Resource.Name); 688Assert.Equal("{logAnalyticsWorkspace.outputs.logAnalyticsWorkspaceId}", logAnalyticsWorkspace.Resource.WorkspaceId.ValueExpression); 690var appInsightsManifest = await AzureManifestUtils.GetManifestWithBicep(logAnalyticsWorkspace.Resource); 710appInsights.Resource.Outputs["appInsightsConnectionString"] = "myinstrumentationkey"; 715var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(serviceA.Resource, DistributedApplicationOperation.Run, TestServiceProvider.Instance); 736var manifest = await ManifestUtils.GetManifest(infrastructure1.Resource); 761var manifest = await ManifestUtils.GetManifest(infrastructure1.Resource); 800var manifest = await ManifestUtils.GetManifest(infrastructure1.Resource); 830Assert.True(redis.Resource.IsContainer()); 831Assert.NotNull(redis.Resource.PasswordParameter); 833Assert.Equal($"localhost:12455,password={redis.Resource.PasswordParameter.Value}", await redis.Resource.GetConnectionStringAsync()); 835var manifest = await AzureManifestUtils.GetManifestWithBicep(redis.Resource); 863var manifest = await AzureManifestUtils.GetManifestWithBicep(sql.Resource); 865Assert.True(sql.Resource.TryGetLastAnnotation<ConnectionStringRedirectAnnotation>(out var connectionStringAnnotation)); 869Assert.Equal("Server=tcp:myserver,1433;Encrypt=True;Authentication=\"Active Directory Default\"", await sql.Resource.GetConnectionStringAsync(default)); 870Assert.Equal("Server=tcp:{sql.outputs.sqlServerFqdn},1433;Encrypt=True;Authentication=\"Active Directory Default\"", sql.Resource.ConnectionStringExpression.ValueExpression); 895var manifest = await AzureManifestUtils.GetManifestWithBicep(sql.Resource); 897Assert.True(sql.Resource.TryGetLastAnnotation<ConnectionStringRedirectAnnotation>(out var connectionStringAnnotation)); 901Assert.Equal("Server=tcp:myserver,1433;Encrypt=True;Authentication=\"Active Directory Default\"", await sql.Resource.GetConnectionStringAsync(default)); 902Assert.Equal("Server=tcp:{sql.outputs.sqlServerFqdn},1433;Encrypt=True;Authentication=\"Active Directory Default\"", sql.Resource.ConnectionStringExpression.ValueExpression); 932Assert.True(postgres.Resource.TryGetLastAnnotation<ConnectionStringRedirectAnnotation>(out var connectionStringAnnotation)); 936var manifest = await AzureManifestUtils.GetManifestWithBicep(postgres.Resource); 941Assert.Equal("myconnectionstring", await postgres.Resource.GetConnectionStringAsync(default)); 976Assert.True(postgres.Resource.TryGetLastAnnotation<ConnectionStringRedirectAnnotation>(out var connectionStringAnnotation)); 980var manifest = await AzureManifestUtils.GetManifestWithBicep(postgres.Resource); 985Assert.Equal("myconnectionstring", await postgres.Resource.GetConnectionStringAsync(default)); 1021var manifest = await AzureManifestUtils.GetManifestWithBicep(postgres.Resource); 1027Assert.Equal(expectedConnectionString, await postgres.Resource.GetConnectionStringAsync()); 1053var manifest = await ManifestUtils.GetManifest(postgres.Resource); 1073manifest = await ManifestUtils.GetManifest(postgres.Resource); 1092manifest = await ManifestUtils.GetManifest(postgres.Resource); 1136serviceBus.Resource.Outputs["serviceBusEndpoint"] = "mynamespaceEndpoint"; 1138var connectionStringResource = (IResourceWithConnectionString)serviceBus.Resource; 1140Assert.Equal("sb", serviceBus.Resource.Name); 1146var manifest = await GetManifestWithBicep(model, serviceBus.Resource); 1196wps.Resource.Outputs["endpoint"] = "https://mywebpubsubendpoint"; 1206var connectionStringResource = (IResourceWithConnectionString)wps.Resource; 1212var manifest = await GetManifestWithBicep(model, wps.Resource); 1216Assert.Equal("wps1", wps.Resource.Name); 1259wps.Resource.Outputs["endpoint"] = "https://mywebpubsubendpoint"; 1272var manifest = await AzureManifestUtils.GetManifestWithBicep(wps.Resource); 1275Assert.Equal("wps1", wps.Resource.Name); 1293Assert.True(storage.Resource.IsContainer()); 1300=> new(storage.Resource, new EndpointAnnotation(ProtocolType.Tcp, name: name, targetPort: port)); 1306Assert.Equal(blobqs, blob.Resource.ConnectionStringExpression.ValueExpression); 1307Assert.Equal(queueqs, queue.Resource.ConnectionStringExpression.ValueExpression); 1308Assert.Equal(tableqs, table.Resource.ConnectionStringExpression.ValueExpression); 1314Assert.Equal(Resolve(blobqs, "blob", 10000), await ((IResourceWithConnectionString)blob.Resource).GetConnectionStringAsync()); 1315Assert.Equal(Resolve(queueqs, "queue", 10001), await ((IResourceWithConnectionString)queue.Resource).GetConnectionStringAsync()); 1316Assert.Equal(Resolve(tableqs, "table", 10002), await ((IResourceWithConnectionString)table.Resource).GetConnectionStringAsync()); 1335storage.Resource.Outputs["blobEndpoint"] = "https://myblob"; 1336storage.Resource.Outputs["queueEndpoint"] = "https://myqueue"; 1337storage.Resource.Outputs["tableEndpoint"] = "https://mytable"; 1340Assert.Equal("storage", storage.Resource.Name); 1342var storageManifest = await AzureManifestUtils.GetManifestWithBicep(storage.Resource); 1361var connectionStringBlobResource = (IResourceWithConnectionString)blob.Resource; 1370var blobManifest = await ManifestUtils.GetManifest(blob.Resource); 1376var connectionStringQueueResource = (IResourceWithConnectionString)queue.Resource; 1385var queueManifest = await ManifestUtils.GetManifest(queue.Resource); 1391var connectionStringTableResource = (IResourceWithConnectionString)table.Resource; 1400var tableManifest = await ManifestUtils.GetManifest(table.Resource); 1421storage.Resource.Outputs["blobEndpoint"] = "https://myblob"; 1422storage.Resource.Outputs["queueEndpoint"] = "https://myqueue"; 1423storage.Resource.Outputs["tableEndpoint"] = "https://mytable"; 1426Assert.Equal("storage", storage.Resource.Name); 1428var storageManifest = await AzureManifestUtils.GetManifestWithBicep(storage.Resource); 1447var connectionStringBlobResource = (IResourceWithConnectionString)blob.Resource; 1456var blobManifest = await ManifestUtils.GetManifest(blob.Resource); 1462var connectionStringQueueResource = (IResourceWithConnectionString)queue.Resource; 1471var queueManifest = await ManifestUtils.GetManifest(queue.Resource); 1477var connectionStringTableResource = (IResourceWithConnectionString)table.Resource; 1486var tableManifest = await ManifestUtils.GetManifest(table.Resource); 1506storage.Resource.Outputs["blobEndpoint"] = "https://myblob"; 1507storage.Resource.Outputs["queueEndpoint"] = "https://myqueue"; 1508storage.Resource.Outputs["tableEndpoint"] = "https://mytable"; 1511Assert.Equal("storage", storage.Resource.Name); 1515var storageManifest = await GetManifestWithBicep(model, storage.Resource); 1583var connectionStringBlobResource = (IResourceWithConnectionString)blob.Resource; 1592var blobManifest = await ManifestUtils.GetManifest(blob.Resource); 1598var connectionStringQueueResource = (IResourceWithConnectionString)queue.Resource; 1607var queueManifest = await ManifestUtils.GetManifest(queue.Resource); 1613var connectionStringTableResource = (IResourceWithConnectionString)table.Resource; 1622var tableManifest = await ManifestUtils.GetManifest(table.Resource); 1643storage.Resource.Outputs["blobEndpoint"] = "https://myblob"; 1644storage.Resource.Outputs["queueEndpoint"] = "https://myqueue"; 1645storage.Resource.Outputs["tableEndpoint"] = "https://mytable"; 1648Assert.Equal("storage", storage.Resource.Name); 1650var storageManifest = await AzureManifestUtils.GetManifestWithBicep(storage.Resource); 1670var connectionStringBlobResource = (IResourceWithConnectionString)blob.Resource; 1679var blobManifest = await ManifestUtils.GetManifest(blob.Resource); 1685var connectionStringQueueResource = (IResourceWithConnectionString)queue.Resource; 1694var queueManifest = await ManifestUtils.GetManifest(queue.Resource); 1700var connectionStringTableResource = (IResourceWithConnectionString)table.Resource; 1709var tableManifest = await ManifestUtils.GetManifest(table.Resource); 1729search.Resource.Outputs["connectionString"] = fakeConnectionString; 1731var connectionStringResource = (IResourceWithConnectionString)search.Resource; 1734Assert.Equal("search", search.Resource.Name); 1740var manifest = await GetManifestWithBicep(model, search.Resource); 1811var aiManifest = await ManifestUtils.GetManifest(ai.Resource); 1815var serviceBusManifest = await ManifestUtils.GetManifest(serviceBus.Resource); 1819var serviceManifest = await ManifestUtils.GetManifest(serviceA.Resource); 1871var manifest = await GetManifestWithBicep(model, openai.Resource); 1979var (manifest, bicep) = await AzureManifestUtils.GetManifestWithBicep(provisioningResource.Resource);
AzureContainerAppsTests.cs (4)
112Assert.Same(env.Resource, target.ComputeEnvironment); 155Assert.Same(infra.Resource, target.ComputeEnvironment); 187Assert.Same(env.Resource, target?.ComputeEnvironment); 1304var (manifest, bicep) = await GetManifestWithBicep(sql.Resource);
AzureContainerRegistryTests.cs (2)
55Assert.Same(registryBuilder.Resource, annotation!.Registry); 65var (manifest, bicep) = await GetManifestWithBicep(acr.Resource);
AzureCosmosDBEmulatorFunctionalTests.cs (14)
47await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running, cts.Token); 53await app.ResourceNotifications.WaitForResourceHealthyAsync(resource.Resource.Name, cts.Token); 93await app.ResourceNotifications.WaitForResourceHealthyAsync(db.Resource.Name, cts.Token); 96hb.Configuration[$"ConnectionStrings:{db.Resource.Name}"] = await cosmos.Resource.ConnectionStringExpression.GetValueAsync(default); 97hb.AddAzureCosmosClient(db.Resource.Name); 98hb.AddCosmosDbContext<EFCoreCosmosDbContext>(db.Resource.Name, databaseName); 221await rns.WaitForResourceHealthyAsync(cosmos2.Resource.Name, cts.Token); 229[$"ConnectionStrings:{cosmos2.Resource.Name}"] = await cosmos2.Resource.ConnectionStringExpression.GetValueAsync(default) 232hb.AddAzureCosmosClient(cosmos2.Resource.Name); 290await rns.WaitForResourceHealthyAsync(cosmos.Resource.Name, cts.Token); 293hb.Configuration[$"ConnectionStrings:{cosmos.Resource.Name}"] = await cosmos.Resource.ConnectionStringExpression.GetValueAsync(default); 294hb.AddAzureCosmosClient(cosmos.Resource.Name);
AzureCosmosDBExtensionsTests.cs (20)
30var endpointAnnotation = cosmos.Resource.Annotations.OfType<EndpointAnnotation>().FirstOrDefault(); 51var containerImageAnnotation = cosmos.Resource.Annotations.OfType<ContainerImageAnnotation>().FirstOrDefault(); 68var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(cosmos.Resource, DistributedApplicationOperation.Run, TestServiceProvider.Instance); 101Assert.Equal("{cosmos.outputs.connectionString}", cosmos.Resource.ConnectionStringExpression.ValueExpression); 104Assert.Equal("AccountEndpoint={cosmos.outputs.connectionString};Database=db1", db1.Resource.ConnectionStringExpression.ValueExpression); 105Assert.Equal("AccountEndpoint={cosmos.outputs.connectionString};Database=db1;Container=container1", container1.Resource.ConnectionStringExpression.ValueExpression); 131Assert.DoesNotContain(";Database=db1", cosmos.Resource.ConnectionStringExpression.ValueExpression); 132Assert.DoesNotContain(";Database=db1;Container=container1", cosmos.Resource.ConnectionStringExpression.ValueExpression); 133Assert.Contains(";Database=db1", db1.Resource.ConnectionStringExpression.ValueExpression); 134Assert.Contains(";Database=db1;Container=container1", container1.Resource.ConnectionStringExpression.ValueExpression); 136Assert.Contains(";Database=db", db2.Resource.ConnectionStringExpression.ValueExpression); 137Assert.Contains(";Database=db;Container=container", container2.Resource.ConnectionStringExpression.ValueExpression); 150((IResourceWithAzureFunctionsConfig)cosmos.Resource).ApplyAzureFunctionsConfiguration(target, "cosmos"); 157((IResourceWithAzureFunctionsConfig)db1.Resource).ApplyAzureFunctionsConfiguration(target, "db1"); 166((IResourceWithAzureFunctionsConfig)container1.Resource).ApplyAzureFunctionsConfiguration(target, "container1"); 201var manifest = await GetManifestWithBicep(model, cosmos.Resource); 252Assert.Equal("{cosmos-kv.secrets.connectionstrings--cosmos}", cosmos.Resource.ConnectionStringExpression.ValueExpression); 253Assert.Equal("{cosmos-kv.secrets.connectionstrings--db1}", database.Resource.ConnectionStringExpression.ValueExpression); 254Assert.Equal("{cosmos-kv.secrets.connectionstrings--container1}", container.Resource.ConnectionStringExpression.ValueExpression); 256var manifest = await GetManifestWithBicep(cosmos.Resource);
AzureEnvironmentResourceExtensionsTests.cs (4)
43Assert.Same(firstBuilder.Resource, secondBuilder.Resource); 88Assert.Equal(expectedLocation.Resource, resource.Location); 104Assert.Equal(expectedResourceGroup.Resource, resource.ResourceGroupName);
AzureEnvironmentResourceTests.cs (3)
116.WithParameter("pgdb", pgdb.Resource.ConnectionStringExpression); 165["kvUri"] = kv.Resource.VaultUri, 166["blob"] = blobs.Resource.ConnectionStringExpression,
AzureEventHubsExtensionsTests.cs (29)
46await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running, cts.Token); 47await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting, cts.Token); 51await app.ResourceNotifications.WaitForResourceHealthyAsync(resource.Resource.Name, cts.Token); 53await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running, cts.Token); 76await app.ResourceNotifications.WaitForResourceHealthyAsync(eventHubns.Resource.Name, cts.Token); 82hb.Configuration["ConnectionStrings:hub"] = await eventHub.Resource.ConnectionStringExpression.GetValueAsync(CancellationToken.None); 88hb.Configuration["ConnectionStrings:eventhubns"] = await eventHubns.Resource.ConnectionStringExpression.GetValueAsync(CancellationToken.None); 89hb.AddAzureEventHubProducerClient("eventhubns", settings => settings.EventHubName = eventHub.Resource.HubName); 90hb.AddAzureEventHubConsumerClient("eventhubns", settings => settings.EventHubName = eventHub.Resource.HubName); 128await app.ResourceNotifications.WaitForResourceHealthyAsync(eventHubns.Resource.Name, cts.Token); 134hb.Configuration["ConnectionStrings:eventhubns"] = await eventHubns.Resource.ConnectionStringExpression.GetValueAsync(CancellationToken.None); 135hb.AddAzureEventHubProducerClient("eventhubns", settings => settings.EventHubName = eventHub.Resource.HubName); 136hb.AddAzureEventHubConsumerClient("eventhubns", settings => settings.EventHubName = eventHub.Resource.HubName); 140hb.Configuration["ConnectionStrings:eventhubns"] = await eventHubns.Resource.ConnectionStringExpression.GetValueAsync(CancellationToken.None) + $";EntityPath={hubName};"; 166var volumeAnnotation = eventHubs.Resource.Annotations.OfType<ContainerMountAnnotation>().Single(a => !a.Target.Contains("Config.json")); 185var volumeAnnotation = eventHubs.Resource.Annotations.OfType<ContainerMountAnnotation>().Single(a => !a.Target.Contains("Config.json")); 204var volumeAnnotation = eventHubs.Resource.Annotations.OfType<ContainerMountAnnotation>().Single(a => !a.Target.Contains("Config.json")); 223var volumeAnnotation = eventHubs.Resource.Annotations.OfType<ContainerMountAnnotation>().Single(a => !a.Target.Contains("Config.json")); 242var endpoints = eventHubs.Resource.Annotations.OfType<EndpointAnnotation>().ToList(); 270var containerImageAnnotation = eventHubs.Resource.Annotations.OfType<ContainerImageAnnotation>().FirstOrDefault(); 290var (manifest, bicep) = await AzureManifestUtils.GetManifestWithBicep(model, eventHubs.Resource); 323var manifest = await AzureManifestUtils.GetManifestWithBicep(eventHubs.Resource); 525serviceBus.Resource.TryGetLastAnnotation<ContainerLifetimeAnnotation>(out var sbLifetimeAnnotation); 550Assert.Equal("{eh.outputs.eventHubsEndpoint}", eventHubs.Resource.ConnectionStringExpression.ValueExpression); 551Assert.Equal("Endpoint={eh.outputs.eventHubsEndpoint};EntityPath=hub1", eventHub.Resource.ConnectionStringExpression.ValueExpression); 552Assert.Equal("Endpoint={eh.outputs.eventHubsEndpoint};EntityPath=hub1;ConsumerGroup=cg1", consumerGroup.Resource.ConnectionStringExpression.ValueExpression); 565((IResourceWithAzureFunctionsConfig)eventHubs.Resource).ApplyAzureFunctionsConfiguration(target, "eh"); 575((IResourceWithAzureFunctionsConfig)eventHub.Resource).ApplyAzureFunctionsConfiguration(target, "hub1"); 591((IResourceWithAzureFunctionsConfig)consumerGroup.Resource).ApplyAzureFunctionsConfiguration(target, "cg1");
AzureFunctionsTests.cs (3)
35Assert.True(funcApp.Resource.TryGetAnnotationsOfType<ResourceRelationshipAnnotation>(out var relAnnotations)); 166Assert.True(funcApp.Resource.TryGetAnnotationsOfType<ResourceRelationshipAnnotation>(out var relAnnotations)); 169Assert.Equal(storage.Resource, rel.Resource);
AzureKeyVaultTests.cs (9)
20var (manifest, bicep) = await AzureManifestUtils.GetManifestWithBicep(mykv.Resource); 36var (manifest, bicep) = await AzureManifestUtils.GetManifestWithBicep(model, mykv.Resource); 56kv.Resource.SecretResolver = (s, ct) => 62var secretReference = kv.Resource.GetSecret("mySecret"); 68var runEnv = await containerBuilder.Resource.GetEnvironmentVariableValuesAsync(DistributedApplicationOperation.Run); 69var publishEnv = await containerBuilder.Resource.GetEnvironmentVariableValuesAsync(DistributedApplicationOperation.Publish); 88var secretReference = kv.Resource.GetSecret("mySecret"); 89var secretReference2 = kv.Resource.GetSecret("mySecret2"); 110var (manifest, bicep) = await AzureManifestUtils.GetManifestWithBicep(module.Resource, skipPreparer: true);
AzurePostgresExtensionsTests.cs (16)
39var (manifest, bicep) = await AzureManifestUtils.GetManifestWithBicep(postgres.Resource, skipPreparer: true); 96var manifest = await AzureManifestUtils.GetManifestWithBicep(postgres.Resource); 104"administratorLogin": "{{{userName?.Resource.Name ?? "postgres-data-username"}}.value}", 105"administratorLoginPassword": "{{{password?.Resource.Name ?? "postgres-data-password"}}.value}", 147Assert.True(postgres.Resource.IsContainer(), "The resource should now be a container resource."); 148Assert.StartsWith("Host=localhost;Port=12455;Username=postgres;Password=", await postgres.Resource.ConnectionStringExpression.GetValueAsync(CancellationToken.None)); 150var db1ConnectionString = await db1.Resource.ConnectionStringExpression.GetValueAsync(CancellationToken.None); 154var db2ConnectionString = await db2.Resource.ConnectionStringExpression.GetValueAsync(CancellationToken.None); 196var endpoint = Assert.Single(innerPostgres.Resource.Annotations.OfType<EndpointAnnotation>()); 205Assert.True(postgres.Resource.IsContainer(), "The resource should now be a container resource."); 206Assert.Equal("Host=localhost;Port=12455;Username=user1;Password=p@ssw0rd1", await postgres.Resource.ConnectionStringExpression.GetValueAsync(CancellationToken.None)); 208var db1ConnectionString = await db1.Resource.ConnectionStringExpression.GetValueAsync(CancellationToken.None); 211var db2ConnectionString = await db2.Resource.ConnectionStringExpression.GetValueAsync(CancellationToken.None); 245Assert.Equal("Host=localhost;Port=12455;Username=user;Password=p@ssw0rd1", await postgres.Resource.ConnectionStringExpression.GetValueAsync(CancellationToken.None)); 246Assert.Equal("Host=localhost;Port=12455;Username=user;Password=p@ssw0rd1;Database=db1", await db1.Resource.ConnectionStringExpression.GetValueAsync(CancellationToken.None)); 247Assert.Equal("Host=localhost;Port=12455;Username=user;Password=p@ssw0rd1;Database=db2Name", await db2.Resource.ConnectionStringExpression.GetValueAsync(CancellationToken.None));
AzureProvisioningResourceExtensionsTests.cs (1)
48var manifest = await AzureManifestUtils.GetManifestWithBicep(resource1.Resource);
AzureRedisExtensionsTests.cs (8)
38var (manifest, bicep) = await GetManifestWithBicep(model, redis.Resource); 83var manifest = await AzureManifestUtils.GetManifestWithBicep(redis.Resource); 112redisResource = c.Resource; 117Assert.True(redis.Resource.IsContainer(), "The resource should now be a container resource."); 120Assert.Equal($"localhost:12455,password={redisResource.PasswordParameter.Value}", await redis.Resource.ConnectionStringExpression.GetValueAsync(CancellationToken.None)); 133redisResource = c.Resource; 151Assert.True(redis.Resource.IsContainer(), "The resource should now be a container resource."); 154Assert.Equal($"localhost:12455,password=p@ssw0rd1", await redis.Resource.ConnectionStringExpression.GetValueAsync(CancellationToken.None));
AzureResourcePreparerTests.cs (11)
64Assert.True(storage.Resource.TryGetLastAnnotation<DefaultRoleAssignmentsAnnotation>(out var defaultAssignments)); 81Assert.True(api.Resource.TryGetLastAnnotation<RoleAssignmentAnnotation>(out var apiRoleAssignments)); 82Assert.Equal(storage.Resource, apiRoleAssignments.Target); 123Assert.True(api.Resource.TryGetLastAnnotation<RoleAssignmentAnnotation>(out var apiRoleAssignments)); 124Assert.Equal(storage.Resource, apiRoleAssignments.Target); 129Assert.True(api2.Resource.TryGetLastAnnotation<RoleAssignmentAnnotation>(out var api2RoleAssignments)); 130Assert.Equal(storage.Resource, api2RoleAssignments.Target); 150context.Args.Add(blobs.Resource.ConnectionStringExpression); 156Assert.True(storage.Resource.TryGetLastAnnotation<DefaultRoleAssignmentsAnnotation>(out var defaultAssignments)); 158Assert.True(api.Resource.TryGetLastAnnotation<RoleAssignmentAnnotation>(out var apiRoleAssignments)); 159Assert.Equal(storage.Resource, apiRoleAssignments.Target);
AzureServiceBusExtensionsTests.cs (28)
37var manifest = await AzureManifestUtils.GetManifestWithBicep(serviceBus.Resource); 62var manifest = await AzureManifestUtils.GetManifestWithBicep(serviceBus.Resource); 94await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running, cts.Token); 96await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting, cts.Token); 100await app.ResourceNotifications.WaitForResourceHealthyAsync(resource.Resource.Name, cts.Token); 102await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running, cts.Token); 128hb.Configuration["ConnectionStrings:servicebusns"] = await serviceBus.Resource.ConnectionStringExpression.GetValueAsync(CancellationToken.None); 135await rns.WaitForResourceAsync(serviceBus.Resource.Name, KnownResourceStates.Running, cts.Token); 136await rns.WaitForResourceHealthyAsync(serviceBus.Resource.Name, cts.Token); 140await using var sender = serviceBusClient.CreateSender(queueResource.Resource.QueueName); 143await using var receiver = serviceBusClient.CreateReceiver(queueResource.Resource.QueueName); 163serviceBus.Resource.Annotations.OfType<EndpointAnnotation>(), 186var containerImageAnnotation = serviceBus.Resource.Annotations.OfType<ContainerImageAnnotation>().FirstOrDefault(); 264var manifest = await AzureManifestUtils.GetManifestWithBicep(serviceBus.Resource); 631serviceBus.Resource.TryGetLastAnnotation<ContainerLifetimeAnnotation>(out var sbLifetimeAnnotation); 658Assert.Equal("{sb.outputs.serviceBusEndpoint}", serviceBus.Resource.ConnectionStringExpression.ValueExpression); 659Assert.Equal("Endpoint={sb.outputs.serviceBusEndpoint};EntityPath=queue", queue.Resource.ConnectionStringExpression.ValueExpression); 660Assert.Equal("Endpoint={sb.outputs.serviceBusEndpoint};EntityPath=topic", topic.Resource.ConnectionStringExpression.ValueExpression); 661Assert.Equal("Endpoint={sb.outputs.serviceBusEndpoint};EntityPath=topic/Subscriptions/sub", subscription.Resource.ConnectionStringExpression.ValueExpression); 675((IResourceWithAzureFunctionsConfig)serviceBus.Resource).ApplyAzureFunctionsConfiguration(target, "sb"); 681((IResourceWithAzureFunctionsConfig)queue.Resource).ApplyAzureFunctionsConfiguration(target, "queue"); 688((IResourceWithAzureFunctionsConfig)topic.Resource).ApplyAzureFunctionsConfiguration(target, "topic"); 695((IResourceWithAzureFunctionsConfig)subscription.Resource).ApplyAzureFunctionsConfiguration(target, "sub"); 743hb.Configuration["ConnectionStrings:servicebusns"] = await serviceBus.Resource.ConnectionStringExpression.GetValueAsync(CancellationToken.None); 746await app.ResourceNotifications.WaitForResourceAsync(serviceBus.Resource.Name, KnownResourceStates.Running, cts.Token); 747await app.ResourceNotifications.WaitForResourceHealthyAsync(serviceBus.Resource.Name, cts.Token); 754await using var sender = serviceBusClient.CreateSender(queueResource.Resource.QueueName); 757await using var receiver = serviceBusClient.CreateReceiver(queueResource.Resource.QueueName);
AzureSignalREmulatorFunctionalTest.cs (8)
28Assert.True(signalR.Resource.IsEmulator); 30var connectionStringExpr = signalR.Resource.ConnectionStringExpression; 35Assert.Equal(connectionString, await ((IResourceWithConnectionString)signalR.Resource).GetConnectionStringAsync()); 60await app.ResourceNotifications.WaitForResourceAsync(signalR.Resource.Name, KnownResourceStates.Running, cts.Token); 61await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting, cts.Token); 65await app.ResourceNotifications.WaitForResourceHealthyAsync(signalR.Resource.Name, cts.Token); 67await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running, cts.Token); 98var connectionString = await signalR.Resource.ConnectionStringExpression.GetValueAsync(default);
AzureSignalRExtensionsTests.cs (2)
24var (manifest, bicep) = await GetManifestWithBicep(signalr.Resource, skipPreparer: true); 46var (manifest, bicep) = await GetManifestWithBicep(signalr.Resource, skipPreparer: true);
AzureSqlExtensionsTests.cs (12)
46var manifest = await AzureManifestUtils.GetManifestWithBicep(sql.Resource, skipPreparer: true); 92Assert.True(sql.Resource.IsContainer(), "The resource should now be a container resource."); 93var serverConnectionString = await sql.Resource.ConnectionStringExpression.GetValueAsync(CancellationToken.None); 97var db1ConnectionString = await db1.Resource.ConnectionStringExpression.GetValueAsync(CancellationToken.None); 101var db2ConnectionString = await db2.Resource.ConnectionStringExpression.GetValueAsync(CancellationToken.None); 105var db3ConnectionString = await db3.Resource.ConnectionStringExpression.GetValueAsync(CancellationToken.None); 149var endpoint = Assert.Single(innerSql.Resource.Annotations.OfType<EndpointAnnotation>()); 158Assert.True(sql.Resource.IsContainer(), "The resource should now be a container resource."); 159var serverConnectionString = await sql.Resource.ConnectionStringExpression.GetValueAsync(CancellationToken.None); 162var db1ConnectionString = await db1.Resource.ConnectionStringExpression.GetValueAsync(CancellationToken.None); 165var db2ConnectionString = await db2.Resource.ConnectionStringExpression.GetValueAsync(CancellationToken.None); 168var db3ConnectionString = await db3.Resource.ConnectionStringExpression.GetValueAsync(CancellationToken.None);
AzureStorageEmulatorFunctionalTests.cs (13)
48await rns.WaitForResourceAsync(storage.Resource.Name, KnownResourceStates.Running, cts.Token); 50await rns.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting, cts.Token); 54await rns.WaitForResourceHealthyAsync(blobs.Resource.Name, cts.Token); 55await rns.WaitForResourceHealthyAsync(queues.Resource.Name, cts.Token); 56await rns.WaitForResourceHealthyAsync(tables.Resource.Name, cts.Token); 58await rns.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running, cts.Token); 94await rns.WaitForResourceAsync(storage.Resource.Name, KnownResourceStates.Running, cts.Token); 96await rns.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting, cts.Token); 100await rns.WaitForResourceHealthyAsync(blobContainer.Resource.Name, cts.Token); 102await rns.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running, cts.Token); 120hb.Configuration["ConnectionStrings:BlobConnection"] = await storage.Resource.ConnectionStringExpression.GetValueAsync(CancellationToken.None); 150hb.Configuration["ConnectionStrings:BlobConnection"] = await blobs.Resource.ConnectionStringExpression.GetValueAsync(CancellationToken.None); 157await rns.WaitForResourceHealthyAsync(blobContainer.Resource.Name, CancellationToken.None);
AzureStorageExtensionsTests.cs (20)
31var volumeAnnotation = storage.Resource.Annotations.OfType<ContainerMountAnnotation>().Single(); 57var volumeAnnotation = storage.Resource.Annotations.OfType<ContainerMountAnnotation>().Single(); 83var volumeAnnotation = storage.Resource.Annotations.OfType<ContainerMountAnnotation>().Single(); 109var volumeAnnotation = storage.Resource.Annotations.OfType<ContainerMountAnnotation>().Single(); 128storage.Resource.Annotations.OfType<EndpointAnnotation>(), 142var args = await ArgumentEvaluator.GetArgumentListAsync(storage.Resource); 162var args = await ArgumentEvaluator.GetArgumentListAsync(storage.Resource); 181Assert.True(storage.Resource.IsContainer()); 185Assert.Equal(expected, await ((IResourceWithConnectionString)blobs.Resource).GetConnectionStringAsync()); 197storage.Resource.Outputs["blobEndpoint"] = blobsConnectionString; 201Assert.Equal(blobsConnectionString, await ((IResourceWithConnectionString)blobs.Resource).GetConnectionStringAsync()); 212Assert.Equal("{storage.outputs.blobEndpoint}", blobs.Resource.ConnectionStringExpression.ValueExpression); 229Assert.True(storage.Resource.IsContainer()); 234string? blobConntionString = await ((IResourceWithConnectionString)blobs.Resource).GetConnectionStringAsync(); 237Assert.Equal(expected, await ((IResourceWithConnectionString)blobContainer.Resource).GetConnectionStringAsync()); 249storage.Resource.Outputs["blobEndpoint"] = "https://myblob"; 254string? blobsConnectionString = await ((IResourceWithConnectionString)blobs.Resource).GetConnectionStringAsync(); 257Assert.Equal(expected, await ((IResourceWithConnectionString)blobContainer.Resource).GetConnectionStringAsync()); 269Assert.Equal("Endpoint=\"{storage.outputs.blobEndpoint}\";ContainerName=myContainer;", blobContainer.Resource.ConnectionStringExpression.ValueExpression); 283var manifest = await AzureManifestUtils.GetManifestWithBicep(storage.Resource);
AzureWebPubSubExtensionsTests.cs (34)
33Assert.Equal(hubName, hub.Resource.Name); 34var manifest = await AzureManifestUtils.GetManifestWithBicep(wps.Resource); 55var manifest = await AzureManifestUtils.GetManifestWithBicep(wps.Resource); 61Assert.Equal("wps1", wps.Resource.Name); 74Assert.Equal("{wps1.outputs.endpoint}", wps.Resource.ConnectionStringExpression.ValueExpression); 75Assert.Equal("Endpoint={wps1.outputs.endpoint};Hub=abc", hub.Resource.ConnectionStringExpression.ValueExpression); 77Assert.Equal("Endpoint={wps1.outputs.endpoint};Hub=hij", otherHub.Resource.ConnectionStringExpression.ValueExpression); 100var manifest = await AzureManifestUtils.GetManifestWithBicep(wps.Resource); 106Assert.Equal("wps1", wps.Resource.Name); 130var manifest = await AzureManifestUtils.GetManifestWithBicep(wps.Resource); 136Assert.Equal("wps1", wps.Resource.Name); 156wps.Resource.Outputs["endpoint"] = "https://mywebpubsubendpoint"; 157var manifest = await AzureManifestUtils.GetManifestWithBicep(wps.Resource); 162Assert.Equal("wps1", wps.Resource.Name); 191wps.Resource.Outputs["endpoint"] = "https://mywebpubsubendpoint"; 206var connectionStringResource = (IResourceWithConnectionString)wps.Resource; 209var manifest = await AzureManifestUtils.GetManifestWithBicep(wps.Resource); 216Assert.Equal("wps1", wps.Resource.Name); 232Assert.Equal("hub1", hub1.Resource.Name); 233Assert.Equal("resource2", hub2.Resource.Name); 234Assert.Equal("hub3", hub3.Resource.Name); 235Assert.Equal("hub4", hub4.Resource.Name); 237Assert.Equal("hub1", hub1.Resource.HubName); 238Assert.Equal("hub2", hub2.Resource.HubName); 239Assert.Equal("hub3", hub3.Resource.HubName); 240Assert.Equal("hub4", hub4.Resource.HubName); 242Assert.Equal("Endpoint={wps1.outputs.endpoint};Hub=hub1", hub1.Resource.ConnectionStringExpression.ValueExpression); 243Assert.Equal("Endpoint={wps1.outputs.endpoint};Hub=hub2", hub2.Resource.ConnectionStringExpression.ValueExpression); 244Assert.Equal("Endpoint={wps1.outputs.endpoint};Hub=hub3", hub3.Resource.ConnectionStringExpression.ValueExpression); 245Assert.Equal("Endpoint={wps1.outputs.endpoint};Hub=hub4", hub4.Resource.ConnectionStringExpression.ValueExpression); 259Assert.Same(hub1.Resource, hub2.Resource); 260Assert.Equal("resource1", hub1.Resource.Name); 261Assert.Equal("same-hub", hub1.Resource.HubName);
ExistingAzureResourceExtensionsTests.cs (7)
22Assert.False(serviceBus.Resource.IsExisting()); 36Assert.True(serviceBus.Resource.TryGetLastAnnotation<ExistingAzureResourceAnnotation>(out var existingAzureResourceAnnotation)); 57Assert.True(serviceBus.Resource.TryGetLastAnnotation<ExistingAzureResourceAnnotation>(out var existingAzureResourceAnnotation)); 75Assert.True(serviceBus.Resource.TryGetLastAnnotation<ExistingAzureResourceAnnotation>(out var existingAzureResourceAnnotation)); 96Assert.True(serviceBus.Resource.TryGetLastAnnotation<ExistingAzureResourceAnnotation>(out var existingAzureResourceAnnotation)); 116Assert.True(serviceBus.Resource.TryGetLastAnnotation<ExistingAzureResourceAnnotation>(out var existingAzureResourceAnnotation)); 134Assert.True(serviceBus.Resource.TryGetLastAnnotation<ExistingAzureResourceAnnotation>(out var existingAzureResourceAnnotation));
ExistingAzureResourceTests.cs (26)
23var (manifest, bicep) = await AzureManifestUtils.GetManifestWithBicep(serviceBus.Resource); 40var (manifest, bicep) = await AzureManifestUtils.GetManifestWithBicep(serviceBus.Resource); 57var (manifest, bicep) = await AzureManifestUtils.GetManifestWithBicep(serviceBus.Resource); 77var (manifest, bicep) = await GetManifestWithBicep(model, serviceBus.Resource); 98var (manifest, bicep) = await AzureManifestUtils.GetManifestWithBicep(serviceBus.Resource); 115var (manifest, bicep) = await AzureManifestUtils.GetManifestWithBicep(storageAccount.Resource); 130var (manifest, bicep) = await AzureManifestUtils.GetManifestWithBicep(storageAccount.Resource); 147var (manifest, bicep) = await AzureManifestUtils.GetManifestWithBicep(appConfiguration.Resource); 164var (manifest, bicep) = await AzureManifestUtils.GetManifestWithBicep(eventHubs.Resource); 181var (manifest, bicep) = await AzureManifestUtils.GetManifestWithBicep(keyVault.Resource); 198var (manifest, bicep) = await AzureManifestUtils.GetManifestWithBicep(logAnalytics.Resource); 215var (manifest, bicep) = await AzureManifestUtils.GetManifestWithBicep(postgresSql.Resource); 236var (manifest, bicep) = await AzureManifestUtils.GetManifestWithBicep(postgresSql.Resource); 253var (manifest, bicep) = await AzureManifestUtils.GetManifestWithBicep(search.Resource); 270var (manifest, bicep) = await AzureManifestUtils.GetManifestWithBicep(signalR.Resource); 287var (manifest, bicep) = await AzureManifestUtils.GetManifestWithBicep(webPubSub.Resource); 304var (manifest, bicep) = await AzureManifestUtils.GetManifestWithBicep(sqlServer.Resource); 320var (manifest, bicep) = await AzureManifestUtils.GetManifestWithBicep(sqlServer.Resource); 337var (manifest, bicep) = await AzureManifestUtils.GetManifestWithBicep(redis.Resource); 353var (manifest, bicep) = await AzureManifestUtils.GetManifestWithBicep(redis.Resource); 370var (manifest, bicep) = await AzureManifestUtils.GetManifestWithBicep(appInsights.Resource); 393var (manifest, bicep) = await AzureManifestUtils.GetManifestWithBicep(openAI.Resource); 413var (manifest, bicep) = await AzureManifestUtils.GetManifestWithBicep(cosmos.Resource); 434var (manifest, bicep) = await AzureManifestUtils.GetManifestWithBicep(cosmos.Resource); 450var (manifest, bicep) = await AzureManifestUtils.GetManifestWithBicep(acr.Resource); 467var (manifest, bicep) = await AzureManifestUtils.GetManifestWithBicep(acr.Resource);
PublicApiTests\CosmosDBPublicApiTests.cs (5)
22var parent = new AzureCosmosDBDatabaseResource("database", "cosmos-db", resource.Resource); 42var parent = new AzureCosmosDBDatabaseResource("database", "cosmos-db", resource.Resource); 62var parent = new AzureCosmosDBDatabaseResource("database", "cosmos-db", resource.Resource); 96var action = () => new AzureCosmosDBDatabaseResource(name, databaseName, parent.Resource); 114var action = () => new AzureCosmosDBDatabaseResource(name, databaseName, parent.Resource);
PublicApiTests\EventHubsPublicApiTests.cs (2)
21var parent = new AzureEventHubResource("hub", "event-hub", resource.Resource); 40var parent = new AzureEventHubResource("hub", "event-hub", resource.Resource);
ResourceWithAzureFunctionsConfigTests.cs (36)
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; 247var dbResource = cosmosResource.AddCosmosDatabase("database").Resource; 256Assert.Equal(cosmosResource.Resource.ConnectionStringExpression.ValueExpression, targetReferenceExpression.ValueExpression); 259Assert.Equal(cosmosResource.Resource.ConnectionStringExpression.ValueExpression, targetReferenceExpression.ValueExpression); 272var containerResource = cosmosResource.AddCosmosDatabase("database").AddContainer("container", "/partitionKey").Resource; 281Assert.Equal(targetReferenceExpression.ValueExpression, cosmosResource.Resource.ConnectionStringExpression.ValueExpression); 284Assert.Equal(targetReferenceExpression.ValueExpression, cosmosResource.Resource.ConnectionStringExpression.ValueExpression); 300var dbResource = cosmosResource.AddCosmosDatabase("database").Resource; 309Assert.Equal(targetReferenceExpression.ValueExpression, cosmosResource.Resource.ConnectionStringExpression.ValueExpression); 322var containerResource = cosmosResource.AddCosmosDatabase("database").AddContainer("container", "/partitionKey").Resource; 331Assert.Equal(targetReferenceExpression.ValueExpression, cosmosResource.Resource.ConnectionStringExpression.ValueExpression); 342var eventHubsResource = builder.AddAzureEventHubs("eventhubs").RunAsEmulator().Resource; 362var eventHubsResource = builder.AddAzureEventHubs("eventhubs").Resource; 382var serviceBusResource = builder.AddAzureServiceBus("servicebus").Resource; 399var queueResource = serviceBusResource.AddServiceBusQueue("ordersqueue").Resource; 418var queueResource = serviceBusResource.AddServiceBusQueue("ordersqueue").Resource; 438var topicResource = serviceBusResource.AddServiceBusTopic("notificationstopic").Resource; 457var topicResource = serviceBusResource.AddServiceBusTopic("notificationstopic").Resource; 478var subscriptionResource = topicResource.AddServiceBusSubscription("usersubscription").Resource; 500var subscriptionResource = topicResource.AddServiceBusSubscription("usersubscription").Resource; 515Assert.Equal(serviceBusResource.Resource.ConnectionStringExpression.ValueExpression, connectionStringExpression.ValueExpression);
Aspire.Hosting.Azure.WebPubSub (5)
AzureWebPubSubExtensions.cs (4)
162if (!builder.Resource.Hubs.TryGetValue(hubName, out hubResource)) 164hubResource = new AzureWebPubSubHubResource(name, hubName, builder.Resource); 165builder.Resource.Hubs[hubName] = hubResource; 218builder.Resource.EventHandlers.Add((urlExpression, userEventPattern, systemEvents, authSettings));
src\Shared\AzureRoleAssignmentUtils.cs (1)
15return builder.WithAnnotation(new RoleAssignmentAnnotation(target.Resource, CreateRoleDefinitions(roles, getName)));
Aspire.Hosting.Containers.Tests (38)
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 (3)
116var args = await ArgumentEvaluator.GetArgumentListAsync(c2.Resource); 125Assert.False(c2.Resource.TryGetAnnotationsOfType<ResourceRelationshipAnnotation>(out var relationships)); 127var 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.Docker (3)
DockerComposeEnvironmentExtensions.cs (2)
53configure(builder.Resource); 69builder.Resource.ConfigureComposeFile += configure;
DockerComposeServiceExtensions.cs (1)
80return builder.Resource.AsEnvironmentPlaceholder(dockerComposeService);
Aspire.Hosting.Docker.Tests (4)
DockerComposePublisherTests.cs (2)
58.WithArgs("--cs", cs.Resource) 236var parmeters = paramNames.Select(name => builder.AddParameter(name).Resource).ToArray();
DockerComposeTests.cs (2)
28Assert.Same(composeEnv.Resource, container.Resource.GetDeploymentTargetAnnotation()?.ComputeEnvironment);
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)
41await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running, cts.Token); 43await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting, cts.Token); 47await app.ResourceNotifications.WaitForResourceHealthyAsync(resource.Resource.Name, cts.Token); 49await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running, cts.Token); 75hb.Configuration[$"ConnectionStrings:{garnet.Resource.Name}"] = await garnet.Resource.ConnectionStringExpression.GetValueAsync(default); 77hb.AddRedisClient(garnet.Resource.Name); 154hb.Configuration[$"ConnectionStrings:{garnet1.Resource.Name}"] = $"{await garnet1.Resource.ConnectionStringExpression.GetValueAsync(default)}"; 205hb.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)
42await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 44await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 48await app.ResourceNotifications.WaitForResourceHealthyAsync(resource.Resource.Name).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 50await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 73hb.Configuration[$"ConnectionStrings:{kafka.Resource.Name}"] = await kafka.Resource.ConnectionStringExpression.GetValueAsync(default); 167hb.Configuration[$"ConnectionStrings:{kafka1.Resource.Name}"] = await kafka1.Resource.ConnectionStringExpression.GetValueAsync(default); 219hb.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.Kubernetes (1)
KubernetesEnvironmentExtensions.cs (1)
52configure(builder.Resource);
Aspire.Hosting.Kubernetes.Tests (1)
KubernetesPublisherTests.cs (1)
35.WithArgs("--cs", cs.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)
31await app.WaitForTextAsync("Milvus Proxy successfully initialized and ready to serve", milvus.Resource.Name); 35hb.Configuration[$"ConnectionStrings:{db.Resource.Name}"] = await db.Resource.ConnectionStringExpression.GetValueAsync(default); 37hb.AddMilvusClient(db.Resource.Name); 80var password = milvus1.Resource.ApiKeyParameter.Value; 105await app.WaitForTextAsync("Milvus Proxy successfully initialized and ready to serve", milvus1.Resource.Name); 111hb.Configuration[$"ConnectionStrings:{db1.Resource.Name}"] = await db1.Resource.ConnectionStringExpression.GetValueAsync(default); 113hb.AddMilvusClient(db1.Resource.Name); 152await app.WaitForTextAsync("Milvus Proxy successfully initialized and ready to serve", milvus2.Resource.Name); 158hb.Configuration[$"ConnectionStrings:{db2.Resource.Name}"] = await db2.Resource.ConnectionStringExpression.GetValueAsync(default); 160hb.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)
53await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running, cts.Token); 55await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting, cts.Token); 59await app.ResourceNotifications.WaitForResourceHealthyAsync(resource.Resource.Name, cts.Token); 61await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running, cts.Token); 86hb.Configuration[$"ConnectionStrings:{db.Resource.Name}"] = await db.Resource.ConnectionStringExpression.GetValueAsync(default); 88hb.AddMongoDBClient(db.Resource.Name); 121var password = mongodb1.Resource.PasswordParameter!.Value; 148hb.Configuration[$"ConnectionStrings:{db1.Resource.Name}"] = await db1.Resource.ConnectionStringExpression.GetValueAsync(default); 150hb.AddMongoDBClient(db1.Resource.Name); 194hb.Configuration[$"ConnectionStrings:{db2.Resource.Name}"] = await db2.Resource.ConnectionStringExpression.GetValueAsync(default); 196hb.AddMongoDBClient(db2.Resource.Name); 304hb.Configuration[$"ConnectionStrings:{db.Resource.Name}"] = await db.Resource.ConnectionStringExpression.GetValueAsync(default); 306hb.AddMongoDBClient(db.Resource.Name);
Aspire.Hosting.MySql (5)
MySqlBuilderExtensions.cs (5)
37var passwordParameter = password?.Resource ?? ParameterResourceBuilderExtensions.CreateDefaultPasswordParameter(builder, $"{name}-password"); 103var mySqlDatabase = new MySqlDatabaseResource(name, databaseName, builder.Resource); 105builder.Resource.AddDatabase(mySqlDatabase); 197containerName ??= $"{builder.Resource.Name}-phpmyadmin"; 238var configStoreFilename = aspireStore.GetFileNameWithContent($"{builder.Resource.Name}-config.user.inc.php", tempConfigFile);
Aspire.Hosting.MySql.Tests (58)
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 (37)
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(cts.Token) 237hb.AddMySqlDataSource(db2.Resource.Name); 335[$"ConnectionStrings:{db.Resource.Name}"] = await db.Resource.ConnectionStringExpression.GetValueAsync(cts.Token) 338hb.AddMySqlDataSource(db.Resource.Name); 405[$"ConnectionStrings:{db.Resource.Name}"] = await db.Resource.ConnectionStringExpression.GetValueAsync(cts.Token) 408hb.AddMySqlDbContext<TestDbContext>(db.Resource.Name); 568hb.Configuration[$"ConnectionStrings:{newDb.Resource.Name}"] = await newDb.Resource.ConnectionStringExpression.GetValueAsync(default); 570hb.AddMySqlDataSource(newDb.Resource.Name); 576await app.ResourceNotifications.WaitForResourceHealthyAsync(newDb.Resource.Name, cts.Token); 643hb.Configuration[$"ConnectionStrings:{newDb.Resource.Name}"] = await newDb.Resource.ConnectionStringExpression.GetValueAsync(default); 645hb.AddMySqlDataSource(newDb.Resource.Name); 651await app.ResourceNotifications.WaitForResourceHealthyAsync(mysql.Resource.Name, cts.Token); 702hb.Configuration[$"ConnectionStrings:{db.Resource.Name}"] = await db.Resource.ConnectionStringExpression.GetValueAsync(default); 703hb.AddKeyedMySqlDataSource(db.Resource.Name); 712await app.ResourceNotifications.WaitForResourceHealthyAsync(db.Resource.Name, cts.Token); 714var conn = host.Services.GetRequiredKeyedService<MySqlConnection>(db.Resource.Name); 744hb.Configuration[$"ConnectionStrings:{newDb.Resource.Name}"] = await newDb.Resource.ConnectionStringExpression.GetValueAsync(default); 745hb.AddMySqlDataSource(newDb.Resource.Name); 750await app.ResourceNotifications.WaitForResourceHealthyAsync(newDb.Resource.Name, cts.Token);
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)
36await app.WaitForTextAsync("Listening for client connections", nats.Resource.Name); 40hb.Configuration[$"ConnectionStrings:{nats.Resource.Name}"] = await nats.Resource.ConnectionStringExpression.GetValueAsync(default); 81await app.WaitForTextAsync("Listening for client connections", nats.Resource.Name); 85var connectionString = await nats.Resource.ConnectionStringExpression.GetValueAsync(default); 86hb.Configuration[$"ConnectionStrings:{nats.Resource.Name}"] = connectionString; 123await app.WaitForTextAsync("Listening for client connections", nats.Resource.Name); 127var connectionString = await nats.Resource.ConnectionStringExpression.GetValueAsync(default); 132hb.Configuration[$"ConnectionStrings:{nats.Resource.Name}"] = modifiedConnectionString; 185await app.WaitForTextAsync("Listening for client connections", nats1.Resource.Name); 190hb.Configuration[$"ConnectionStrings:{nats1.Resource.Name}"] = await nats1.Resource.ConnectionStringExpression.GetValueAsync(default); 233await app.WaitForTextAsync("Listening for client connections", nats2.Resource.Name); 238hb.Configuration[$"ConnectionStrings:{nats2.Resource.Name}"] = await nats2.Resource.ConnectionStringExpression.GetValueAsync(default); 343await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running, cts.Token); 345await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting, cts.Token); 349await app.ResourceNotifications.WaitForResourceHealthyAsync(resource.Resource.Name, cts.Token); 351await 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); 49manifest = 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)
51hb.Configuration[$"ConnectionStrings:{db.Resource.Name}"] = await db.Resource.ConnectionStringExpression.GetValueAsync(default); 53hb.AddOracleDatabaseDbContext<TestDbContext>(db.Resource.Name); 98var password = oracle1.Resource.PasswordParameter.Value; 134hb.Configuration[$"ConnectionStrings:{db1.Resource.Name}"] = await db1.Resource.ConnectionStringExpression.GetValueAsync(default); 136hb.AddOracleDatabaseDbContext<TestDbContext>(db1.Resource.Name); 194hb.Configuration[$"ConnectionStrings:{db2.Resource.Name}"] = await db2.Resource.ConnectionStringExpression.GetValueAsync(default); 196hb.AddOracleDatabaseDbContext<TestDbContext>(db2.Resource.Name); 308hb.Configuration[$"ConnectionStrings:{db.Resource.Name}"] = await db.Resource.ConnectionStringExpression.GetValueAsync(default); 310hb.AddOracleDatabaseDbContext<TestDbContext>(db.Resource.Name); 371await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running, cts.Token); 373await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting, cts.Token); 377await app.ResourceNotifications.WaitForResourceHealthyAsync(resource.Resource.Name, cts.Token); 379await 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 (12)
PostgresBuilderExtensions.cs (12)
50var passwordParameter = password?.Resource ?? ParameterResourceBuilderExtensions.CreateDefaultPasswordParameter(builder, $"{name}-password"); 52var postgresServer = new PostgresServerResource(name, userName?.Resource, passwordParameter); 146var postgresDatabase = new PostgresDatabaseResource(name, databaseName, builder.Resource); 148builder.Resource.AddDatabase(postgresDatabase.Name, postgresDatabase.DatabaseName); 193containerName ??= $"{builder.Resource.Name}-pgadmin"; 222pgAdminContainerBuilder.WithRelationship(builder.Resource, "PgAdmin"); 297containerName ??= $"{builder.Resource.Name}-pgweb"; 309pgwebContainerBuilder.WithRelationship(builder.Resource, "PgWeb"); 438builder.Resource.PasswordParameter = password.Resource; 453builder.Resource.UserNameParameter = userName.Resource;
Aspire.Hosting.PostgreSQL.Tests (71)
AddPostgresTests.cs (27)
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); 493Assert.Equal(pg1.Resource.Name, servers.GetProperty("1").GetProperty("Name").GetString()); 500Assert.Equal($"echo '{pg1.Resource.PasswordParameter.Value}'", servers.GetProperty("1").GetProperty("PasswordExecCommand").GetString()); 503Assert.Equal(pg2.Resource.Name, servers.GetProperty("2").GetProperty("Name").GetString()); 510Assert.Equal($"echo '{pg2.Resource.PasswordParameter.Value}'", servers.GetProperty("2").GetProperty("PasswordExecCommand").GetString()); 568Assert.Equal(CreatePgWebBookmarkfileContent(db1.Resource), file.Contents); 575Assert.Equal(CreatePgWebBookmarkfileContent(db2.Resource), file.Contents); 621Assert.Equal("customers1", db1.Resource.DatabaseName); 622Assert.Equal("customers2", db2.Resource.DatabaseName); 624Assert.Equal("{postgres1.connectionString};Database=customers1", db1.Resource.ConnectionStringExpression.ValueExpression); 625Assert.Equal("{postgres1.connectionString};Database=customers2", db2.Resource.ConnectionStringExpression.ValueExpression); 639Assert.Equal("imports", db1.Resource.DatabaseName); 640Assert.Equal("imports", db2.Resource.DatabaseName); 642Assert.Equal("{postgres1.connectionString};Database=imports", db1.Resource.ConnectionStringExpression.ValueExpression); 643Assert.Equal("{postgres2.connectionString};Database=imports", db2.Resource.ConnectionStringExpression.ValueExpression); 686var connectionString = await postgres.Resource.GetConnectionStringAsync(); 700var connectionString = await postgres.Resource.GetConnectionStringAsync(); 701Assert.Equal($"Host=localhost;Port=2000;Username=user1;Password={postgres.Resource.PasswordParameter.Value}", connectionString);
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 (41)
53await app.ResourceNotifications.WaitForResourceAsync(postgres.Resource.Name, KnownResourceStates.Running).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 56await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 62await app.ResourceNotifications.WaitForResourceHealthyAsync(postgres.Resource.Name).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 65await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 87await app.WaitForTextAsync("Listening at", resourceName: adminBuilder.Resource.Name); 89var client = app.CreateHttpClient(adminBuilder.Resource.Name, "http"); 120[$"ConnectionStrings:{db.Resource.Name}"] = await db.Resource.ConnectionStringExpression.GetValueAsync(default) 123hb.AddNpgsqlDataSource(db.Resource.Name); 129await app.ResourceNotifications.WaitForResourceHealthyAsync(postgres.Resource.Name, cts.Token); 166var client = app.CreateHttpClient(pgWebBuilder.Resource.Name, "http"); 168await app.ResourceNotifications.WaitForResourceHealthyAsync(pgWebBuilder.Resource.Name).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 234await app.ResourceNotifications.WaitForResourceHealthyAsync(db1.Resource.Name, cts.Token); 242[$"ConnectionStrings:{db1.Resource.Name}"] = await db1.Resource.ConnectionStringExpression.GetValueAsync(default) 245hb.AddNpgsqlDataSource(db1.Resource.Name); 296await app.ResourceNotifications.WaitForResourceHealthyAsync(db2.Resource.Name, cts.Token); 304[$"ConnectionStrings:{db2.Resource.Name}"] = await db2.Resource.ConnectionStringExpression.GetValueAsync(default) 307hb.AddNpgsqlDataSource(db2.Resource.Name); 396[$"ConnectionStrings:{db.Resource.Name}"] = await db.Resource.ConnectionStringExpression.GetValueAsync(default) 399hb.AddNpgsqlDataSource(db.Resource.Name); 405await app.ResourceNotifications.WaitForResourceHealthyAsync(db.Resource.Name, cts.Token); 529hb.Configuration[$"ConnectionStrings:{newDb.Resource.Name}"] = await newDb.Resource.ConnectionStringExpression.GetValueAsync(default); 531hb.AddNpgsqlDataSource(newDb.Resource.Name); 537await app.ResourceNotifications.WaitForResourceHealthyAsync(newDb.Resource.Name, cts.Token); 570hb.Configuration[$"ConnectionStrings:{newDb.Resource.Name}"] = await newDb.Resource.ConnectionStringExpression.GetValueAsync(default); 572hb.AddNpgsqlDataSource(newDb.Resource.Name); 578await app.ResourceNotifications.WaitForResourceHealthyAsync(newDb.Resource.Name, cts.Token); 639hb.Configuration[$"ConnectionStrings:{newDb.Resource.Name}"] = await newDb.Resource.ConnectionStringExpression.GetValueAsync(default); 641hb.AddNpgsqlDataSource(newDb.Resource.Name); 647await app.ResourceNotifications.WaitForResourceHealthyAsync(postgres.Resource.Name, cts.Token); 698hb.Configuration[$"ConnectionStrings:{db.Resource.Name}"] = await db.Resource.ConnectionStringExpression.GetValueAsync(default); 699hb.AddKeyedNpgsqlDataSource(db.Resource.Name); 708await app.ResourceNotifications.WaitForResourceHealthyAsync(db.Resource.Name, cts.Token); 710var conn = host.Services.GetRequiredKeyedService<NpgsqlConnection>(db.Resource.Name);
Aspire.Hosting.Python.Tests (3)
AddPythonAppTests.cs (3)
35var manifest = await ManifestUtils.GetManifest(pyproj.Resource, manifestDirectory: projectDirectory); 67var manifest = await ManifestUtils.GetManifest(pyproj.Resource, manifestDirectory: projectDirectory); 126var environmentVariables = await pyproj.Resource.GetEnvironmentVariableValuesAsync(DistributedApplicationOperation.Run);
Aspire.Hosting.Qdrant (5)
QdrantBuilderExtensions.cs (5)
46var apiKeyParameter = apiKey?.Resource ?? 145context.EnvironmentVariables[$"ConnectionStrings__{qdrantResource.Resource.Name}"] = qdrantResource.Resource.ConnectionStringExpression; 148context.EnvironmentVariables[$"ConnectionStrings__{qdrantResource.Resource.Name}_{QdrantServerResource.HttpEndpointName}"] = qdrantResource.Resource.HttpConnectionStringExpression;
Aspire.Hosting.Qdrant.Tests (21)
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 (14)
45[$"ConnectionStrings:{qdrant.Resource.Name}"] = await qdrant.Resource.ConnectionStringExpression.GetValueAsync(default) 48hb.AddQdrantClient(qdrant.Resource.Name); 130[$"ConnectionStrings:{qdrant1.Resource.Name}"] = await qdrant1.Resource.ConnectionStringExpression.GetValueAsync(default) 133hb.AddQdrantClient(qdrant1.Resource.Name); 175[$"ConnectionStrings:{qdrant2.Resource.Name}"] = await qdrant2.Resource.ConnectionStringExpression.GetValueAsync(default) 178hb.AddQdrantClient(qdrant2.Resource.Name); 241var urls = qdrant.Resource.Annotations.OfType<ResourceUrlAnnotation>(); 272await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running, cts.Token); 274await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting, cts.Token); 278await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, (re => re.Snapshot.HealthStatus == HealthStatus.Healthy), cts.Token); 280await 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(); 211throw 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."); 265var 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); 208var manifest = await ManifestUtils.GetManifest(rabbit.Resource); 254var manifest = await ManifestUtils.GetManifest(rabbit.Resource); 278manifest = await ManifestUtils.GetManifest(rabbit.Resource); 302manifest = await ManifestUtils.GetManifest(rabbit.Resource);
RabbitMQFunctionalTests.cs (14)
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); 71hb.Configuration[$"ConnectionStrings:{rabbitMQ.Resource.Name}"] = await rabbitMQ.Resource.ConnectionStringExpression.GetValueAsync(default); 72hb.AddRabbitMQClient(rabbitMQ.Resource.Name); 108var password = rabbitMQ1.Resource.PasswordParameter.Value; 132hb.Configuration[$"ConnectionStrings:{rabbitMQ1.Resource.Name}"] = await rabbitMQ1.Resource.ConnectionStringExpression.GetValueAsync(default); 134hb.AddRabbitMQClient(rabbitMQ1.Resource.Name); 189hb.Configuration[$"ConnectionStrings:{rabbitMQ2.Resource.Name}"] = await rabbitMQ2.Resource.ConnectionStringExpression.GetValueAsync(default); 191hb.AddRabbitMQClient(rabbitMQ2.Resource.Name);
Aspire.Hosting.Redis (7)
RedisBuilderExtensions.cs (7)
68var passwordParameter = password?.Resource ?? ParameterResourceBuilderExtensions.CreateDefaultPasswordParameter(builder, $"{name}-password", special: false); 152containerName ??= $"{builder.Resource.Name}-commander"; 195resourceBuilder.WithRelationship(builder.Resource, "RedisCommander"); 223containerName ??= $"{builder.Resource.Name}-insight"; 256.WithRelationship(builder.Resource, "RedisInsight") 427builder.Resource.SetPassword(password.Resource);
Aspire.Hosting.Redis.Tests (63)
AddRedisTests.cs (22)
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); 278Assert.Equal(redis1.Resource.Name, item.Value); 283Assert.Equal($"{redis1.Resource.PrimaryEndpoint.TargetPort!.Value}", item.Value); 288Assert.Equal(redis1.Resource.Name, item.Value); 293Assert.Equal(redis1.Resource.PasswordParameter!.Value, item.Value); 298Assert.Equal(redis2.Resource.Name, item.Value); 303Assert.Equal($"{redis2.Resource.PrimaryEndpoint.TargetPort!.Value}", item.Value); 308Assert.Equal(redis2.Resource.Name, item.Value); 313Assert.Equal(redis2.Resource.PasswordParameter!.Value, item.Value); 435Assert.Equal($"myredis1:{redis.Resource.Name}:6379:0:{redis.Resource.PasswordParameter?.Value}", config["REDIS_HOSTS"]); 456Assert.Equal($"myredis1:{redis.Resource.Name}:6379:0:{password}", config["REDIS_HOSTS"]); 480Assert.Equal($"myredis1:{redis1.Resource.Name}:6379:0:{redis1.Resource.PasswordParameter?.Value},myredis2:myredis2:6379:0:{redis2.Resource.PasswordParameter?.Value}", config["REDIS_HOSTS"]); 500var volumeAnnotation = redis.Resource.Annotations.OfType<ContainerMountAnnotation>().Single(); 525var volumeAnnotation = redis.Resource.Annotations.OfType<ContainerMountAnnotation>().Single(); 595var args = await ArgumentEvaluator.GetArgumentListAsync(builder.Resource); 606Assert.True(redis.Resource.TryGetAnnotationsOfType<CommandLineArgsCallbackAnnotation>(out var argsAnnotations));
RedisFunctionalTests.cs (41)
52await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running, cts.Token); 54await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting, cts.Token); 58await app.ResourceNotifications.WaitForResourceHealthyAsync(resource.Resource.Name, cts.Token); 60await app.ResourceNotifications.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Running, cts.Token); 81await app.WaitForTextAsync("Redis Connection", resourceName: commanderBuilder.Resource.Name); 83var client = app.CreateHttpClient(commanderBuilder.Resource.Name, "http"); 86var path = $"/apiv2/server/R:{redis.Resource.Name}:{endpoint.TargetPort}:0/info"; 107[$"ConnectionStrings:{redis.Resource.Name}"] = await redis.Resource.GetConnectionStringAsync() 110hb.AddRedisClient(redis.Resource.Name); 145await rns.WaitForResourceAsync(redisInsightBuilder.Resource.Name, KnownResourceStates.Running).WaitAsync(cts.Token); 147var client = app.CreateHttpClient(redisInsightBuilder.Resource.Name, "http"); 163Assert.Equal(redis1.Resource.Name, db.Name); 164Assert.Equal(redis1.Resource.Name, db.Host); 165Assert.Equal(redis1.Resource.PrimaryEndpoint.TargetPort, db.Port); 169Assert.Equal(redis2.Resource.Name, db.Name); 170Assert.Equal(redis2.Resource.Name, db.Host); 171Assert.Equal(redis2.Resource.PrimaryEndpoint.TargetPort, db.Port); 206[$"ConnectionStrings:{redis1.Resource.Name}"] = $"{await redis1.Resource.GetConnectionStringAsync()},allowAdmin=true" 209hb.AddRedisClient(redis1.Resource.Name); 242[$"ConnectionStrings:{redis2.Resource.Name}"] = await redis2.Resource.GetConnectionStringAsync() 245hb.AddRedisClient(redis2.Resource.Name); 289[$"ConnectionStrings:{redis1.Resource.Name}"] = $"{await redis1.Resource.GetConnectionStringAsync()},allowAdmin=true" 292hb.AddRedisClient(redis1.Resource.Name); 324[$"ConnectionStrings:{redis2.Resource.Name}"] = await redis2.Resource.GetConnectionStringAsync() 327hb.AddRedisClient(redis2.Resource.Name); 373[$"ConnectionStrings:{redis1.Resource.Name}"] = $"{await redis1.Resource.GetConnectionStringAsync()},allowAdmin=true" 376hb.AddRedisClient(redis1.Resource.Name); 403[$"ConnectionStrings:{redis2.Resource.Name}"] = await redis2.Resource.GetConnectionStringAsync() 406hb.AddRedisClient(redis2.Resource.Name); 471await rns.WaitForResourceAsync(redisInsightBuilder1.Resource.Name, KnownResourceStates.Running).WaitAsync(cts.Token); 475var httpClient = app.CreateHttpClient(redisInsightBuilder1.Resource.Name, "http"); 506await rns.WaitForResourceAsync(redisInsightBuilder2.Resource.Name, KnownResourceStates.Running).WaitAsync(cts.Token); 510var httpClient = app.CreateHttpClient(redisInsightBuilder2.Resource.Name, "http"); 609await 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)
27await app.WaitForTextAsync("Seq listening on", seq.Resource.Name); 29var seqUrl = await seq.Resource.ConnectionStringExpression.GetValueAsync(default); 102await app.WaitForTextAsync("Seq listening on", seq1.Resource.Name); 106var seqUrl = await seq1.Resource.ConnectionStringExpression.GetValueAsync(default); 138await app.WaitForTextAsync("Seq listening on", seq2.Resource.Name); 142var seqUrl = await seq2.Resource.ConnectionStringExpression.GetValueAsync(default);
Aspire.Hosting.SqlServer (5)
SqlServerBuilderExtensions.cs (5)
42var passwordParameter = password?.Resource ?? ParameterResourceBuilderExtensions.CreateDefaultPasswordParameter(builder, $"{name}-password", minLower: 1, minUpper: 1, minNumeric: 1); 109var sqlServerDatabase = new SqlServerDatabaseResource(name, databaseName, builder.Resource); 111builder.Resource.AddDatabase(sqlServerDatabase); 214builder.Resource.SetPassword(password.Resource);
Aspire.Hosting.SqlServer.Tests (47)
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};Initial Catalog=customers1", db1.Resource.ConnectionStringExpression.ValueExpression); 232Assert.Equal("{sqlserver1.connectionString};Initial Catalog=customers2", db2.Resource.ConnectionStringExpression.ValueExpression); 246Assert.Equal("imports", db1.Resource.DatabaseName); 247Assert.Equal("imports", db2.Resource.DatabaseName); 249Assert.Equal("{sqlserver1.connectionString};Initial Catalog=imports", db1.Resource.ConnectionStringExpression.ValueExpression); 250Assert.Equal("{sqlserver2.connectionString};Initial Catalog=imports", db2.Resource.ConnectionStringExpression.ValueExpression);
SqlServerFunctionalTests.cs (34)
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); 81hb.Configuration[$"ConnectionStrings:{newDb.Resource.Name}"] = await newDb.Resource.ConnectionStringExpression.GetValueAsync(default); 83hb.AddSqlServerDbContext<TestDbContext>(newDb.Resource.Name); 84hb.AddSqlServerClient(newDb.Resource.Name); 142var password = sqlserver1.Resource.PasswordParameter.Value; 179await app1.ResourceNotifications.WaitForResourceHealthyAsync(db1.Resource.Name, cts.Token); 187[$"ConnectionStrings:{db1.Resource.Name}"] = await db1.Resource.ConnectionStringExpression.GetValueAsync(default), 190hb1.AddSqlServerClient(db1.Resource.Name); 264await app2.ResourceNotifications.WaitForResourceHealthyAsync(db2.Resource.Name, cts.Token); 272[$"ConnectionStrings:{db2.Resource.Name}"] = await db2.Resource.ConnectionStringExpression.GetValueAsync(default), 275hb2.AddSqlServerClient(db2.Resource.Name); 368hb.Configuration[$"ConnectionStrings:{newDb.Resource.Name}"] = await newDb.Resource.ConnectionStringExpression.GetValueAsync(default); 370hb.AddSqlServerClient(newDb.Resource.Name); 376await app.ResourceNotifications.WaitForResourceHealthyAsync(newDb.Resource.Name, cts.Token); 421hb.Configuration[$"ConnectionStrings:{newDb.Resource.Name}"] = await newDb.Resource.ConnectionStringExpression.GetValueAsync(default); 423hb.AddSqlServerClient(newDb.Resource.Name); 429await app.ResourceNotifications.WaitForResourceHealthyAsync(newDb.Resource.Name, cts.Token); 493hb.Configuration[$"ConnectionStrings:{newDb.Resource.Name}"] = await newDb.Resource.ConnectionStringExpression.GetValueAsync(default); 495hb.AddSqlServerClient(newDb.Resource.Name); 501await app.ResourceNotifications.WaitForResourceHealthyAsync(sqlserver.Resource.Name, cts.Token); 553hb.Configuration[$"ConnectionStrings:{db.Resource.Name}"] = await db.Resource.ConnectionStringExpression.GetValueAsync(default); 554hb.AddKeyedSqlServerClient(db.Resource.Name); 563await app.ResourceNotifications.WaitForResourceHealthyAsync(db.Resource.Name, cts.Token); 565var conn = host.Services.GetRequiredKeyedService<SqlConnection>(db.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 (285)
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)
108Assert.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 (12)
386using var clientA = app.CreateHttpClient(testProgram.ServiceABuilder.Resource.Name, "http"); 387using var clientC = app.CreateHttpClient(testProgram.ServiceCBuilder.Resource.Name, "http"); 394var uri = app.GetEndpoint(testProgram.ServiceBBuilder.Resource.Name, "http"); 1007await app.WaitForTextAsync("Content root path:", resourceName: testProgram.ServiceABuilder.Resource.Name).DefaultTimeout(TestConstants.LongTimeoutDuration); 1010var httpEndPoint = app.GetEndpoint(testProgram.ServiceABuilder.Resource.Name, endpointName: "http"); 1028var httpsEndpoint = app.GetEndpoint(testProgram.ServiceABuilder.Resource.Name, endpointName: "https"); 1076using var clientA = app.CreateHttpClient(servicea.Resource.Name, "http"); 1084Assert.Equal($"localhost:1234,password={redis.Resource.PasswordParameter?.Value}", env.Value); 1091Assert.Equal($"localhost:6379,password={redisNoPort.Resource.PasswordParameter?.Value}", otherRedisEnv.Value); 1126using var clientA = app.CreateHttpClient(servicea.Resource.Name, "http"); 1138Assert.Equal($"localhost:1234,password={redis.Resource.PasswordParameter!.Value}", env.Value); 1145Assert.Equal($"localhost:6379,password={redisNoPort.Resource.PasswordParameter!.Value}", otherRedisEnv.Value);
Eventing\DistributedApplicationBuilderEventingTests.cs (1)
182builder.Eventing.Subscribe<BeforeResourceStartedEvent>(redis.Resource, (e, ct) =>
ExecutableResourceTests.cs (3)
39var args = await ArgumentEvaluator.GetArgumentListAsync(exe2.Resource).DefaultTimeout(); 51Assert.True(exe2.Resource.TryGetAnnotationsOfType<ResourceRelationshipAnnotation>(out var relationships)); 61var manifest = await ManifestUtils.GetManifest(exe2.Resource).DefaultTimeout();
ExpressionResolverTests.cs (5)
98var csRef = new ConnectionStringReference(target.Resource, false); 110var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(source.Resource, DistributedApplicationOperation.Run, TestServiceProvider.Instance, "ContainerHostName").DefaultTimeout(); 144var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(test.Resource, DistributedApplicationOperation.Run, TestServiceProvider.Instance, "ContainerHostName").DefaultTimeout(); 163var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(test.Resource, DistributedApplicationOperation.Run, TestServiceProvider.Instance, "ContainerHostName").DefaultTimeout(); 184var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(dep.Resource, DistributedApplicationOperation.Run, TestServiceProvider.Instance, "ContainerHostName").DefaultTimeout();
Health\ResourceHealthCheckServiceTests.cs (28)
73await app.ResourceNotifications.PublishUpdateAsync(resource.Resource, s => s with 81await app.ResourceNotifications.PublishUpdateAsync(resource.Resource, s => s with 116await app.ResourceNotifications.PublishUpdateAsync(resource.Resource, s => s with 124await app.ResourceNotifications.PublishUpdateAsync(resource.Resource, s => s with 152builder.Eventing.Subscribe<ResourceReadyEvent>(resource.Resource, (@event, ct) => 164await app.ResourceNotifications.PublishUpdateAsync(resource.Resource, s => s with 173Assert.Equal(resource.Resource, e1.Resource); 179await app.ResourceNotifications.PublishUpdateAsync(resource.Resource, s => s with 187await app.ResourceNotifications.PublishUpdateAsync(resource.Resource, s => s with 201Assert.Equal(resource.Resource, e2.Resource); 230await app.ResourceNotifications.PublishUpdateAsync(resource.Resource, s => s with 234await app.ResourceNotifications.WaitForResourceHealthyAsync(resource.Resource.Name, abortTokenSource.Token).DefaultTimeout(); 271await app.ResourceNotifications.PublishUpdateAsync(resource.Resource, s => s with 314await app.ResourceNotifications.PublishUpdateAsync(resource.Resource, s => s with 318await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running, abortTokenSource.Token).DefaultTimeout(); 381await app.ResourceNotifications.PublishUpdateAsync(resource.Resource, s => s with 419builder.Eventing.Subscribe<ResourceReadyEvent>(parent.Resource, (@event, ct) => 444await app.ResourceNotifications.PublishUpdateAsync(parent.Resource, s => s with 478builder.Eventing.Subscribe<ResourceReadyEvent>(parent.Resource, (@event, ct) => 490await app.ResourceNotifications.PublishUpdateAsync(parent.Resource, s => s with 523builder.Eventing.Subscribe<ResourceReadyEvent>(parent.Resource, (@event, ct) => 529var child = builder.AddResource(new ChildResource("child", parent.Resource)); 542await app.ResourceNotifications.PublishUpdateAsync(parent.Resource, s => s with 556Assert.Equal(parentReadyEvent.Resource, parent.Resource); 586await app.ResourceNotifications.PublishUpdateAsync(resource.Resource, s => s with 594await app.ResourceNotifications.PublishUpdateAsync(resource.Resource, s => s with 632await app.ResourceNotifications.PublishUpdateAsync(resource.Resource, s => s with 640await app.ResourceNotifications.PublishUpdateAsync(resource.Resource, s => s with
HealthCheckTests.cs (4)
104await rns.WaitForResourceAsync(resource.Resource.Name, KnownResourceStates.Running).DefaultTimeout(TestConstants.DefaultOrchestratorTestLongTimeout); 106await rns.WaitForResourceAsync(dependentResource.Resource.Name, KnownResourceStates.Waiting).DefaultTimeout(TestConstants.DefaultOrchestratorTestLongTimeout); 110await rns.WaitForResourceHealthyAsync(resource.Resource.Name).DefaultTimeout(TestConstants.DefaultOrchestratorTestLongTimeout); 112await 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 (23)
24var childResource = builder.AddResource(new CustomChildResource("child", parentResource.Resource)); 41if (item.Resource == parentResource.Resource) 45else if (item.Resource == childResource.Resource) 88if (item.Resource == parentResource.Resource) 92else if (item.Resource == childResource.Resource) 127applicationEventing.Subscribe<InitializeResourceEvent>(resource.Resource, (@event, ct) => 145Assert.Equal(resource.Resource, initEvent.Resource); 179if (item.Resource == parent.Resource) 183else if (item.Resource == child.Resource) 188else if (item.Resource == nestedChild.Resource) 192else if (item.Resource == child2.Resource) 244if (item.Resource == firstParent.Resource) 248else if (item.Resource == secondParent.Resource) 252else if (item.Resource == child.Resource) 295if (item.Resource == projectA.Resource) 299else if (item.Resource == projectB.Resource) 344new ChildResourceWithConnectionString("child", new Dictionary<string, string> { {"Namespace", "ns"} }, parentResource.Resource) 347new ChildResourceWithConnectionString("grand-child", new Dictionary<string, string> { {"Database", "db"} }, childResource.Resource) 364applicationEventing.Subscribe<ConnectionStringAvailableEvent>(parentResource.Resource, (_, _) => 369applicationEventing.Subscribe<ConnectionStringAvailableEvent>(childResource.Resource, (_, _) => 374applicationEventing.Subscribe<ConnectionStringAvailableEvent>(grandChildResource.Resource, (_, _) => 380await events.PublishAsync(new OnResourceStartingContext(CancellationToken.None, KnownResourceTypes.Container, parentResource.Resource, parentResource.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 (2)
592var args = await ArgumentEvaluator.GetArgumentListAsync(project.Resource).DefaultTimeout(); 599Assert.False(project.Resource.TryGetAnnotationsOfType<ResourceRelationshipAnnotation>(out var relationships));
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(); 233var manifest = await ManifestUtils.GetManifest(project.Resource, manifestDirectory: path).DefaultTimeout();
Publishing\ResourceContainerImageBuilderTests.cs (2)
29await imageBuilder.BuildImageAsync(servicea.Resource, cts.Token); 45await imageBuilder.BuildImageAsync(servicea.Resource, cts.Token);
ResourceCommandAnnotationTests.cs (2)
51resourceBuilder.Resource.AddLifeCycleCommands(); 53var startCommand = resourceBuilder.Resource.Annotations.OfType<ResourceCommandAnnotation>().Single(a => a.Name == commandName);
ResourceExtensionsTests.cs (14)
152Assert.True(container.Resource.TryGetContainerImageName(out var imageName)); 162Assert.True(container.Resource.TryGetContainerImageName(out var imageName)); 180var env = await container.Resource.GetEnvironmentVariableValuesAsync().DefaultTimeout(); 213var env = await container.Resource.GetEnvironmentVariableValuesAsync().DefaultTimeout(); 246var env = await container.Resource.GetEnvironmentVariableValuesAsync(DistributedApplicationOperation.Publish).DefaultTimeout(); 278.Resource.GetArgumentValuesAsync().DefaultTimeout(); 290.Resource.GetArgumentValuesAsync().DefaultTimeout(); 306.WithAnnotation(new DeploymentTargetAnnotation(compute1.Resource) { ComputeEnvironment = compute1.Resource }) 307.WithAnnotation(new DeploymentTargetAnnotation(compute2.Resource) { ComputeEnvironment = compute2.Resource }); 309var ex = Assert.Throws<InvalidOperationException>(() => resourceBuilder.Resource.GetDeploymentTargetAnnotation()); 314Assert.Equal(compute2.Resource, resourceBuilder.Resource.GetDeploymentTargetAnnotation()!.ComputeEnvironment);
ResourceNotificationTests.cs (1)
29var annotation = custom.Resource.Annotations.OfType<ResourceSnapshotAnnotation>().SingleOrDefault();
SlimTestProgramTests.cs (5)
34using var clientA = app.CreateHttpClientWithResilience(testProgram.ServiceABuilder.Resource.Name, "http"); 37using var clientB = app.CreateHttpClientWithResilience(testProgram.ServiceBBuilder.Resource.Name, "http"); 40using var clientC = app.CreateHttpClientWithResilience(testProgram.ServiceCBuilder.Resource.Name, "http"); 56var endpoint = projectBuilders.Resource.Annotations.OfType<EndpointAnnotation>().Single(); 74var 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 (3)
23Assert.Equal($"{volumePrefix}-{resource.Resource.Name}-data", volumeName); 67Assert.Equal($"{runVolumePrefix}-{runResource.Resource.Name}-data", runVolumeName); 68Assert.Equal($"{publishVolumePrefix}-{publishResource.Resource.Name}-data", publishVolumeName);
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)
32await app.ResourceNotifications.WaitForResourceAsync(throwingResource.Resource.Name, KnownResourceStates.FailedToStart, abortCts.Token); 33await app.ResourceNotifications.WaitForResourceAsync(dependingContainerResource.Resource.Name, KnownResourceStates.FailedToStart, abortCts.Token); 34await app.ResourceNotifications.WaitForResourceAsync(dependingExecutableResource.Resource.Name, KnownResourceStates.FailedToStart, abortCts.Token); 138await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.Waiting, waitingStateCts.Token); 244dependency.Resource.Name, 268dependency.Resource.Name, 298await app.ResourceNotifications.WaitForResourceHealthyAsync(dependency.Resource.Name) 453await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.Waiting, waitingStateCts.Token); 468await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.Running, runningStateCts.Token); 609await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.Waiting, waitingStateCts.Token); 623await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.FailedToStart, runningStateCts.Token); 713await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.Waiting, waitingStateCts.Token); 721await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.Waiting, waitingStateCts.Token); 729await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.Running, waitingStateCts.Token); 762await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, KnownResourceStates.Waiting, waitingStateCts.Token); 770await 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 (27)
33container.Resource, 55var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(projectB.Resource, DistributedApplicationOperation.Run, TestServiceProvider.Instance).DefaultTimeout(); 59Assert.True(projectB.Resource.TryGetAnnotationsOfType<ResourceRelationshipAnnotation>(out var relationships)); 64Assert.Same(projectA.Resource, r.Resource); 76var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(project.Resource, DistributedApplicationOperation.Run, TestServiceProvider.Instance).DefaultTimeout(); 92var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(project.Resource, DistributedApplicationOperation.Run, TestServiceProvider.Instance).DefaultTimeout(); 108var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(projectA.Resource, DistributedApplicationOperation.Run, TestServiceProvider.Instance).DefaultTimeout(); 125var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(projectA.Resource, DistributedApplicationOperation.Run, TestServiceProvider.Instance).DefaultTimeout(); 129Assert.True(projectA.Resource.TryGetAnnotationsOfType<ResourceRelationshipAnnotation>(out var relationships)); 134Assert.Same(parameter.Resource, r.Resource); 148var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(projectA.Resource, 165projectA.Resource, 190var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(projectA.Resource, DistributedApplicationOperation.Run, TestServiceProvider.Instance).DefaultTimeout(); 214var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(projectA.Resource, DistributedApplicationOperation.Run, TestServiceProvider.Instance).DefaultTimeout(); 239.WithEnvironment("HOST", $"{test.Resource};name=1"); 241var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(containerB.Resource).DefaultTimeout(); 242var manifestConfig = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(containerB.Resource, DistributedApplicationOperation.Publish).DefaultTimeout(); 256Assert.True(containerB.Resource.TryGetAnnotationsOfType<ResourceRelationshipAnnotation>(out var relationships)); 261Assert.Same(container.Resource, r.Resource); 266Assert.Same(test.Resource, r.Resource); 287Assert.True(containerB.Resource.TryGetAnnotationsOfType<ResourceRelationshipAnnotation>(out var relationships)); 292Assert.Same(container.Resource, r.Resource); 313var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(containerB.Resource).DefaultTimeout(); 337var runConfig = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(targetBuilder.Resource, DistributedApplicationOperation.Run).DefaultTimeout(); 343var publishConfig = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(targetBuilder.Resource, DistributedApplicationOperation.Publish).DefaultTimeout(); 348Assert.True(targetBuilder.Resource.TryGetAnnotationsOfType<ResourceRelationshipAnnotation>(out var relationships)); 353Assert.Same(sourceBuilder.Resource, r.Resource);
WithHttpCommandTests.cs (23)
89var command = resourceBuilder.Resource.Annotations.OfType<ResourceCommandAnnotation>().FirstOrDefault(); 95Assert.Equal($"{resourceBuilder.Resource.Name}-http-http-post-/some-path", command.Name); 122var command = resourceBuilder.Resource.Annotations.OfType<ResourceCommandAnnotation>().FirstOrDefault(); 152var commands = resourceBuilder.Resource.Annotations.OfType<ResourceCommandAnnotation>().ToList(); 184var command = resourceBuilder.Resource.Annotations.OfType<ResourceCommandAnnotation>().First(c => c.Name == "mycommand"); 193ResourceName = resourceBuilder.Resource.Name, 214var command = resourceBuilder.Resource.Annotations.OfType<ResourceCommandAnnotation>().First(c => c.Name == "mycommand"); 223ResourceName = resourceBuilder.Resource.Name, 243var command = resourceBuilder.Resource.Annotations.OfType<ResourceCommandAnnotation>().First(c => c.Name == "mycommand"); 252ResourceName = resourceBuilder.Resource.Name, 288var command = serviceB.Resource.Annotations.OfType<ResourceCommandAnnotation>().First(c => c.Name == "mycommand"); 297ResourceName = serviceB.Resource.Name, 331var command = resourceBuilder.Resource.Annotations.OfType<ResourceCommandAnnotation>().First(c => c.Name == "mycommand"); 340ResourceName = resourceBuilder.Resource.Name, 375var command = resourceBuilder.Resource.Annotations.OfType<ResourceCommandAnnotation>().First(c => c.Name == "mycommand"); 384ResourceName = resourceBuilder.Resource.Name, 430await app.ResourceNotifications.PublishUpdateAsync(service.Resource, s => s with 434await app.ResourceNotifications.WaitForResourceAsync(service.Resource.Name, KnownResourceStates.Starting).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 440await app.ResourceNotifications.PublishUpdateAsync(service.Resource, s => s with 444await app.ResourceNotifications.WaitForResourceAsync(service.Resource.Name, KnownResourceStates.Running).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 499await app.ResourceNotifications.PublishUpdateAsync(service.Resource, s => s with 503await app.ResourceNotifications.WaitForResourceAsync(service.Resource.Name, KnownResourceStates.Running).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 510await app.ResourceNotifications.PublishUpdateAsync(service.Resource, s => s with
WithReferenceTests.cs (23)
29var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(projectB.Resource, DistributedApplicationOperation.Run, TestServiceProvider.Instance).DefaultTimeout(); 33Assert.True(projectB.Resource.TryGetAnnotationsOfType<ResourceRelationshipAnnotation>(out var relationships)); 38Assert.Same(projectA.Resource, r.Resource); 60var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(projectB.Resource, DistributedApplicationOperation.Run, TestServiceProvider.Instance).DefaultTimeout(); 85var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(projectB.Resource, DistributedApplicationOperation.Run, TestServiceProvider.Instance).DefaultTimeout(); 108var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(projectB.Resource, DistributedApplicationOperation.Run, TestServiceProvider.Instance).DefaultTimeout(); 113Assert.True(projectB.Resource.TryGetAnnotationsOfType<ResourceRelationshipAnnotation>(out var relationships)); 118Assert.Same(projectA.Resource, r.Resource); 137var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(projectB.Resource, DistributedApplicationOperation.Run, TestServiceProvider.Instance).DefaultTimeout(); 142Assert.True(projectB.Resource.TryGetAnnotationsOfType<ResourceRelationshipAnnotation>(out var relationships)); 147Assert.Same(projectA.Resource, r.Resource); 196var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(projectB.Resource, DistributedApplicationOperation.Run, TestServiceProvider.Instance); 215var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(projectB.Resource, DistributedApplicationOperation.Run, TestServiceProvider.Instance).DefaultTimeout(); 231var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(projectB.Resource, DistributedApplicationOperation.Publish).DefaultTimeout(); 247var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(projectB.Resource, DistributedApplicationOperation.Publish).DefaultTimeout(); 290var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(projectB.Resource, DistributedApplicationOperation.Run, TestServiceProvider.Instance).DefaultTimeout(); 296Assert.True(projectB.Resource.TryGetAnnotationsOfType<ResourceRelationshipAnnotation>(out var relationships)); 301Assert.Same(resource.Resource, r.Resource); 304Assert.True(resource.Resource.TryGetAnnotationsOfType<ResourceRelationshipAnnotation>(out var csRelationships)); 309Assert.Same(endpoint.Resource, r.Resource); 314Assert.Same(key.Resource, r.Resource); 336var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(projectB.Resource, DistributedApplicationOperation.Run, TestServiceProvider.Instance).DefaultTimeout(); 390var config = await EnvironmentVariableEvaluator.GetEnvironmentVariablesAsync(projectA.Resource, DistributedApplicationOperation.Run, TestServiceProvider.Instance).DefaultTimeout();
WithUrlsTests.cs (30)
26var urlsCallback = projectA.Resource.Annotations.OfType<ResourceUrlsCallbackAnnotation>() 39Assert.Empty(projectA.Resource.Annotations.OfType<ResourceUrlsCallbackAnnotation>()); 43Assert.NotEmpty(projectA.Resource.Annotations.OfType<ResourceUrlsCallbackAnnotation>()); 62builder.Eventing.Subscribe<BeforeResourceStartedEvent>(projectA.Resource, (e, ct) => 88builder.Eventing.Subscribe<BeforeResourceStartedEvent>(projectA.Resource, (e, ct) => 143builder.Eventing.Subscribe<BeforeResourceStartedEvent>(projectA.Resource, (e, ct) => 153var urls = projectA.Resource.Annotations.OfType<ResourceUrlAnnotation>(); 168builder.Eventing.Subscribe<BeforeResourceStartedEvent>(projectA.Resource, (e, ct) => 178var urls = projectA.Resource.Annotations.OfType<ResourceUrlAnnotation>(); 191projectA.WithUrl($"{projectA.Resource.GetEndpoint("https")}/test", "Example"); 194builder.Eventing.Subscribe<BeforeResourceStartedEvent>(projectA.Resource, (e, ct) => 204var urls = projectA.Resource.Annotations.OfType<ResourceUrlAnnotation>(); 223builder.Eventing.Subscribe<BeforeResourceStartedEvent>(projectA.Resource, (e, ct) => 233var urls = projectA.Resource.Annotations.OfType<ResourceUrlAnnotation>(); 247builder.Eventing.Subscribe<BeforeResourceStartedEvent>(projectA.Resource, (e, ct) => 257var urls = projectA.Resource.Annotations.OfType<ResourceUrlAnnotation>(); 271builder.Eventing.Subscribe<BeforeResourceStartedEvent>(projectA.Resource, (e, ct) => 281var urls = projectA.Resource.Annotations.OfType<ResourceUrlAnnotation>(); 302builder.Eventing.Subscribe<BeforeResourceStartedEvent>(projectA.Resource, (e, ct) => 312var urls = projectA.Resource.Annotations.OfType<ResourceUrlAnnotation>(); 330var httpEndpoint = servicea.Resource.GetEndpoint("http"); 364var httpEndpoint = servicea.Resource.GetEndpoint("http"); 508builder.Eventing.Subscribe<BeforeResourceStartedEvent>(projectA.Resource, (e, ct) => 538builder.Eventing.Subscribe<BeforeResourceStartedEvent>(projectA.Resource, (e, ct) => 566builder.Eventing.Subscribe<BeforeResourceStartedEvent>(projectA.Resource, (e, ct) => 576var endpointUrl = projectA.Resource.Annotations.OfType<ResourceUrlAnnotation>().FirstOrDefault(u => u.Endpoint?.EndpointName == "test"); 597builder.Eventing.Subscribe<BeforeResourceStartedEvent>(projectA.Resource, (e, ct) => 607var endpointUrl = projectA.Resource.Annotations.OfType<ResourceUrlAnnotation>().FirstOrDefault(u => u.Endpoint?.EndpointName == "test" && u.Url.EndsWith("/sub-path")); 628builder.Eventing.Subscribe<BeforeResourceStartedEvent>(projectA.Resource, (e, ct) => 638var endpointUrl = projectA.Resource.Annotations.OfType<ResourceUrlAnnotation>().FirstOrDefault(u => u.Endpoint?.EndpointName == "test" && u.Url.EndsWith("/sub-path"));
Aspire.Hosting.Valkey (1)
ValkeyBuilderExtensions.cs (1)
119var 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 (2)
Program.cs (2)
19IResource parent = rb.Resource; 25parent = nestedRb.Resource;