743 writes to
aspire (77)
Agents\ClaudeCode\ClaudeCodeAgentEnvironmentScanner.cs (2)
209
config
[
"mcpServers"] = new JsonObject();
215
servers
[
AspireServerName] = new JsonObject
Agents\Copilot\CopilotAgentEnvironmentScanner.cs (2)
179
config
[
"mcpServers"] = new JsonObject();
185
servers
[
AspireServerName] = new JsonObject
Agents\DeprecatedMcpCommandScanner.cs (2)
227
aspire
[
"args"] = new JsonArray("agent", "mcp");
241
aspire
[
"command"] = new JsonArray("aspire", "agent", "mcp");
Agents\Hooks\TelemetryHookConfigurator.cs (2)
233
settings
[
"hooks"] = hooks;
249
hooks
[
ClaudePostToolUseKey] = postToolUse;
Agents\OpenCode\OpenCodeAgentEnvironmentScanner.cs (3)
194
config
[
"$schema"] = "https://opencode.ai/config.json";
200
config
[
"mcp"] = new JsonObject();
206
mcp
[
AspireServerName] = new JsonObject
Agents\VsCode\VsCodeAgentEnvironmentScanner.cs (2)
254
config
[
"servers"] = new JsonObject();
260
servers
[
AspireServerName] = new JsonObject
Commands\InitCommand.cs (5)
576
settings
[
"appHost"] = appHost;
580
appHost
[
"path"] = appHostPath;
585
appHost
[
"language"] = language;
595
settings
[
"channel"] = channel;
630
settings
[
"profiles"] = new JsonObject
Commands\ResourceCommand.cs (5)
337
arguments
[
argument.Name] = parseResult.GetValue(boolOption).ToString().ToLowerInvariant();
342
arguments
[
argument.Name] = value?.ToString(CultureInfo.InvariantCulture);
346
arguments
[
argument.Name] = parseResult.GetValue(stringOption);
355
arguments
[
unmatchedToken] = null;
376
arguments
[
token] = null;
Commands\SecretListCommand.cs (1)
58
obj
[
key] = value;
Configuration\ConfigurationService.cs (2)
238
currentObject
[
part] = new JsonObject();
246
currentObject
[
finalKey] = value;
Mcp\Tools\ExecuteResourceCommandTool.cs (1)
178
arguments
[
property.Name] = property.Value.ValueKind switch
Migrations\TypeScriptAppHostMigration.cs (3)
217
appHost
[
"path"] = string.Concat(
268
root
[
"include"] = rewritten;
303
scripts
[
script.Key] = (JsonNode?)JsonValue.Create(rewritten);
Projects\FallbackProjectParser.cs (10)
131
packageObj
[
"Identity"] = JsonValue.Create(pkg.Identity);
132
packageObj
[
"Version"] = JsonValue.Create(pkg.Version);
135
itemsObject
[
"PackageReference"] = packageRefArray;
142
projectObj
[
"Identity"] = JsonValue.Create(proj.Identity);
143
projectObj
[
"FullPath"] = JsonValue.Create(proj.FullPath);
146
itemsObject
[
"ProjectReference"] = projectRefArray;
148
rootObject
[
"Items"] = itemsObject;
152
propertiesObject
[
"AspireHostingSDKVersion"] = JsonValue.Create(aspireHostingSdkVersion);
153
rootObject
[
"Properties"] = propertiesObject;
156
rootObject
[
"Fallback"] = JsonValue.Create(true);
Projects\RepositoryToolUpdater.cs (1)
198
currentReference.Properties
[
currentReference.Key] = version;
Scaffolding\PackageJsonMerger.cs (12)
128
existing
[
key] = sourceValue.DeepClone();
162
existingScripts
[
name] ??= command;
167
existingScripts
[
$"{AspirePrefix}{name}"] = command;
172
existingScripts
[
name] = command;
209
scripts
[
unprefixed] = $"{runCommand} {prefixed}";
248
existingDeps
[
packageName] = desiredVersion;
256
existingDeps
[
packageName] = desiredVersion;
279
existingDeps
[
packageName] = desiredVersion;
311
existingEngines
[
key] = value.DeepClone();
315
existingEngines
[
key] = value.DeepClone();
338
target
[
key] = sourceValue.DeepClone();
363
parent
[
propertyName] = obj;
Scaffolding\ScaffoldingService.cs (3)
380
parent
[
propertyName] = obj;
416
scripts
[
scriptName] = delegateScript;
667
existing
[
key] = scaffoldValue?.DeepClone();
src\Shared\ConsoleLogs\SharedAIHelpers.cs (5)
226
attributesObj
[
attr.Key!] = context.AddValue(attrValue, id => $@"Duplicate of attribute ""{id.Key}"" for span {OtlpHelpers.ToShortenedId(id.SpanId)}", (SpanId: spanId, attr.Key));
274
spanObj
[
"dashboardUrl"] = DashboardUrls.CombineUrl(dashboardBaseUrl, DashboardUrls.TraceDetailUrl(traceId, spanId: spanId));
412
traceData
[
"dashboardUrl"] = DashboardUrls.CombineUrl(dashboardBaseUrl, DashboardUrls.TraceDetailUrl(traceId));
726
attributesObject
[
attr.Key!] = context.AddValue(attrValue, id => $@"Duplicate of attribute ""{id.Key}"" for log entry {id.LogId}", (LogId: logId, attr.Key));
745
log
[
"dashboardUrl"] = DashboardUrls.CombineUrl(dashboardBaseUrl, DashboardUrls.StructuredLogsUrl(logEntryId: logId));
src\Shared\Json\JsonFlattener.cs (4)
41
current
[
key] = newObject;
50
current
[
keys[^1]] = kvp.Value?.DeepClone();
81
result
[
arrayKey] = array[i]?.DeepClone();
87
result
[
key] = kvp.Value?.DeepClone();
src\Shared\UserSecrets\SecretsStore.cs (1)
82
obj
[
key] = value;
Utils\ConfigurationHelper.cs (2)
366
currentObject
[
part] = new JsonObject();
397
currentObject
[
finalKey] = value;
Utils\EnvironmentChecker\AspireVersionCheck.cs (8)
429
metadata
[
"currentVersion"] = currentVersion;
434
metadata
[
"latestVersion"] = latestVersion;
439
metadata
[
"updateCommand"] = updateCommand;
444
metadata
[
"updateCheckError"] = updateCheckError;
449
metadata
[
"identityChannel"] = identityChannel;
454
metadata
[
"latestVersionChannel"] = latestVersionChannel;
469
metadata
[
"version"] = version;
474
metadata
[
"pinnedChannel"] = pinnedChannel;
Utils\EnvironmentChecker\OperatingSystemCheck.cs (1)
153
metadata
[
"description"] = details.Description;
Aspire.Cli.EndToEnd.Tests (10)
Helpers\CliE2ETestHelpers.cs (2)
1119
config
[
"channel"] = "local";
1120
config
[
"sdk"] = new JsonObject
Helpers\TypeScriptAppHostToolchainTestHelpers.cs (1)
40
packageJson
[
"packageManager"] = GetPackageManager(toolchain);
ProjectReferenceTests.cs (2)
119
packages
[
"MyIntegration"] = "./MyIntegration/MyIntegration.csproj";
120
config
[
"packages"] = packages;
TypeScriptEmptyAppHostTemplateTests.cs (1)
180
config
[
"packages"] = new JsonObject
TypeScriptLegacyAppHostTests.cs (1)
138
appHost
[
"path"] = "apphost.ts";
TypeScriptMigrateAppHostTests.cs (1)
125
appHost
[
"path"] = "apphost.ts";
TypeScriptPolyglotTests.cs (2)
354
config
[
"features"] = new JsonObject
455
scripts
[
"aspire:start"] = "custom-apphost-start";
Aspire.Cli.Tests (2)
Projects\ProjectUpdaterTests.cs (2)
2768
itemsAndProperties
[
"Items"] = items;
2856
itemsAndProperties
[
"Items"] = items;
Aspire.Dashboard (3)
Model\GenAI\GenAIItemPartViewModel.cs (1)
144
jsonObject
[
kvp.Key] = JsonNode.Parse(kvp.Value.GetRawText());
Model\TelemetryExportService.cs (1)
810
jsonObject
[
field.Key] = ConvertPropertyValueToJsonNode(field.Value);
Otlp\Model\OtlpHelpers.cs (1)
200
o
[
item.Key] = ConvertAnyValue(item.Value);
Aspire.Dashboard.Tests (5)
Model\DashboardDataSourceTests.cs (5)
205
metadata
[
"ApplicationName"] = applicationName;
757
metadata
[
"SchemaVersion"] = DashboardRunStore.SchemaVersion - 1;
798
metadata
[
"SchemaVersion"] = DashboardRunStore.SchemaVersion + 1;
799
metadata
[
"FutureMetadata"] = new JsonObject
842
metadata
[
"SchemaVersion"] = DashboardRunStore.SchemaVersion - 1;
Aspire.Hosting (21)
Backchannel\AuxiliaryBackchannelRpcTarget.cs (1)
1438
jsonObject
[
property.Key] = property.Value;
Dcp\JsonPatch.cs (3)
115
result
[
"value"] = value?.DeepClone();
242
target
[
propertyName] = value?.DeepClone();
255
target
[
propertyName] = value?.DeepClone();
Devcontainers\DevcontainerSettingsWriter.cs (3)
177
portAttributes
[
"label"] = label;
178
portAttributes
[
"protocol"] = protocol;
179
portAttributes
[
"onAutoForward"] = openBrowser ? "openBrowser" : "silent";
Pipelines\DeploymentStateSection.cs (1)
58
Data
[
RootValueKey] = JsonValue.Create(value);
Pipelines\Internal\DeploymentStateManagerBase.cs (2)
342
current
[
segment] = nextObj;
353
current
[
segments[^1]] = value;
Pipelines\Internal\FileDeploymentStateManager.cs (4)
448
target
[
name] = sourceValue?.DeepClone();
576
result
[
propertyName] = updatedProperty.Value;
675
current
[
segment] = nextObject;
687
current
[
segments[^1]] = value;
Pipelines\Internal\JsonFlattener.cs (4)
47
current
[
key] = newObject;
56
current
[
keys[^1]] = kvp.Value?.DeepClone();
87
result
[
arrayKey] = array[i]?.DeepClone();
93
result
[
key] = kvp.Value?.DeepClone();
Publishing\ContainerImageArchiveRewriter.cs (2)
447
annotations
[
OciReferenceNameAnnotation] = rewrittenReferenceName;
453
annotations
[
ContainerdImageNameAnnotation] = rewrittenContainerdImageName;
UserSecrets\UserSecretsManagerFactory.cs (1)
211
contents
[
secret.Key] = secret.Value;
Aspire.Hosting.Azure (89)
AzureDeploymentOperationDetails.cs (12)
85
json
[
"operationId"] = OperationId;
90
json
[
"provisioningOperation"] = ProvisioningOperation;
95
json
[
"provisioningState"] = ProvisioningState;
100
json
[
"timestamp"] = timestamp;
105
json
[
"duration"] = duration.ToString();
110
json
[
"statusCode"] = StatusCode;
115
json
[
"serviceRequestId"] = ServiceRequestId;
120
json
[
"targetResource"] = targetResource.ToJsonObject();
125
json
[
"error"] = failureDetails.ToJsonObject();
140
json
[
"id"] = Id;
145
json
[
"resourceType"] = ResourceType;
150
json
[
"resourceName"] = ResourceName;
AzureProvisioningController.cs (46)
2431
json
[
"resourceCount"] = GetProvisionableAzureResources(model).Count;
2434
json
[
"warning"] = "Local Azure provisioning state was reset without deleting live Azure resources. Existing Azure resources may be orphaned if a later reprovision uses a different Azure context.";
2435
json
[
"recommendedActions"] = AzureProvisioningFailureDetails.CreateRecommendedActionsJsonArray(
2457
json
[
"deletedResourceCount"] = result.ResourceIds.Count;
2458
json
[
"deletedResourceIds"] = deletedResourceIds;
2470
json
[
"resourceCount"] = targetResources.Count;
2471
json
[
"location"] = effectiveLocation;
2472
json
[
"effectiveLocation"] = effectiveLocation;
2486
json
[
"resourceCount"] = targetResources.Count;
2487
json
[
"location"] = effectiveLocation;
2488
json
[
"effectiveLocation"] = effectiveLocation;
2497
json
[
"deployment"] = deployment;
2498
json
[
"live"] = await CreateLiveResourceInfoAsync(
2535
json
[
"provisioningState"] = provisioningState;
2544
json
[
"deploymentPortalUrl"] = AzurePortalUrls.GetDeploymentUrl(deploymentResourceId);
2562
json
[
"reason"] = "missing-resource-id";
2563
json
[
"source"] = "aspire";
2564
json
[
"code"] = "missing-resource-id";
2565
json
[
"message"] = "Live Azure resource existence cannot be checked because cached deployment state does not contain a resource ID. This can happen after state is forgotten, deleted, or before provisioning completes.";
2566
json
[
"recommendedActions"] = AzureProvisioningFailureDetails.CreateRecommendedActionsJsonArray(
2573
json
[
"reason"] = "invalid-subscription-id";
2582
json
[
"checked"] = true;
2584
json
[
"exists"] = exists;
2588
json
[
"reason"] = AzureProvisioningFailureDetails.MissingLiveResourceReason;
2589
json
[
"source"] = "azure";
2590
json
[
"code"] = AzureProvisioningFailureDetails.MissingLiveResourceReason;
2591
json
[
"message"] = "Cached deployment state points at an Azure resource ID, but the resource was not found in Azure. This can happen when resources are deleted outside Aspire or a resource group deletion is still in progress.";
2592
json
[
"recommendedActions"] = AzureProvisioningFailureDetails.CreateRecommendedActionsJsonArray(
2601
json
[
"reason"] = "credential-unavailable";
2602
json
[
"message"] = ex.Message;
2610
json
[
"reason"] = "request-failed";
2611
json
[
"source"] = "azure";
2612
json
[
"status"] = ex.Status;
2613
json
[
"provider"] = failure.Provider;
2614
json
[
"httpStatus"] = failure.HttpStatus;
2615
json
[
"errorCode"] = failure.ErrorCode;
2616
json
[
"message"] = failure.ErrorMessage;
2617
json
[
"operation"] = failure.Operation;
2618
json
[
"requestId"] = failure.RequestId;
2619
json
[
"correlationId"] = failure.CorrelationId;
2622
json
[
"recommendedActions"] = AzureProvisioningFailureDetails.CreateRecommendedActionsJsonArray(failure.RecommendedActions);
2695
json
[
"resourceName"] = resourceName;
2753
section.Data
[
LocationOverrideKey] = normalizedLocation;
2777
section.Data
[
LocationOverrideKey] = location;
2850
section.Data
[
BicepProvisioner.DeploymentStateProvisioningStateKey] = BicepProvisioner.DeploymentStateProvisioningStateCanceled;
3594
section.Data
[
LocationOverrideKey] = locationOverride;
AzureProvisioningFailureDetails.cs (11)
464
json
[
"errorCode"] = ErrorCode;
469
json
[
"resourceType"] = ResourceType;
474
json
[
"resourceName"] = ResourceName;
479
json
[
"targetResourceId"] = TargetResourceId;
484
json
[
"currentLocation"] = CurrentLocation;
495
json
[
"supportedLocations"] = supportedLocations;
500
json
[
"httpStatus"] = httpStatus;
505
json
[
"operation"] = Operation;
510
json
[
"requestId"] = RequestId;
515
json
[
"correlationId"] = CorrelationId;
520
json
[
"recommendedActions"] = CreateRecommendedActionsJsonArray(RecommendedActions);
Provisioning\BicepUtilities.cs (4)
56
parameters
[
parameter.Key] = new JsonObject()
86
scope
[
"resourceGroup"] = null;
97
scope
[
"tenant"] = "current";
182
scope
[
propertyName] = value switch
Provisioning\Internal\BaseProvisioningContextProvider.cs (7)
128
azureStateSection.Data
[
"ResourceGroup"] = resourceGroupName;
219
azureSection
[
"Location"] = _options.Location;
220
azureSection
[
"SubscriptionId"] = _options.SubscriptionId;
221
azureSection
[
"ResourceGroup"] = resourceGroupName;
225
azureSection
[
"TenantId"] = tenantId;
234
azureSection
[
"Tenant"] = tenantDomain;
243
azureSection
[
"AllowResourceGroupCreation"] = _options.AllowResourceGroupCreation.Value;
Provisioning\Provisioners\BicepProvisioner.cs (9)
441
stateSection.Data
[
DeploymentStateProvisioningStateKey] = provisioningState;
460
stateSection.Data
[
AzureProvisioningController.LocationOverrideKey] = locationOverride;
1333
stateSection.Data
[
AzureProvisioningController.LocationOverrideKey] = locationOverride;
1336
stateSection.Data
[
BicepUtilities.DeploymentStateIdKey] = deploymentId.ToString();
1337
stateSection.Data
[
BicepUtilities.DeploymentStateParametersKey] = parameters.ToJsonString();
1341
stateSection.Data
[
BicepUtilities.DeploymentStateOutputsKey] = outputObj.ToJsonString();
1346
stateSection.Data
[
BicepUtilities.DeploymentStateScopeKey] = scope.ToJsonString();
1349
stateSection.Data
[
BicepUtilities.DeploymentStateChecksumKey] = checksum;
1353
stateSection.Data
[
DeploymentStateProvisioningStateKey] = provisioningState;
Aspire.Hosting.Azure.Kubernetes.Tests (1)
AzureKubernetesInfrastructureTests.cs (1)
1806
azureState
[
"ResourceGroup"] = resourceGroup;
Aspire.Hosting.Azure.Sandboxes (25)
AzureSandboxContainerDeployment.cs (25)
280
stateSection.Data
[
"OwnerId"] = ownerId;
397
stateSection.Data
[
"OwnerId"] = ownerId;
400
stateSection.Data
[
"SandboxId"] = sandboxId;
401
stateSection.Data
[
"DiskImageId"] = diskImageId;
402
stateSection.Data
[
"SubscriptionId"] = dataPlaneScope.SubscriptionId;
403
stateSection.Data
[
"ResourceGroup"] = dataPlaneScope.ResourceGroupName;
404
stateSection.Data
[
"Location"] = dataPlaneScope.Region;
405
stateSection.Data
[
"SandboxGroup"] = dataPlaneScope.SandboxGroupName;
406
stateSection.Data
[
"ResourceName"] = resource.Name;
407
stateSection.Data
[
"SourceResourceName"] = targetResource.Name;
408
stateSection.Data
[
"DeployId"] = deployId;
409
stateSection.Data
[
"Ports"] = portStates;
410
stateSection.Data
[
"EndpointSecurityFingerprint"] = endpointSecurityFingerprint;
411
stateSection.Data
[
"HasRuntimeEnvironmentConfiguration"] = resolvedEnvironmentVariables.Values.Count > 0;
412
stateSection.Data
[
"HasRuntimeCommandConfiguration"] = hasModeledCommandConfiguration;
413
stateSection.Data
[
"PendingSecurityCleanup"] = securityConfigurationChanged;
477
stateSection.Data
[
"PendingSecurityCleanup"] = false;
1957
stateSection.Data
[
"PendingOwnerCleanupIds"] = new JsonArray(
1995
stateSection.Data
[
"PendingLegacyDeploymentCleanup"] = pendingDeploymentCleanup.DeepClone();
2099
stateSection.Data
[
"SubscriptionId"] ??= scope.SubscriptionId;
2100
stateSection.Data
[
"ResourceGroup"] ??= scope.ResourceGroupName;
2101
stateSection.Data
[
"Location"] ??= scope.Region;
2102
stateSection.Data
[
"SandboxGroup"] ??= scope.SandboxGroupName;
2103
stateSection.Data
[
"ResourceName"] ??= resource.Name;
2104
stateSection.Data
[
"SourceResourceName"] ??= resource.TargetResource.Name;
Aspire.Hosting.Azure.Tests (181)
AzureBicepProvisionerTests.cs (31)
837
section.Data
[
AzureProvisioningController.LocationOverrideKey] = "westus3";
871
section.Data
[
"Id"] = "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/test-rg/providers/Microsoft.Resources/deployments/storage2";
872
section.Data
[
"Parameters"] = parameters.ToJsonString();
873
section.Data
[
"Outputs"] = """{"name":{"value":"storage2"}}""";
874
section.Data
[
"CheckSum"] = checksum;
875
section.Data
[
BicepProvisioner.DeploymentStateProvisioningStateKey] = BicepProvisioner.DeploymentStateProvisioningStateRunning;
907
azureSection.Data
[
"SubscriptionId"] = "12345678-1234-1234-1234-123456789012";
908
azureSection.Data
[
"ResourceGroup"] = "test-rg";
909
azureSection.Data
[
"TenantId"] = "87654321-4321-4321-4321-210987654321";
910
azureSection.Data
[
"Tenant"] = "microsoft.onmicrosoft.com";
911
azureSection.Data
[
"Location"] = "westus2";
915
section.Data
[
"Id"] = "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/test-rg/providers/Microsoft.Resources/deployments/storage2";
916
section.Data
[
"Parameters"] = parameters.ToJsonString();
917
section.Data
[
"Outputs"] = """{"name":{"value":"storage2"}}""";
918
section.Data
[
"CheckSum"] = checksum;
958
azureSection.Data
[
"SubscriptionId"] = "12345678-1234-1234-1234-123456789012";
959
azureSection.Data
[
"ResourceGroup"] = "environment-rg";
960
azureSection.Data
[
"TenantId"] = "87654321-4321-4321-4321-210987654321";
961
azureSection.Data
[
"Tenant"] = "microsoft.onmicrosoft.com";
962
azureSection.Data
[
"Location"] = "westus2";
966
section.Data
[
"Id"] = "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/scoped-rg/providers/Microsoft.Resources/deployments/storage2";
967
section.Data
[
"Parameters"] = parameters.ToJsonString();
968
section.Data
[
"Outputs"] = """{"name":{"value":"storage2"}}""";
969
section.Data
[
"CheckSum"] = checksum;
1000
section.Data
[
AzureProvisioningController.LocationOverrideKey] = "westus3";
1034
section.Data
[
AzureProvisioningController.LocationOverrideKey] = "westus3";
1849
section.Data
[
BicepUtilities.DeploymentStateIdKey] = deploymentId;
1850
section.Data
[
BicepUtilities.DeploymentStateParametersKey] = parameters.ToJsonString();
1851
section.Data
[
BicepUtilities.DeploymentStateScopeKey] = scope.ToJsonString();
1852
section.Data
[
BicepUtilities.DeploymentStateChecksumKey] = BicepUtilities.GetChecksum(resource, parameters, scope);
1853
section.Data
[
BicepProvisioner.DeploymentStateProvisioningStateKey] = BicepProvisioner.DeploymentStateProvisioningStateRunning;
AzureEnvironmentResourceExtensionsTests.cs (127)
319
azureSection.Data
[
"SubscriptionId"] = "sub";
320
azureSection.Data
[
"Location"] = "westus2";
324
storageSection.Data
[
"Id"] = "/subscriptions/sub/resourceGroups/rg/providers/Microsoft.Resources/deployments/storage";
325
storageSection.Data
[
"CheckSum"] = "checksum";
590
storageSection.Data
[
"Outputs"] = """
626
storageSection.Data
[
"Outputs"] = """{"id":{"value":"/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/rg/providers/Microsoft.Storage/storageAccounts/storage"}}""";
790
azureSection.Data
[
"SubscriptionId"] = subscriptionId;
791
azureSection.Data
[
"Location"] = "westus2";
792
azureSection.Data
[
"ResourceGroup"] = resourceGroup;
793
azureSection.Data
[
"TenantId"] = tenantId;
797
storageSection.Data
[
"Id"] = deploymentId;
798
storageSection.Data
[
"Parameters"] = """
805
storageSection.Data
[
"Outputs"] = $$"""
817
storageSection.Data
[
"Scope"] = $$"""
822
storageSection.Data
[
"CheckSum"] = "checksum";
823
storageSection.Data
[
BicepProvisioner.DeploymentStateProvisioningStateKey] = BicepProvisioner.DeploymentStateProvisioningStateRunning;
824
storageSection.Data
[
AzureProvisioningController.LocationOverrideKey] = "westus3";
902
storageSection.Data
[
"Outputs"] = $$"""
1177
storageSection.Data
[
"Outputs"] = """{"blobEndpoint":{"value":"https://storage.blob.core.windows.net/"}}""";
1235
storageSection.Data
[
"Outputs"] = $$"""
1296
storageSection.Data
[
"Outputs"] = $$"""
1358
storageSection.Data
[
"Id"] = deploymentId;
1359
storageSection.Data
[
BicepProvisioner.DeploymentStateProvisioningStateKey] = BicepProvisioner.DeploymentStateProvisioningStateRunning;
1486
storageSection.Data
[
BicepUtilities.DeploymentStateIdKey] = deploymentId;
1487
storageSection.Data
[
BicepProvisioner.DeploymentStateProvisioningStateKey] = BicepProvisioner.DeploymentStateProvisioningStateRunning;
1662
storageSection.Data
[
"Id"] = "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/test-rg/providers/Microsoft.Resources/deployments/storage";
1663
storageSection.Data
[
BicepProvisioner.DeploymentStateProvisioningStateKey] = BicepProvisioner.DeploymentStateProvisioningStateSucceeded;
1700
storageSection.Data
[
"Id"] = deploymentId;
1701
storageSection.Data
[
BicepProvisioner.DeploymentStateProvisioningStateKey] = BicepProvisioner.DeploymentStateProvisioningStateSucceeded;
1767
storageSection.Data
[
"Id"] = deploymentId;
1768
storageSection.Data
[
"Outputs"] = new JsonObject
1776
storageSection.Data
[
AzureProvisioningController.LocationOverrideKey] = "westus3";
1777
storageSection.Data
[
BicepProvisioner.DeploymentStateProvisioningStateKey] = BicepProvisioner.DeploymentStateProvisioningStateRunning;
1781
storage2Section.Data
[
"Id"] = "storage2-deployment";
1870
keyVaultSection.Data
[
"Id"] = deploymentId;
1871
keyVaultSection.Data
[
"Outputs"] = new JsonObject
1879
keyVaultSection.Data
[
BicepProvisioner.DeploymentStateProvisioningStateKey] = BicepProvisioner.DeploymentStateProvisioningStateRunning;
1942
storageSection.Data
[
"Outputs"] = $$"""
2021
storageSection.Data
[
"Outputs"] = $$"""
2088
storageSection.Data
[
"Id"] = "storage-deployment";
2092
storage2Section.Data
[
"Id"] = "storage2-deployment";
2166
storageSection.Data
[
"Id"] = "storage-deployment";
2170
storage2Section.Data
[
"Id"] = "storage2-deployment";
2938
azureSection.Data
[
"SubscriptionId"] = "12345678-1234-1234-1234-123456789012";
2939
azureSection.Data
[
"Location"] = "eastus";
2940
azureSection.Data
[
"ResourceGroup"] = "test-rg";
2944
storageSection.Data
[
AzureProvisioningController.LocationOverrideKey] = "westus3";
3010
storageSection.Data
[
"Outputs"] = new JsonObject
3077
storageSection.Data
[
"Outputs"] = """{"id":{"value":"/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/test-rg/providers/Microsoft.Storage/storageAccounts/storage26wmkwq4f4li52"}}""";
3136
storageSection.Data
[
"Parameters"] = """
3144
storageSection.Data
[
"Outputs"] = $$"""
3202
storageSection.Data
[
"LocationOverride"] = "westus2";
3203
storageSection.Data
[
"Outputs"] = """{"id":{"value":"/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/test-rg/providers/Microsoft.Storage/storageAccounts/storage26wmkwq4f4li52"}}""";
3266
storageSection.Data
[
"Outputs"] = """{"id":{"value":"/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/test-rg/providers/Microsoft.Storage/storageAccounts/storage26wmkwq4f4li52"}}""";
3331
storageSection.Data
[
"Outputs"] = new JsonObject
3384
azureSection.Data
[
"SubscriptionId"] = "12345678-1234-1234-1234-123456789012";
3385
azureSection.Data
[
"Location"] = "westus2";
3386
azureSection.Data
[
"ResourceGroup"] = "test-rg";
3387
azureSection.Data
[
"TenantId"] = "87654321-4321-4321-4321-210987654321";
3391
storageSection.Data
[
"Id"] = "storage-deployment";
3395
storage2Section.Data
[
"Id"] = "storage2-deployment";
3509
azureSection.Data
[
"SubscriptionId"] = "12345678-1234-1234-1234-123456789012";
3510
azureSection.Data
[
"Location"] = "westus2";
3511
azureSection.Data
[
"ResourceGroup"] = "test-rg";
3512
azureSection.Data
[
"TenantId"] = "87654321-4321-4321-4321-210987654321";
3558
azureSection.Data
[
"SubscriptionId"] = "12345678-1234-1234-1234-123456789012";
3559
azureSection.Data
[
"Location"] = "westus2";
3560
azureSection.Data
[
"ResourceGroup"] = "test-rg";
3604
azureSection.Data
[
"SubscriptionId"] = "12345678-1234-1234-1234-123456789012";
3605
azureSection.Data
[
"Location"] = "westus2";
3606
azureSection.Data
[
"ResourceGroup"] = "test-rg";
3610
storageSection.Data
[
"Parameters"] = """{"location":{"value":"westus2"}}""";
3664
azureSection.Data
[
"SubscriptionId"] = "12345678-1234-1234-1234-123456789012";
3665
azureSection.Data
[
"Location"] = "westus2";
3666
azureSection.Data
[
"ResourceGroup"] = "test-rg";
3670
storage2Section.Data
[
AzureProvisioningController.LocationOverrideKey] = "West US 3";
3705
azureSection.Data
[
"SubscriptionId"] = "12345678-1234-1234-1234-123456789012";
3706
azureSection.Data
[
"Location"] = "westus2";
3707
azureSection.Data
[
"ResourceGroup"] = "test-rg";
3711
storage2Section.Data
[
"Parameters"] = """
3750
azureSection.Data
[
"SubscriptionId"] = "12345678-1234-1234-1234-123456789012";
3751
azureSection.Data
[
"Location"] = "westus2";
3752
azureSection.Data
[
"ResourceGroup"] = "test-rg";
3810
storageSection.Data
[
"Id"] = "storage-deployment";
3811
storageSection.Data
[
AzureProvisioningController.LocationOverrideKey] = "westus3";
3912
keyVaultSection.Data
[
AzureProvisioningController.LocationOverrideKey] = "ukwest";
3992
keyVaultSection.Data
[
AzureProvisioningController.LocationOverrideKey] = "ukwest";
4316
azureSection.Data
[
"SubscriptionId"] = "12345678-1234-1234-1234-123456789012";
4317
azureSection.Data
[
"Location"] = "westus2";
4318
azureSection.Data
[
"ResourceGroup"] = "test-rg";
4319
azureSection.Data
[
"TenantId"] = "87654321-4321-4321-4321-210987654321";
4320
azureSection.Data
[
"Tenant"] = "testdomain.onmicrosoft.com";
4324
storageSection.Data
[
"Outputs"] = """{"id":{"value":"/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/test-rg/providers/Microsoft.Storage/storageAccounts/storage"}}""";
4365
azureSection.Data
[
"SubscriptionId"] = "12345678-1234-1234-1234-123456789012";
4366
azureSection.Data
[
"Location"] = "westus2";
4367
azureSection.Data
[
"ResourceGroup"] = "test-rg";
4371
storageSection.Data
[
"Outputs"] = $$"""
4413
azureSection.Data
[
"SubscriptionId"] = "12345678-1234-1234-1234-123456789012";
4414
azureSection.Data
[
"Location"] = "westus2";
4415
azureSection.Data
[
"ResourceGroup"] = "test-rg";
4419
storageSection.Data
[
"Outputs"] = $$"""
4429
storage2Section.Data
[
"Outputs"] = $$"""
4473
azureSection.Data
[
"SubscriptionId"] = "12345678-1234-1234-1234-123456789012";
4474
azureSection.Data
[
"Location"] = "westus2";
4475
azureSection.Data
[
"ResourceGroup"] = "test-rg";
4479
storageSection.Data
[
"Outputs"] = """{"blobEndpoint":{"value":"https://storage.blob.core.windows.net/"}}""";
4512
azureSection.Data
[
"SubscriptionId"] = "12345678-1234-1234-1234-123456789012";
4513
azureSection.Data
[
"Location"] = "westus2";
4514
azureSection.Data
[
"ResourceGroup"] = "test-rg";
4515
azureSection.Data
[
"TenantId"] = "87654321-4321-4321-4321-210987654321";
4519
storageSection.Data
[
"Id"] = "storage-deployment";
4571
storageSection.Data
[
"Id"] = "storage-deployment";
4612
azureSection.Data
[
"SubscriptionId"] = "12345678-1234-1234-1234-123456789012";
4613
azureSection.Data
[
"Location"] = "westus2";
4614
azureSection.Data
[
"ResourceGroup"] = "missing-rg";
4618
storageSection.Data
[
"Id"] = "storage-deployment";
4660
azureSection.Data
[
"SubscriptionId"] = "12345678-1234-1234-1234-123456789012";
4661
azureSection.Data
[
"Location"] = "westus2";
4662
azureSection.Data
[
"ResourceGroup"] = "test-rg";
4666
storageSection.Data
[
"Id"] = "storage-deployment";
4797
storageSection.Data
[
BicepUtilities.DeploymentStateIdKey] = deploymentId;
4798
storageSection.Data
[
BicepProvisioner.DeploymentStateProvisioningStateKey] = BicepProvisioner.DeploymentStateProvisioningStateRunning;
5578
azureSection.Data
[
"SubscriptionId"] = options.SubscriptionId;
5579
azureSection.Data
[
"Location"] = options.Location;
5580
azureSection.Data
[
"ResourceGroup"] = options.ResourceGroup;
5584
azureSection.Data
[
"TenantId"] = options.TenantId;
5711
section.Data
[
BicepProvisioner.DeploymentStateProvisioningStateKey] = BicepProvisioner.DeploymentStateProvisioningStateCanceled;
AzureEventHubsExtensionsTests.cs (1)
399
document
[
"Custom"] = JsonValue.Create(42);
AzureSandboxesTests.cs (15)
985
previousState.Data
[
"EndpointSecurityFingerprint"] = fingerprint;
993
previousState.Data
[
"EndpointSecurityFingerprint"] = "legacy-endpoint-only-fingerprint";
995
previousState.Data
[
"EndpointSecurityFingerprint"] = fingerprint;
996
previousState.Data
[
"PendingSecurityCleanup"] = true;
998
previousState.Data
[
"PendingSecurityCleanup"] = false;
1010
previousState.Data
[
"HasRuntimeEnvironmentConfiguration"] = true;
1012
previousState.Data
[
"HasRuntimeEnvironmentConfiguration"] = false;
1018
previousState.Data
[
"HasRuntimeCommandConfiguration"] = true;
1020
previousState.Data
[
"HasRuntimeCommandConfiguration"] = false;
1156
azureState.Data
[
"SubscriptionId"] = "sub";
1157
azureState.Data
[
"ResourceGroup"] = "rg";
1158
azureState.Data
[
"Location"] = "westus3";
2751
state.Data
[
"Ports"] = new JsonArray(new JsonObject
2884
state.Data
[
"Ports"] = new JsonArray
3170
state.Data
[
"Ports"] = new JsonArray(new JsonObject
AzureServiceBusExtensionsTests.cs (1)
507
document
[
"Custom"] = JsonValue.Create(42);
ProvisioningContextProviderTests.cs (4)
137
azureSection.Data
[
"SubscriptionId"] = "12345678-1234-1234-1234-123456789012";
138
azureSection.Data
[
"Location"] = "westus3";
139
azureSection.Data
[
"ResourceGroup"] = "rehydrated-rg";
140
azureSection.Data
[
"AllowResourceGroupCreation"] = "true";
ProvisioningContextTests.cs (1)
203
azureSection.Data
[
"SubscriptionId"] = "test-id";
ProvisioningTestHelpers.cs (1)
1057
_state
[
section.SectionName] = section.Data;
Aspire.Hosting.Blazor (5)
GatewayConfigurationBuilder.cs (5)
228
environment
[
$"services__{svc.ServiceName}__https__0"] = $"{OriginToken}{pathBase}/{svc.ApiPrefix}/{svc.ServiceName}";
233
environment
[
$"services__{svc.ServiceName}__http__0"] = $"{OriginToken}{pathBase}/{svc.ApiPrefix}/{svc.ServiceName}";
239
environment
[
"OTEL_SERVICE_NAME"] = resourceName;
244
environment
[
"OTEL_EXPORTER_OTLP_ENDPOINT"] = $"{pathBase}/{otlpPrefix}";
245
environment
[
"OTEL_EXPORTER_OTLP_PROTOCOL"] = "http/protobuf";
Aspire.Hosting.CodeGeneration.TypeScript (24)
TypeScriptApiExportWriter.cs (8)
82
json
[
"items"] = items;
104
json
[
"experimental"] = true;
115
json
[
"members"] = members;
138
json
[
"experimental"] = true;
142
json
[
"deprecated"] = member.DeprecationMessage;
161
json
[
"parameters"] = parameters;
185
json
[
name] = value;
202
json
[
name] = array;
TypeScriptLanguageSupport.cs (16)
135
packageJson
[
"name"] = packageName;
136
packageJson
[
"version"] = "1.0.0";
137
packageJson
[
"private"] = true;
138
packageJson
[
"type"] = "module";
146
engines
[
"node"] = "^20.19.0 || ^22.13.0 || >=24";
149
scripts
[
"aspire:lint"] = "eslint apphost.mts";
150
scripts
[
"aspire:start"] = "aspire run";
151
scripts
[
"aspire:build"] = $"tsc -p {AppHostTsConfigFileName}";
152
scripts
[
"aspire:dev"] = $"tsc --watch -p {AppHostTsConfigFileName}";
158
scripts
[
"lint"] = "eslint apphost.mts";
159
scripts
[
"dev"] = "eslint apphost.mts && aspire run";
160
scripts
[
"build"] = $"eslint apphost.mts && tsc -p {AppHostTsConfigFileName}";
161
scripts
[
"watch"] = $"tsc --watch -p {AppHostTsConfigFileName}";
196
section
[
packageName] = version;
202
section
[
packageName] = version;
214
parent
[
propertyName] = obj;
Aspire.Hosting.Docker (3)
DockerComposeEnvironmentResource.cs (3)
455
stateSection.Data
[
"OutputPath"] = outputPath;
456
stateSection.Data
[
"ProjectName"] = composeContext.ProjectName;
457
stateSection.Data
[
"ComposeFilePath"] = composeContext.ComposeFilePath;
Aspire.Hosting.Kubernetes (7)
Deployment\HelmDeploymentEngine.cs (2)
492
stateSection.Data
[
"ReleaseName"] = releaseName;
493
stateSection.Data
[
"Namespace"] = @namespace;
KubernetesEnvironmentResource.cs (3)
2085
metadataNode
[
"annotations"] = System.Text.Json.Nodes.JsonNode.Parse(annotations.GetRawText());
2090
metadataNode
[
"labels"] = System.Text.Json.Nodes.JsonNode.Parse(labels.GetRawText());
2104
minimal
[
"spec"] = System.Text.Json.Nodes.JsonNode.Parse(spec.GetRawText());
KubernetesHelmChartExtensions.cs (2)
373
stateSection.Data
[
"ReleaseName"] = releaseName;
374
stateSection.Data
[
"Namespace"] = @namespace;
Aspire.Hosting.Radius (1)
Publishing\RadiusDeploymentPipelineStep.cs (1)
688
parametersNode
[
identifier] = new JsonObject { ["value"] = value };
Aspire.Hosting.RemoteHost (7)
Ats\AtsCallbackProxyFactory.cs (2)
302
args
[
$"p{ctParamIndex}"] = tokenId;
304
args
[
"$cancellationToken"] = tokenId;
Ats\AtsError.cs (5)
53
obj
[
"capability"] = Capability;
58
obj
[
"details"] = Details.ToJsonObject();
100
obj
[
"parameter"] = Parameter;
105
obj
[
"expected"] = Expected;
110
obj
[
"actual"] = Actual;
Aspire.Hosting.Tests (63)
Orchestrator\ParameterProcessorTests.cs (1)
1680
_unflattenedState
[
section.SectionName] = section.Data.DeepClone().AsObject();
Publishing\ContainerImageArchiveRewriterTests.cs (1)
456
metadata
[
entryName] = JsonNode.Parse(TestContainerImageArchive.ReadEntryText(archivePath, entryName));
Publishing\DeploymentStateManagerTests.cs (61)
44
section1.Data
[
"key1"] = "value1";
60
section.Data
[
"NullValue"] = null;
79
section1.Data
[
"key1"] = "value1";
89
section2.Data
[
"key2"] = "value2";
108
parametersSection.Data
[
"param1"] = "value1";
109
azureSection.Data
[
"resource1"] = "azure-value1";
137
section.Data
[
$"key{sectionIndex}"] = $"value{sectionIndex}";
160
section1.Data
[
"key1"] = "value1";
181
section1.Data
[
"key1"] = "value1";
194
section2.Data
[
"key2"] = "value2";
253
section.Data
[
"key1"] = "value1";
270
section.Data
[
"nestedKey"] = "nestedValue";
288
section1.Data
[
"key1"] = "value1";
289
section2.Data
[
"key2"] = "value2";
324
section1.Data
[
"key1"] = "value1";
333
section2.Data
[
"key2"] = "value2";
365
topLevel.Data
[
"topKey"] = "topValue";
366
nested.Data
[
"nestedKey"] = "nestedValue";
385
section.Data
[
"key"] = "value";
476
legacySection.Data
[
"legacy"] = true;
483
migratedSection.Data
[
"current"] = true;
513
legacySection.Data
[
"Value"] = "legacy";
517
migratedSection.Data
[
"Claimed"] = true;
529
sameManagerLegacySection.Data
[
"Value"] = "legacy";
552
section.Data
[
"Value"] = "committed";
569
legacySection.Data
[
"Value"] = "legacy";
678
initialSection.Data
[
"Leaf"] = "initial";
685
staleObjectSection.Data
[
"Leaf"] = "updated";
713
firstSection.Data
[
"Features"] = new JsonObject { ["A"] = true };
714
secondSection.Data
[
"Features"] = new JsonObject { ["B"] = true };
740
firstLegacySection.Data
[
"SandboxId"] = "first-sandbox";
743
secondLegacySection.Data
[
"SandboxId"] = "second-sandbox";
751
firstSection.Data
[
"Migrated"] = true;
797
legacyAzureSection.Data
[
"SubscriptionId"] = "legacy-subscription";
798
legacyAzureSection.Data
[
"Sandboxes"] = new JsonObject
807
azureSection.Data
[
"SubscriptionId"] = "current-subscription";
833
legacyAzureSection.Data
[
"SubscriptionId"] = "legacy-subscription";
834
legacyAzureSection.Data
[
"Sandboxes"] = new JsonObject
844
newSandboxSection.Data
[
"SandboxId"] = "new-sandbox";
874
legacySandboxesSection.Data
[
"first"] = new JsonObject
879
legacySandboxesSection.Data
[
"second"] = new JsonObject
889
newChildSection.Data
[
"SandboxId"] = "new-sandbox";
918
firstLegacySection.Data
[
"SandboxId"] = "first-sandbox";
921
secondLegacySection.Data
[
"SandboxId"] = "second-sandbox";
928
firstSection.Data
[
"Updated"] = true;
929
secondSection.Data
[
"Updated"] = true;
954
legacyAzureSection.Data
[
"SubscriptionId"] = "legacy-subscription";
955
legacyAzureSection.Data
[
"Location"] = "legacy-location";
962
firstAzureSection.Data
[
"SubscriptionId"] = "current-subscription";
963
secondAzureSection.Data
[
"Location"] = "current-location";
986
legacySection.Data
[
"SubscriptionId"] = "sub";
1016
currentSection.Data
[
"SubscriptionId"] = "current-sub";
1047
currentSection.Data
[
"SubscriptionId"] = "current-sub";
1064
restartedSection.Data
[
"Location"] = "westus";
1077
section.Data
[
"SubscriptionId"] = "sub";
1097
legacySection.Data
[
"SandboxId"] = "sandbox";
1118
firstLegacySection.Data
[
"SandboxId"] = "first-sandbox";
1121
secondLegacySection.Data
[
"SandboxId"] = "second-sandbox";
1130
azureSection.Data
[
"SubscriptionId"] = "current-subscription";
1153
firstLegacySection.Data
[
"SandboxId"] = "first";
1156
secondLegacySection.Data
[
"SandboxId"] = "second";
Aspire.Hosting.Yarp (5)
YarpJsonConfigGeneratorBuilder.cs (5)
84
var jsonProxyConfig = jsonObject
[
"ReverseProxy"] = new JsonObject();
85
jsonProxyConfig
[
"Clusters"] = AddClusters();
86
jsonProxyConfig
[
"Routes"] = AddRoutes();
102
routesNode
[
route.RouteId] = node;
116
routesNode
[
cluster.ClusterId] = node;
ConfigurationSchemaGenerator (21)
ConfigSchemaEmitter.cs (21)
63
categoryNode
[
"$ref"] = "#/definitions/logLevelThreshold";
67
parent
[
"definitions"] = new JsonObject
120
currentNode
[
"type"] = "object";
126
currentNode
[
propertiesName] = propertiesNode;
241
currentNode
[
"type"] = "object";
247
currentNode
[
"properties"] = propertiesNode;
318
currentNode
[
"type"] = typeName;
320
currentNode
[
containerName] = containerNode;
445
propertyNode
[
"description"] = description;
459
propertyNode
[
"default"] = true;
463
propertyNode
[
"default"] = false;
591
propertyNode
[
"type"] = "string";
592
propertyNode
[
"pattern"] = TimeSpanRegex;
608
propertyNode
[
"enum"] = enumNode;
612
propertyNode
[
"type"] = "string";
613
propertyNode
[
"format"] = "uri";
620
propertyNode
[
"type"] = new JsonArray { "number", "string" };
624
propertyNode
[
"type"] = "string";
625
propertyNode
[
"format"] = "uuid";
630
propertyNode
[
"oneOf"] = new JsonArray
649
propertyNode
[
"type"] = GetParsableTypeName(parsable);
dotnet-aot (1)
parent\dotnet\Telemetry\TelemetryDiskLogger.cs (1)
62
root
[
"activities"] = activitiesArray;
dotnet-user-jwts (2)
Helpers\JwtAuthenticationSchemeSettings.cs (2)
34
schemes
[
SchemeName] = settingsObject;
46
config
[
AuthenticationKey] = new JsonObject
Infrastructure.Tests (1)
Pipelines\NpmCliPackageTests.cs (1)
598
packageMap
[
rid.Rid] = $"{PackageName}-{rid.Rid}";
Microsoft.AspNetCore.JsonPatch.SystemTextJson (1)
Internal\JsonObjectAdapter.cs (1)
22
obj
[
segment] = value != null ? JsonSerializer.SerializeToNode(value, serializerOptions) : GetJsonNull();
Microsoft.AspNetCore.OpenApi (60)
Extensions\JsonNodeSchemaExtensions.cs (51)
90
schema
[
OpenApiSchemaKeywords.FormatKeyword] = "byte";
125
schema
[
rangeAttribute.MinimumIsExclusive ? OpenApiSchemaKeywords.ExclusiveMinimum : OpenApiSchemaKeywords.MinimumKeyword] = minValue;
129
schema
[
rangeAttribute.MaximumIsExclusive ? OpenApiSchemaKeywords.ExclusiveMaximum : OpenApiSchemaKeywords.MaximumKeyword] = maxValue;
134
schema
[
OpenApiSchemaKeywords.PatternKeyword] = regularExpressionAttribute.Pattern;
140
schema
[
key] = maxLengthAttribute.Length;
146
schema
[
key] = minLengthAttribute.Length;
152
schema
[
$"min{targetKeySuffix}"] = lengthAttribute.MinimumLength;
153
schema
[
$"max{targetKeySuffix}"] = lengthAttribute.MaximumLength;
157
schema
[
OpenApiSchemaKeywords.FormatKeyword] = "uri";
161
schema
[
OpenApiSchemaKeywords.MinLengthKeyword] = stringLengthAttribute.MinimumLength;
162
schema
[
OpenApiSchemaKeywords.MaxLengthKeyword] = stringLengthAttribute.MaximumLength;
186
schema
[
schemaAttribute] = null;
190
schema
[
schemaAttribute] = JsonSerializer.SerializeToNode(defaultValue, jsonTypeInfo);
213
schema
[
OpenApiSchemaKeywords.FormatKeyword] = format;
230
schema
[
OpenApiSchemaKeywords.MinimumKeyword] = minRouteConstraint.Min;
234
schema
[
OpenApiSchemaKeywords.MaximumKeyword] = maxRouteConstraint.Max;
238
schema
[
OpenApiSchemaKeywords.MinLengthKeyword] = minLengthRouteConstraint.MinLength;
242
schema
[
OpenApiSchemaKeywords.MaxLengthKeyword] = maxLengthRouteConstraint.MaxLength;
246
schema
[
OpenApiSchemaKeywords.MinimumKeyword] = rangeRouteConstraint.Min;
247
schema
[
OpenApiSchemaKeywords.MaximumKeyword] = rangeRouteConstraint.Max;
251
schema
[
OpenApiSchemaKeywords.TypeKeyword] = JsonSchemaType.String.ToString();
252
schema
[
OpenApiSchemaKeywords.FormatKeyword] = null;
253
schema
[
OpenApiSchemaKeywords.PatternKeyword] = regexRouteConstraint.Constraint.ToString();
257
schema
[
OpenApiSchemaKeywords.MinLengthKeyword] = lengthRouteConstraint.MinLength;
258
schema
[
OpenApiSchemaKeywords.MaxLengthKeyword] = lengthRouteConstraint.MaxLength;
262
schema
[
OpenApiSchemaKeywords.TypeKeyword] = JsonSchemaType.Number.ToString();
263
schema
[
OpenApiSchemaKeywords.FormatKeyword] = constraint is FloatRouteConstraint ? "float" : "double";
267
schema
[
OpenApiSchemaKeywords.TypeKeyword] = JsonSchemaType.Integer.ToString();
268
schema
[
OpenApiSchemaKeywords.FormatKeyword] = constraint is LongRouteConstraint ? "int64" : "int32";
272
schema
[
OpenApiSchemaKeywords.TypeKeyword] = JsonSchemaType.String.ToString();
273
schema
[
OpenApiSchemaKeywords.FormatKeyword] = constraint is GuidRouteConstraint ? "uuid" : null;
277
schema
[
OpenApiSchemaKeywords.TypeKeyword] = JsonSchemaType.Boolean.ToString();
278
schema
[
OpenApiSchemaKeywords.FormatKeyword] = null;
282
schema
[
OpenApiSchemaKeywords.TypeKeyword] = JsonSchemaType.String.ToString();
283
schema
[
OpenApiSchemaKeywords.FormatKeyword] = null;
287
schema
[
OpenApiSchemaKeywords.TypeKeyword] = JsonSchemaType.String.ToString();
288
schema
[
OpenApiSchemaKeywords.FormatKeyword] = "date-time";
369
schema
[
OpenApiSchemaKeywords.EnumKeyword] = enumArray;
390
schema
[
defaultKey] = (JsonNode)memberName;
403
schema
[
OpenApiSchemaKeywords.TypeKeyword] = (schemaTypes & ~JsonSchemaType.Null).ToString();
455
mappings
[
$"{discriminator}"] = $"{baseSchemaReferenceId}{createSchemaReferenceId(jsonDerivedType)}";
458
schema
[
OpenApiSchemaKeywords.DiscriminatorKeyword] = polymorphismOptions.TypeDiscriminatorPropertyName;
459
schema
[
OpenApiSchemaKeywords.DiscriminatorMappingKeyword] = mappings;
462
schema
[
OpenApiSchemaKeywords.DiscriminatorDefaultMappingKeyword] = baseSchemaReferenceId;
477
schema
[
OpenApiConstants.SchemaId] = schemaReferenceId;
491
schema
[
OpenApiConstants.SchemaIsUnion] = true;
497
schema
[
OpenApiConstants.SchemaId] = "Base";
561
schema
[
OpenApiSchemaKeywords.TypeKeyword] = (schemaTypes | JsonSchemaType.Null).ToString();
568
schema
[
OpenApiSchemaKeywords.TypeKeyword] = nonNullableSchemaTypes.ToString();
580
schema
[
OpenApiConstants.NullableProperty] = true;
604
schema
[
OpenApiSchemaKeywords.TypeKeyword] = typeArray[0]?.GetValue<string>();
Schemas\OpenApiJsonSchema.Helpers.cs (1)
168
obj
[
key] = ReadJsonNode(ref reader);
Services\Schemas\OpenApiSchemaService.cs (8)
113
schema
[
OpenApiSchemaKeywords.DescriptionKeyword] = typeDescriptionAttribute.Description;
117
schema
[
OpenApiSchemaKeywords.DeprecatedKeyword] = true;
135
schema
[
OpenApiSchemaKeywords.DescriptionKeyword] = descriptionAttribute.Description;
139
schema
[
OpenApiSchemaKeywords.DeprecatedKeyword] = true;
146
schema
[
OpenApiConstants.RefDescriptionAnnotation] = descriptionAttribute.Description;
150
schema
[
OpenApiConstants.RefDeprecatedAnnotation] = true;
623
newObject
[
property.Key] = processedValue?.DeepClone();
627
newObject
[
property.Key] = null;
Microsoft.Extensions.AI (6)
Realtime\LoggingRealtimeClientSession.cs (6)
196
obj
[
"content"] = s;
200
obj
[
"content"] = AsJson(message.RawRepresentation);
204
obj
[
"messageId"] = message.MessageId;
219
obj
[
"content"] = s;
223
obj
[
"content"] = AsJson(message.RawRepresentation);
227
obj
[
"messageId"] = message.MessageId;
Microsoft.Extensions.AI.Abstractions (45)
Utilities\AIJsonUtilities.Schema.Create.cs (36)
152
schema
[
SchemaPropertyName] = SchemaKeywordUri;
157
schema
[
TitlePropertyName] = title;
162
schema
[
DescriptionPropertyName] = description;
165
schema
[
TypePropertyName] = "object"; // Method schemas always hardcode the type as "object".
166
schema
[
PropertiesPropertyName] = parameterSchemas;
170
schema
[
RequiredPropertyName] = requiredProperties;
301
objSchema
[
RefPropertyName] = (JsonNode)refUri;
328
obj
[
TypePropertyName] = new JsonArray { (JsonNode)numericType, (JsonNode)"null" };
332
obj
[
TypePropertyName] = (JsonNode)numericType;
349
objSchema
[
TypePropertyName] = new JsonArray { (JsonNode)typeValue, (JsonNode)"null" };
370
objSchema
[
TypePropertyName] = new JsonArray { (JsonNode)typeValue, (JsonNode)"null" };
458
obj
[
MinLengthStringPropertyName] ??= stringLengthAttribute.MinimumLength;
461
obj
[
MaxLengthStringPropertyName] ??= stringLengthAttribute.MaximumLength;
470
obj
[
MinLengthStringPropertyName] ??= minLengthAttribute.Length;
474
obj
[
MinLengthCollectionPropertyName] ??= minLengthAttribute.Length;
484
obj
[
MaxLengthStringPropertyName] ??= maxLengthAttribute.Length;
488
obj
[
MaxLengthCollectionPropertyName] ??= maxLengthAttribute.Length;
538
obj
[
MinExclusiveRangePropertyName] ??= minNode;
543
obj
[
MinRangePropertyName] ??= minNode;
552
obj
[
MaxExclusiveRangePropertyName] ??= maxNode;
557
obj
[
MaxRangePropertyName] ??= maxNode;
576
requiredArray ??= (JsonArray)(requiredSchemaObj
[
RequiredPropertyName] = new JsonArray());
613
obj
[
MinLengthStringPropertyName] ??= lengthAttribute.MinimumLength;
616
obj
[
MaxLengthStringPropertyName] ??= lengthAttribute.MaximumLength;
622
obj
[
MinLengthCollectionPropertyName] ??= lengthAttribute.MinimumLength;
625
obj
[
MaxLengthCollectionPropertyName] ??= lengthAttribute.MaximumLength;
636
obj
[
EnumPropertyName] = enumArray;
651
(JsonObject)(obj
[
NotPropertyName] = new JsonObject());
657
notObj
[
EnumPropertyName] = enumArray;
670
obj
[
FormatPropertyName] ??= "date-time";
674
obj
[
FormatPropertyName] ??= "date";
678
obj
[
FormatPropertyName] ??= "time";
682
obj
[
FormatPropertyName] ??= "email";
686
obj
[
FormatPropertyName] ??= "uri";
690
obj
[
FormatPropertyName] ??= "uri";
691
obj
[
ContentMediaTypePropertyName] ??= "image/*";
Utilities\AIJsonUtilities.Schema.Transform.cs (9)
75
properties
[
prop.Key] = TransformSchemaCore(prop.Value, transformOptions, path);
85
schemaObj
[
ItemsPropertyName] = TransformSchemaCore(itemsSchema, transformOptions, path);
93
schemaObj
[
AdditionalPropertiesPropertyName] = TransformSchemaCore(additionalProps, transformOptions, path);
100
schemaObj
[
NotPropertyName] = TransformSchemaCore(notSchema, transformOptions, path);
130
schemaObj
[
AdditionalPropertiesPropertyName] = (JsonNode)false;
141
schemaObj
[
RequiredPropertyName] = requiredProps;
172
schemaObj
[
"type"] = (JsonNode)foundType;
173
schemaObj
[
"nullable"] = (JsonNode)true;
185
schemaObj
[
DescriptionPropertyName] = description;
Microsoft.Extensions.AI.Evaluation.Quality (1)
AIToolExtensions.cs (1)
34
functionJsonNode
[
"functionReturnValueSchema"] =
Microsoft.Extensions.AI.Evaluation.Safety (6)
ContentSafetyServicePayloadUtilities.cs (6)
157
payload
[
"MetricList"] = new JsonArray([.. metricNames]);
204
item
[
questionPropertyName] = question.Text;
209
item
[
answerPropertyName] = answer.Text;
214
item
[
contextPropertyName] = normalizedPerTurnContext[index];
239
payload
[
"MetricList"] = new JsonArray([.. metricNames]);
371
payload
[
"MetricList"] = new JsonArray([.. metricNames]);
Microsoft.Extensions.AI.OpenAI (1)
OpenAIClientExtensions.cs (1)
91
schemaObj
[
"description"] = schemaObj["description"] is { } descriptionNode && descriptionNode.GetValueKind() == JsonValueKind.String ?
Microsoft.ML.AutoML (9)
SweepableEstimator\Converter\MultiModelPipelineConverter.cs (2)
27
jsonObject
[
"schema"] = value.Schema.ToString();
28
jsonObject
[
"estimators"] = JsonValue.Create(value.Estimators);
SweepableEstimator\Converter\SweepableEstimatorConverter.cs (2)
30
jObject
[
"estimatorType"] = JsonValue.Create(value.EstimatorType);
31
jObject
[
"parameter"] = JsonValue.Create(value.Parameter);
SweepableEstimator\Converter\SweepableEstimatorPipelineConverter.cs (2)
30
jNode
[
"parameter"] = JsonValue.Create(parameter);
31
jNode
[
"estimators"] = JsonValue.Create(estimators);
SweepableEstimator\Converter\SweepablePipelineConverter.cs (3)
28
jsonObject
[
"schema"] = value.Schema.ToString();
29
jsonObject
[
"currentSchema"] = value.CurrentParameter["_SCHEMA_"].AsType<string>();
30
jsonObject
[
"estimators"] = JsonValue.Create(value.Estimators);
Microsoft.NET.Build.Containers (13)
ImageConfig.cs (13)
94
newConfig
[
"ExposedPorts"] = CreatePortMap();
98
newConfig
[
"Labels"] = CreateLabelMap();
102
newConfig
[
"Env"] = CreateEnvironmentVariablesMapping();
107
newConfig
[
"WorkingDir"] = _newWorkingDirectory;
112
newConfig
[
"Entrypoint"] = ToJsonArray(_newEntrypoint);
117
newConfig
[
"Cmd"] = ToJsonArray(_newCmd);
122
newConfig
[
"User"] = _user;
134
newConfig
[
propertyName] = JsonNode.Parse(propertyValue.ToJsonString());
177
history
[
"author"] = h.author;
181
history
[
"comment"] = h.comment;
185
history
[
"created"] = RFC3339Format(date);
189
history
[
"created_by"] = h.created_by;
193
history
[
"empty_layer"] = h.empty_layer;
Microsoft.NET.Build.Tasks (12)
GenerateRuntimeConfigurationFiles.cs (12)
316
configProperties
[
hostConfigurationOption.ItemSpec] = GetConfigPropertyValue(hostConfigurationOption);
364
configProperties
[
"System.Reflection.Metadata.MetadataUpdater.IsSupported"] = true;
365
configProperties
[
"System.StartupHookProvider.IsSupported"] = true;
442
json
[
"tfm"] = runtimeOptions.Tfm;
447
json
[
"rollForward"] = runtimeOptions.RollForward;
452
json
[
"framework"] = SerializeFramework(runtimeOptions.Framework);
457
json
[
"frameworks"] = SerializeFrameworks(runtimeOptions.Frameworks);
462
json
[
"includedFrameworks"] = SerializeFrameworks(runtimeOptions.IncludedFrameworks);
475
json
[
"additionalProbingPaths"] = probingPaths;
483
json
[
rawOption.Key] = rawOption.Value?.DeepClone();
509
json
[
"name"] = framework.Name;
514
json
[
"version"] = framework.Version;
Microsoft.TemplateEngine.Cli (5)
Alias\AliasRegistry.cs (2)
158
commandAliases
[
kvp.Key] = arr;
160
root
[
"CommandAliases"] = commandAliases;
PostActionProcessors\AddJsonPropertyPostActionProcessor.cs (3)
200
parentProperty
[
newJsonPropertyName] = JsonNode.Parse(newJsonPropertyValue);
204
parentProperty
[
newJsonPropertyName] = newJsonPropertyValue;
231
node
[
property] = childNode = new JsonObject();
Microsoft.TemplateEngine.Edge (1)
parent\Shared\JExtensions.cs (1)
649
target
[
property.Key] = property.Value != null
Microsoft.TemplateEngine.Orchestrator.RunnableProjects (1)
parent\Shared\JExtensions.cs (1)
649
target
[
property.Key] = property.Value != null
Microsoft.TemplateEngine.Utils (1)
parent\Shared\JExtensions.cs (1)
649
target
[
property.Key] = property.Value != null
Microsoft.TemplateSearch.Common (1)
parent\Shared\JExtensions.cs (1)
649
target
[
property.Key] = property.Value != null
MSBuild (13)
JsonOutputFormatter.cs (12)
39
propertiesNode
[
property] = getProperty(property);
42
_topLevelNode
[
"Properties"] = propertiesNode;
61
jsonItem
[
"Identity"] = item.GetMetadataValue("Identity");
69
jsonItem
[
metadatumName] = TryGetMetadataValue(item, metadatumName);
75
itemsNode
[
itemName] = itemArray;
78
_topLevelNode
[
"Items"] = itemsNode;
95
targetResults
[
"Result"] = targetResult.ResultCode.ToString();
100
jsonItem
[
"Identity"] = item.GetMetadata("Identity");
108
jsonItem
[
metadatumName] = TryGetMetadata(item, metadatumName);
114
targetResults
[
"Items"] = outputArray;
115
targetResultsNode
[
targetName] = targetResults;
118
_topLevelNode
[
"TargetResults"] = targetResultsNode;
XMake.cs (1)
4760
jsonNode
[
featureName] = Features.CheckFeatureAvailability(featureName).ToString();
NuGet.Protocol (7)
Plugins\Logging\AssemblyLogMessage.cs (2)
49
message
[
"file version"] = _fileVersion;
54
message
[
"informational version"] = _informationalVersion;
Plugins\Logging\EnvironmentVariablesLogMessage.cs (3)
38
message
[
"handshake timeout in seconds"] = _handshakeTimeout.Value;
43
message
[
"idle timeout in seconds"] = _idleTimeout.Value;
48
message
[
"request timeout in seconds"] = _requestTimeout.Value;
Plugins\Logging\PluginInstanceLogMessage.cs (1)
38
message
[
"process ID"] = _processId.Value;
Plugins\Logging\TaskLogMessage.cs (1)
40
message
[
"current task ID"] = _currentTaskId.Value;
sdk-tasks (2)
UpdateRuntimeConfig.cs (2)
61
framework
[
"version"] = MicrosoftNetCoreAppVersion;
65
framework
[
"version"] = MicrosoftAspNetCoreAppVersion;
SelectTests (1)
Program.cs (1)
594
selection
[
name] = value;
System.Text.Json (1)
System\Text\Json\Serialization\Converters\Node\JsonObjectConverter.cs (1)
36
jObject
[
propertyName] = jNodeValue;
TestProject.AppHost (2)
TestProgram.cs (2)
178
root
[
project.Name] = projectJson;
181
projectJson
[
"Endpoints"] = endpointsJsonArray;
1175 references to
aspire (60)
Agents\ClaudeCode\ClaudeCodeAgentEnvironmentScanner.cs (2)
207
if (!config.ContainsKey("mcpServers") || config
[
"mcpServers"] is not JsonObject)
212
var servers = config
[
"mcpServers"]!.AsObject();
Agents\Copilot\CopilotAgentEnvironmentScanner.cs (2)
177
if (!config.ContainsKey("mcpServers") || config
[
"mcpServers"] is not JsonObject)
182
var servers = config
[
"mcpServers"]!.AsObject();
Agents\OpenCode\OpenCodeAgentEnvironmentScanner.cs (2)
198
if (!config.ContainsKey("mcp") || config
[
"mcp"] is not JsonObject)
203
var mcp = config
[
"mcp"]!.AsObject();
Agents\VsCode\VsCodeAgentEnvironmentScanner.cs (2)
252
if (!config.ContainsKey("servers") || config
[
"servers"] is not JsonObject)
257
var servers = config
[
"servers"]!.AsObject();
Commands\InitCommand.cs (14)
573
if (settings
[
"appHost"] is not JsonObject appHost)
583
if (language is not null && appHost
[
"language"] is null)
593
if (!string.IsNullOrEmpty(channel) && settings
[
"channel"] is null)
608
var existingProfilesObject = settings
[
"profiles"] as JsonObject;
733
if (profiles
[
"https"] is not JsonObject https || profiles
[
"http"] is not JsonObject http)
738
var httpsEnv = https
[
"environmentVariables"] as JsonObject;
739
var httpEnv = http
[
"environmentVariables"] as JsonObject;
745
if (!TryParseHostPort(https
[
"applicationUrl"]?.GetValue<string>(), "https", out var dashboardHttps)
746
|| !TryParseHostPort(http
[
"applicationUrl"]?.GetValue<string>(), "http", out var dashboardHttp)
747
|| !TryParseHostPort(httpsEnv
[
KnownConfigNames.DashboardOtlpGrpcEndpointUrl]?.GetValue<string>(), "https", out var otlpHttps)
748
|| !TryParseHostPort(httpEnv
[
KnownConfigNames.DashboardOtlpGrpcEndpointUrl]?.GetValue<string>(), "http", out var otlpHttp)
749
|| !TryParseHostPort(httpsEnv
[
KnownConfigNames.ResourceServiceEndpointUrl]?.GetValue<string>(), "https", out var resourceServiceHttps)
750
|| !TryParseHostPort(httpEnv
[
KnownConfigNames.ResourceServiceEndpointUrl]?.GetValue<string>(), "http", out var resourceServiceHttp))
Configuration\ConfigurationService.cs (5)
236
if (!currentObject.ContainsKey(part) || currentObject
[
part] is not JsonObject)
241
currentObject = currentObject
[
part]!.AsObject();
266
if (settings.ContainsKey(partialKey) && settings
[
partialKey] is not JsonObject)
298
if (!currentObject.ContainsKey(part) || currentObject
[
part] is not JsonObject)
303
currentObject = currentObject
[
part]!.AsObject();
Migrations\TypeScriptAppHostMigration.cs (4)
201
root
[
"appHost"] is not JsonObject appHost ||
202
appHost
[
"path"] is not JsonValue pathValue ||
248
root
[
"include"] is not JsonArray include)
288
root
[
"scripts"] is not JsonObject scripts)
Npm\SigstoreNpmProvenanceChecker.cs (2)
210
var predicateTypeNode = attestationObj
[
"predicateType"];
231
var bundleNode = attestationObj
[
"bundle"];
Projects\RepositoryToolUpdater.cs (5)
283
var isRoot = !isNpm && content
[
"isRoot"]?.GetValue<bool>() == true;
289
if (content
[
section] is JsonObject dependencies && dependencies
[
NpmPackageId] is { } version)
295
else if (content
[
"tools"] is JsonObject tools)
301
references.Add(new(properties, "version", properties
[
"version"]?.GetValue<string>() ?? throw new JsonException("Missing tool version.")));
Scaffolding\PackageJsonMerger.cs (13)
97
var scaffoldScripts = scaffold
[
ScriptsKey]?.AsObject();
123
var targetValue = existing
[
key];
164
else if (existingScripts
[
name] is not null)
207
if (scripts
[
unprefixed] is null)
222
var scaffoldDeps = scaffold
[
sectionName]?.AsObject();
237
var existingVersionNode = existingDeps
[
packageName];
264
if (existing
[
sectionName] is not JsonObject existingDeps)
269
var existingVersionNode = existingDeps
[
packageName];
293
var scaffoldEngines = scaffold
[
EnginesKey]?.AsObject();
313
else if (existingEngines
[
key] is null)
334
var targetValue = target
[
key];
350
if (parent
[
propertyName] is JsonObject obj)
355
if (parent
[
propertyName] is not null)
Scaffolding\ScaffoldingService.cs (4)
374
if (parent
[
propertyName] is JsonObject obj)
402
if (scripts
[
scriptName] is JsonValue existingScriptValue &&
409
if (scripts
[
scriptName] is not null)
665
if (existing
[
key] is not { } existingValue)
Utils\ConfigurationHelper.cs (5)
364
if (!currentObject.ContainsKey(part) || currentObject
[
part] is null)
368
else if (currentObject
[
part] is JsonObject)
370
currentObject = currentObject
[
part]!.AsObject();
381
currentObject = currentObject
[
part]!.AsObject();
392
if (currentObject.ContainsKey(finalKey) && currentObject
[
finalKey] is not null)
Aspire.Cli.EndToEnd.Tests (49)
CSharpInitTests.cs (4)
128
Assert.Equal("apphost.cs", config
[
"appHost"]?["path"]?.GetValue<string>());
143
Assert.Empty(Assert.IsType<JsonArray>(description
[
"resources"]));
198
var appHostNode = config
[
"appHost"];
204
var language = appHostNode
[
"language"]?.GetValue<string>();
ProjectReferenceTests.cs (1)
118
var packages = config
[
"packages"] as JsonObject ?? new JsonObject();
RepositoryToolUpdateTests.cs (4)
198
expectedDotnet
[
"tools"]!["aspire.cli"]!["version"] = dotnetVersion;
203
expectedNpm
[
"dependencies"]!["@microsoft/aspire-cli"] = npmVersion;
204
expectedNpm
[
"devDependencies"]!["@microsoft/aspire-cli"] = "^" + npmVersion;
205
expectedNpm
[
"optionalDependencies"]!["@microsoft/aspire-cli"] = "~" + npmVersion;
SelfUpdateChannelPersistenceTests.cs (1)
103
Assert.Equal("staging", updatedConfig
[
"channel"]?.GetValue<string>());
SingleFileAppHostInitDotnetRunTests.cs (6)
85
var httpsProfile = runJson
[
"profiles"]?["https"]?.AsObject();
87
Assert.Equal("Project", httpsProfile
[
"commandName"]?.GetValue<string>());
88
Assert.False(string.IsNullOrWhiteSpace(httpsProfile
[
"applicationUrl"]?.GetValue<string>()));
89
var httpsEnv = httpsProfile
[
"environmentVariables"]?.AsObject();
91
Assert.False(string.IsNullOrWhiteSpace(httpsEnv
[
"ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL"]?.GetValue<string>()));
92
Assert.False(string.IsNullOrWhiteSpace(httpsEnv
[
"ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL"]?.GetValue<string>()));
TypeScriptLegacyAppHostTests.cs (1)
137
var appHost = configJson
[
"appHost"]!.AsObject();
TypeScriptMigrateAppHostTests.cs (2)
124
var appHost = configJson
[
"appHost"]!.AsObject();
216
var includes = tsconfig
[
"include"]!.AsArray().Select(n => n!.GetValue<string>()).ToArray();
TypeScriptPolyglotTests.cs (30)
449
var scripts = packageJson
[
"scripts"]!.AsObject();
450
originalDevScript = scripts
[
"dev"]?.GetValue<string>();
451
originalBuildScript = scripts
[
"build"]?.GetValue<string>();
452
originalPreviewScript = scripts
[
"preview"]?.GetValue<string>();
453
originalPackageType = packageJson
[
"type"]?.GetValue<string>();
480
scripts = packageJson
[
"scripts"]!.AsObject();
482
Assert.Equal(originalDevScript, scripts
[
"dev"]?.GetValue<string>());
483
Assert.Equal(originalBuildScript, scripts
[
"build"]?.GetValue<string>());
484
Assert.Equal(originalPreviewScript, scripts
[
"preview"]?.GetValue<string>());
485
Assert.Equal("custom-apphost-start", scripts
[
"aspire:start"]?.GetValue<string>());
486
Assert.Equal("npm --prefix aspire-apphost run aspire:build", scripts
[
"aspire:build"]?.GetValue<string>());
487
Assert.Equal("npm --prefix aspire-apphost run aspire:dev", scripts
[
"aspire:dev"]?.GetValue<string>());
488
Assert.Equal(originalPackageType, packageJson
[
"type"]?.GetValue<string>());
490
var rootDependencies = packageJson
[
"dependencies"]?.AsObject();
491
var rootDevDependencies = packageJson
[
"devDependencies"]?.AsObject();
505
var appHostScripts = appHostPackageJson
[
"scripts"]!.AsObject();
506
var appHostDependencies = appHostPackageJson
[
"dependencies"]!.AsObject();
507
var appHostDevDependencies = appHostPackageJson
[
"devDependencies"]!.AsObject();
508
Assert.Equal("module", appHostPackageJson
[
"type"]?.GetValue<string>());
509
Assert.Equal("aspire-apphost", appHostPackageJson
[
"name"]?.GetValue<string>());
510
Assert.Equal("aspire run", appHostScripts
[
"aspire:start"]?.GetValue<string>());
511
Assert.NotNull(appHostDependencies
[
"vscode-jsonrpc"]);
512
Assert.NotNull(appHostDevDependencies
[
"@types/node"]);
513
Assert.NotNull(appHostDevDependencies
[
"nodemon"]);
514
Assert.NotNull(appHostDevDependencies
[
"tsx"]);
515
Assert.NotNull(appHostDevDependencies
[
"typescript"]);
521
var appHost = config
[
"appHost"]!.AsObject();
522
Assert.Equal("aspire-apphost/apphost.mts", appHost
[
"path"]?.GetValue<string>());
523
var packagesNode = config
[
"packages"];
526
Assert.NotNull(packages
[
"Aspire.Hosting.JavaScript"]);
Aspire.Cli.Tests (328)
Agents\CopilotAgentEnvironmentScannerTests.cs (9)
67
var servers = config
[
"mcpServers"]?.AsObject();
71
var aspireServer = servers
[
"aspire"]?.AsObject();
73
Assert.Equal("local", aspireServer
[
"type"]?.GetValue<string>());
74
Assert.Equal("aspire", aspireServer
[
"command"]?.GetValue<string>());
76
var args = aspireServer
[
"args"]?.AsArray();
83
var env = aspireServer
[
"env"]?.AsObject();
86
Assert.Equal("${DOTNET_ROOT}", env
[
"DOTNET_ROOT"]?.GetValue<string>());
89
var tools = aspireServer
[
"tools"]?.AsArray();
146
var servers = config
[
"mcpServers"]?.AsObject();
Agents\TelemetryHookConfiguratorTests.cs (22)
31
Assert.Equal(1, (int)root
[
"version"]!);
33
var entry = root
[
"hooks"]!["postToolUse"]!.AsArray()[0]!.AsObject();
34
Assert.Equal("command", (string)entry
[
"type"]!);
35
Assert.Equal(30, (int)entry
[
"timeoutSec"]!);
36
Assert.Contains("track-telemetry.sh", (string)entry
[
"bash"]!);
37
Assert.StartsWith("bash ", (string)entry
[
"bash"]!);
38
Assert.Contains("track-telemetry.ps1", (string)entry
[
"powershell"]!);
39
Assert.Contains("-File ", (string)entry
[
"powershell"]!);
41
Assert.StartsWith("pwsh ", (string)entry
[
"powershell"]!);
94
Assert.Equal("command", (string)entry
[
"type"]!);
95
Assert.Equal(30, (int)entry
[
"timeout"]!);
99
var execCommand = (string)entry
[
"command"]!;
100
var args = entry
[
"args"]!.AsArray().Select(a => (string)a!).ToArray();
160
Assert.Equal("claude-opus", (string)root
[
"model"]!);
162
var postToolUse = root
[
"hooks"]!["PostToolUse"]!.AsArray();
246
return root
[
"hooks"]!["PostToolUse"]!.AsArray();
254
&& obj
[
"hooks"] is JsonArray hooks
261
&& (JsonValueHasTelemetryScript(ho
[
"command"])
262
|| (ho
[
"args"] is JsonArray args && args.Any(JsonValueHasTelemetryScript)));
269
&& obj
[
"hooks"] is JsonArray hooks
271
&& ho
[
"command"] is JsonValue v
278
if (group is JsonObject obj && obj
[
"hooks"] is JsonArray hooks)
Agents\VsCodeAgentEnvironmentScannerTests.cs (8)
151
var servers = config
[
"servers"]?.AsObject();
155
var aspireServer = servers
[
"aspire"]?.AsObject();
157
Assert.Equal("stdio", aspireServer
[
"type"]?.GetValue<string>());
158
Assert.Equal("aspire", aspireServer
[
"command"]?.GetValue<string>());
160
var args = aspireServer
[
"args"]?.AsArray();
203
var servers = config
[
"servers"]?.AsObject();
250
Assert.Equal("stdio", aspireServer
[
"type"]?.GetValue<string>());
251
Assert.Equal("aspire", aspireServer
[
"command"]?.GetValue<string>());
Commands\ConfigCommandTests.cs (37)
129
Assert.Equal("bar", settings
[
"foo"]?.ToString());
155
Assert.True(settings
[
"docs"] is JsonObject);
156
var docsObject = settings
[
"docs"]!.AsObject();
157
Assert.Equal("http://localhost:4321/llms-small.txt", docsObject
[
"llmsTxtUrl"]?.ToString());
158
Assert.True(docsObject
[
"api"] is JsonObject);
159
Assert.Equal("http://localhost:4321/sitemap-0.xml", docsObject
[
"api"]?["sitemapUrl"]?.ToString());
187
Assert.Equal("firefox=/profiles/firefox", settings
[
"certificates"]?["nssDbPaths"]?.ToString());
228
Assert.True(settings
[
"foo"] is JsonObject);
229
var fooObject = settings
[
"foo"]!.AsObject();
230
Assert.Equal("baz", fooObject
[
"bar"]?.ToString());
254
Assert.True(settings
[
"foo"] is JsonObject);
255
var fooObject = settings
[
"foo"]!.AsObject();
256
Assert.True(fooObject
[
"bar"] is JsonObject);
257
var barObject = fooObject
[
"bar"]!.AsObject();
258
Assert.Equal("hello", barObject
[
"baz"]?.ToString());
286
Assert.True(settings
[
"foo"] is JsonObject);
287
var fooObject = settings
[
"foo"]!.AsObject();
288
Assert.Equal("nested", fooObject
[
"bar"]?.ToString());
737
Assert.True(settings
[
"features"] is JsonObject);
738
var featuresObject = settings
[
"features"]!.AsObject();
739
Assert.Equal("true", featuresObject
[
"polyglotSupportEnabled"]?.ToString());
768
Assert.True(settings
[
"features"] is JsonObject);
769
var featuresObject = settings
[
"features"]!.AsObject();
770
Assert.Equal("false", featuresObject
[
"polyglotSupportEnabled"]?.ToString());
799
Assert.True(settings
[
"features"] is JsonObject);
800
var featuresObject = settings
[
"features"]!.AsObject();
801
Assert.Equal("false", featuresObject
[
"polyglotSupportEnabled"]?.ToString());
859
Assert.True(settings
[
"features"] is JsonObject);
860
var featuresObject = settings
[
"features"]!.AsObject();
861
Assert.Equal("false", featuresObject
[
"polyglotSupportEnabled"]?.ToString());
892
var featuresObject = settings
[
"features"]!.AsObject();
893
Assert.Equal("nested-value", featuresObject
[
"polyglotSupportEnabled"]?.ToString());
918
var appHost = settings
[
"appHost"]?.AsObject();
920
Assert.Equal("AppHost.csproj", appHost
[
"path"]?.ToString());
948
Assert.Equal("daily", settings
[
"channel"]?.ToString());
949
var appHost = settings
[
"appHost"]?.AsObject();
951
Assert.Equal("AppHost.csproj", appHost
[
"path"]?.ToString());
Commands\InitCommandTests.cs (50)
226
Assert.Equal("apphost.cs", config
[
"appHost"]!["path"]!.GetValue<string>());
268
var appHost = config
[
"appHost"]!.AsObject();
269
Assert.Equal("apphost.cs", appHost
[
"path"]!.GetValue<string>());
270
Assert.Null(appHost
[
"language"]);
296
var profiles = runJson
[
"profiles"]!.AsObject();
298
var https = profiles
[
"https"]!.AsObject();
299
Assert.Equal("Project", https
[
"commandName"]!.GetValue<string>());
300
Assert.True(https
[
"dotnetRunMessages"]!.GetValue<bool>());
301
var httpsUrls = https
[
"applicationUrl"]!.GetValue<string>();
303
var httpsEnv = https
[
"environmentVariables"]!.AsObject();
304
Assert.Equal("Development", httpsEnv
[
KnownAspNetCoreConfigNames.Environment]!.GetValue<string>());
305
Assert.Equal("Development", httpsEnv
[
KnownAspNetCoreConfigNames.DotNetEnvironment]!.GetValue<string>());
306
Assert.StartsWith("https://localhost:", httpsEnv
[
"ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL"]!.GetValue<string>());
307
Assert.StartsWith("https://localhost:", httpsEnv
[
"ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL"]!.GetValue<string>());
309
var http = profiles
[
"http"]!.AsObject();
310
Assert.Equal("Project", http
[
"commandName"]!.GetValue<string>());
311
var httpEnv = http
[
"environmentVariables"]!.AsObject();
312
Assert.Equal("Development", httpEnv
[
KnownAspNetCoreConfigNames.Environment]!.GetValue<string>());
313
Assert.StartsWith("http://localhost:", httpEnv
[
"ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL"]!.GetValue<string>());
314
Assert.StartsWith("http://localhost:", httpEnv
[
"ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL"]!.GetValue<string>());
315
Assert.Equal("true", httpEnv
[
"ASPIRE_ALLOW_UNSECURED_TRANSPORT"]!.GetValue<string>());
320
var aspireProfiles = aspireConfig
[
"profiles"]!.AsObject();
322
aspireProfiles
[
"https"]!["applicationUrl"]!.GetValue<string>(),
325
aspireProfiles
[
"http"]!["applicationUrl"]!.GetValue<string>(),
326
http
[
"applicationUrl"]!.GetValue<string>());
374
var profiles = runJson
[
"profiles"]!.AsObject();
375
var https = profiles
[
"https"]!.AsObject();
376
var http = profiles
[
"http"]!.AsObject();
378
Assert.Equal("https://localhost:18000;http://localhost:18001", https
[
"applicationUrl"]!.GetValue<string>());
379
Assert.Equal("https://localhost:18002", https
[
"environmentVariables"]!["ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL"]!.GetValue<string>());
380
Assert.Equal("https://localhost:18003", https
[
"environmentVariables"]!["ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL"]!.GetValue<string>());
381
Assert.Equal("http://localhost:18001", http
[
"applicationUrl"]!.GetValue<string>());
382
Assert.Equal("http://localhost:18005", http
[
"environmentVariables"]!["ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL"]!.GetValue<string>());
383
Assert.Equal("http://localhost:18006", http
[
"environmentVariables"]!["ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL"]!.GetValue<string>());
427
var preservedProfiles = aspireConfig
[
"profiles"]!.AsObject();
429
var preservedHttps = preservedProfiles
[
"https"]!.AsObject();
430
Assert.Equal("https://localhost:18000", preservedHttps
[
"applicationUrl"]!.GetValue<string>());
431
var preservedEnv = preservedHttps
[
"environmentVariables"]!.AsObject();
432
Assert.Equal("custom-value", preservedEnv
[
"MY_CUSTOM_VAR"]!.GetValue<string>());
566
var appHost = config
[
"appHost"]!.AsObject();
567
Assert.Equal("apphost.mts", appHost
[
"path"]!.GetValue<string>());
568
Assert.Equal("typescript/nodejs", appHost
[
"language"]!.GetValue<string>());
870
Assert.Equal("apphost.cs", merged
[
"appHost"]!.AsObject()["path"]!.GetValue<string>());
872
Assert.Equal("stable", merged
[
"channel"]!.GetValue<string>());
873
Assert.True(merged
[
"features"]!.AsObject()["polyglotSupportEnabled"]!.GetValue<bool>());
1319
Assert.Null(config
[
"channel"]);
1323
Assert.Equal(contextChannel, config
[
"channel"]!.GetValue<string>());
1356
Assert.Equal("pr-99999", config
[
"channel"]!.GetValue<string>());
1388
Assert.Null(config
[
"channel"]);
1432
Assert.Null(config
[
"channel"]);
Commands\OperatingSystemCheckTests.cs (8)
28
Assert.Equal("Linux", result.Metadata
[
"osType"]!.GetValue<string>());
29
Assert.Equal("Linux Ubuntu", result.Metadata
[
"displayName"]!.GetValue<string>());
30
Assert.Equal("24.04", result.Metadata
[
"version"]!.GetValue<string>());
31
Assert.Equal("Ubuntu 24.04.2 LTS", result.Metadata
[
"description"]!.GetValue<string>());
50
Assert.Equal("unknown", result.Metadata
[
"osType"]!.GetValue<string>());
51
Assert.Equal("unknown", result.Metadata
[
"displayName"]!.GetValue<string>());
52
Assert.Equal("1.2.3", result.Metadata
[
"version"]!.GetValue<string>());
53
Assert.Equal("Unknown OS description", result.Metadata
[
"description"]!.GetValue<string>());
Commands\ResourceCommandHelperTests.cs (1)
143
Assert.Equal("#submit", connection.ExecuteResourceCommandArguments
[
"selector"]!.GetValue<string>());
Commands\TelemetryTracesCommandTests.cs (2)
141
Assert.Equal("abc1234567890def", item
[
"traceId"]!.GetValue<string>());
143
var dashboardUrl = item
[
"dashboardUrl"]!.GetValue<string>();
Commands\UpdateCommandRepositoryToolsTests.cs (5)
54
Assert.Equal("^13.4.0", packageJson
[
"devDependencies"]![RepositoryToolUpdater.NpmPackageId]!.GetValue<string>());
88
dotnet
[
"tools"]!["aspire.cli"]!["version"] = "99.0.0";
91
npm
[
"devDependencies"]![RepositoryToolUpdater.NpmPackageId] = "^99.0.0";
546
Assert.Equal(targetVersion, config
[
"sdk"]!["version"]!.GetValue<string>());
547
Assert.Equal("daily", config
[
"channel"]!.GetValue<string>());
Commands\VsCodeExtensionCheckTests.cs (6)
51
Assert.True(result.Metadata
[
"vsCodeInstalled"]!.GetValue<bool>());
52
Assert.False(result.Metadata
[
"extensionInstalled"]!.GetValue<bool>());
53
Assert.Equal(VsCodeExtensionCheck.ExtensionId, result.Metadata
[
"extensionId"]!.GetValue<string>());
80
Assert.True(result.Metadata
[
"vsCodeInstalled"]!.GetValue<bool>());
81
Assert.True(result.Metadata
[
"extensionInstalled"]!.GetValue<bool>());
82
Assert.Equal(VsCodeExtensionCheck.ExtensionId, result.Metadata
[
"extensionId"]!.GetValue<string>());
Configuration\ConfigurationHelperTests.cs (6)
191
Assert.Equal(JsonValueKind.True, normalized
[
"features"]!["enabled"]!.GetValueKind());
192
Assert.Equal(JsonValueKind.False, normalized
[
"features"]!["disabled"]!.GetValueKind());
193
Assert.Equal(JsonValueKind.Number, normalized
[
"settings"]!["count"]!.GetValueKind());
194
Assert.Equal(JsonValueKind.Array, normalized
[
"settings"]!["values"]!.GetValueKind());
195
Assert.Equal(JsonValueKind.Object, normalized
[
"settings"]!["object"]!.GetValueKind());
196
Assert.Null(normalized
[
"settings"]!["nullable"]);
Mcp\ExecuteResourceCommandToolTests.cs (5)
92
Assert.Equal("#submit", connection.ExecuteResourceCommandArguments
[
"selector"]!.GetValue<string>());
113
Assert.Equal("3", connection.ExecuteResourceCommandArguments
[
"count"]!.GetValue<string>());
114
Assert.Equal("true", connection.ExecuteResourceCommandArguments
[
"urgent"]!.GetValue<string>());
115
Assert.Equal("1.5", connection.ExecuteResourceCommandArguments
[
"ratio"]!.GetValue<string>());
116
Assert.Null(connection.ExecuteResourceCommandArguments
[
"optional"]);
Mcp\ListStructuredLogsToolTests.cs (11)
199
Assert.Equal("api-service-instance-1", firstLog
[
"resourceName"]?.GetValue<string>());
200
Assert.Equal(42, firstLog
[
"logId"]?.GetValue<long>());
201
var firstLogAttributes = firstLog
[
"attributes"]?.AsObject();
207
Assert.Equal("http://localhost:18888/structuredlogs?logEntryId=42", firstLog
[
"dashboardUrl"]?.GetValue<string>());
212
Assert.Equal("api-service-instance-2", secondLog
[
"resourceName"]?.GetValue<string>());
213
Assert.Equal(43, secondLog
[
"logId"]?.GetValue<long>());
214
var secondLogAttributes = secondLog
[
"attributes"]?.AsObject();
218
Assert.Equal("http://localhost:18888/structuredlogs?logEntryId=43", secondLog
[
"dashboardUrl"]?.GetValue<string>());
223
Assert.Equal("worker-service", thirdLog
[
"resourceName"]?.GetValue<string>());
224
Assert.Equal(44, thirdLog
[
"logId"]?.GetValue<long>());
226
Assert.Equal("http://localhost:18888/structuredlogs?logEntryId=44", thirdLog
[
"dashboardUrl"]?.GetValue<string>());
Mcp\ListTracesToolTests.cs (13)
172
Assert.Equal("abc123def456789012345678901234567890", firstTrace
[
"traceId"]?.GetValue<string>());
175
var spans = firstTrace
[
"spans"]?.AsArray();
180
Assert.Equal("http://localhost:18888/traces/detail/abc123def456789012345678901234567890", firstTrace
[
"dashboardUrl"]?.GetValue<string>());
185
Assert.Equal("api-service-instance-1", serverSpan
[
"source"]?.GetValue<string>());
186
Assert.Null(serverSpan
[
"destination"]);
191
Assert.Equal("api-service-instance-2", clientSpan
[
"source"]?.GetValue<string>());
192
Assert.Equal("catalog-service", clientSpan
[
"destination"]?.GetValue<string>());
197
Assert.Equal("xyz789abc123456789012345678901234567890", secondTrace
[
"traceId"]?.GetValue<string>());
199
Assert.Equal("http://localhost:18888/traces/detail/xyz789abc123456789012345678901234567890", secondTrace
[
"dashboardUrl"]?.GetValue<string>());
202
var secondTraceSpans = secondTrace
[
"spans"]?.AsArray();
209
Assert.Equal("Internal", internalSpan
[
"kind"]?.GetValue<string>());
210
Assert.Equal("worker-service", internalSpan
[
"source"]?.GetValue<string>());
211
Assert.Null(internalSpan
[
"destination"]);
Migrations\TypeScriptAppHostMigrationTests.cs (7)
62
Assert.Equal(KnownLanguageId.TypeScript, descriptor.Metadata
[
"language"]!.GetValue<string>());
63
Assert.Equal(appHostPath, descriptor.Metadata
[
"appHostPath"]!.GetValue<string>());
190
Assert.Equal("apphost.mts", config
[
"appHost"]!["path"]!.GetValue<string>());
193
var includes = tsconfig
[
"include"]!.AsArray().Select(n => n!.GetValue<string>()).ToArray();
197
var scripts = packageJson
[
"scripts"]!;
198
Assert.Equal("tsc -p tsconfig.apphost.json", scripts
[
"aspire:build"]!.GetValue<string>());
199
Assert.Equal("eslint apphost.mts", scripts
[
"aspire:lint"]!.GetValue<string>());
Projects\GuestAppHostProjectTests.cs (1)
896
expectedManifest
[
"devDependencies"]!["@microsoft/aspire-cli"] = "2.0.0";
Projects\ProjectUpdaterTests.cs (11)
793
itemsAndProperties
[
"Items"]!["PackageReference"]!.AsArray().Clear(); // Then clear it
800
itemsAndProperties
[
"Items"]!["PackageReference"]!.AsArray().Clear(); // Then clear it
4106
properties = root
[
"Properties"]!.AsObject();
4121
items = root
[
"Items"]!.AsObject();
4140
var items = root
[
"Items"]!.AsObject();
4141
var packageReferences = items
[
"PackageReference"]!.AsArray();
4156
var items = root
[
"Items"]!.AsObject();
4157
var packageReferences = items
[
"PackageReference"]!.AsArray();
4172
var items = root
[
"Items"]!.AsObject();
4173
var projectReferences = items
[
"ProjectReference"]!.AsArray();
4189
properties = root
[
"Properties"]!.AsObject();
Scaffolding\PackageJsonMergerTests.cs (100)
57
Assert.Equal("vite", scripts
[
"dev"]?.GetValue<string>());
58
Assert.Equal("vite build", scripts
[
"build"]?.GetValue<string>());
61
Assert.Equal("aspire run", scripts
[
"aspire:dev"]?.GetValue<string>());
62
Assert.Equal("tsc -p tsconfig.apphost.json", scripts
[
"aspire:build"]?.GetValue<string>());
65
Assert.Equal("eslint apphost.ts", scripts
[
"lint"]?.GetValue<string>());
94
Assert.Equal("jest", scripts
[
"test"]?.GetValue<string>());
97
Assert.Equal("aspire run", scripts
[
"dev"]?.GetValue<string>());
98
Assert.Equal("tsc -p tsconfig.apphost.json", scripts
[
"build"]?.GetValue<string>());
99
Assert.Equal("eslint apphost.ts", scripts
[
"lint"]?.GetValue<string>());
131
Assert.Equal("vite", scripts
[
"dev"]?.GetValue<string>());
132
Assert.Equal("vite build", scripts
[
"build"]?.GetValue<string>());
135
Assert.Equal("custom start", scripts
[
"aspire:start"]?.GetValue<string>());
136
Assert.Equal("tsc -p tsconfig.apphost.json", scripts
[
"aspire:build"]?.GetValue<string>());
137
Assert.Equal("tsc --watch -p tsconfig.apphost.json", scripts
[
"aspire:dev"]?.GetValue<string>());
138
Assert.Equal("eslint apphost.ts", scripts
[
"aspire:lint"]?.GetValue<string>());
169
Assert.Equal("npm run aspire:start", scripts
[
"start"]?.GetValue<string>());
170
Assert.Equal("npm run aspire:lint", scripts
[
"lint"]?.GetValue<string>());
173
Assert.Equal("vite", scripts
[
"dev"]?.GetValue<string>());
174
Assert.Equal("vite build", scripts
[
"build"]?.GetValue<string>());
201
Assert.Equal("yarn run aspire:start", scripts
[
"start"]?.GetValue<string>());
226
Assert.Equal("deno task aspire:start", scripts
[
"start"]?.GetValue<string>());
227
Assert.Equal("deno task aspire:dev", scripts
[
"dev"]?.GetValue<string>());
259
Assert.Equal("node server.js", scripts
[
"start"]?.GetValue<string>());
260
Assert.Equal("prettier --check .", scripts
[
"lint"]?.GetValue<string>());
261
Assert.Equal("vite", scripts
[
"dev"]?.GetValue<string>());
262
Assert.Equal("vite build", scripts
[
"build"]?.GetValue<string>());
265
Assert.Equal("aspire run", scripts
[
"aspire:start"]?.GetValue<string>());
266
Assert.Equal("eslint apphost.ts", scripts
[
"aspire:lint"]?.GetValue<string>());
267
Assert.Equal("tsc -p tsconfig.apphost.json", scripts
[
"aspire:build"]?.GetValue<string>());
271
Assert.Equal("node server.js", scripts
[
"start"]?.GetValue<string>());
272
Assert.Equal("prettier --check .", scripts
[
"lint"]?.GetValue<string>());
302
Assert.Equal("vite", scripts
[
"dev"]?.GetValue<string>());
303
Assert.Equal("jest", scripts
[
"test"]?.GetValue<string>());
306
Assert.Equal("aspire run", scripts
[
"aspire:dev"]?.GetValue<string>());
309
Assert.Equal("tsc -p tsconfig.apphost.json", scripts
[
"build"]?.GetValue<string>());
312
Assert.Equal("eslint apphost.ts", scripts
[
"aspire:lint"]?.GetValue<string>());
313
Assert.Equal("npm run aspire:lint", scripts
[
"lint"]?.GetValue<string>());
395
Assert.Equal("my-existing-app", json
[
"name"]?.GetValue<string>());
396
Assert.Equal("3.0.0", json
[
"version"]?.GetValue<string>());
397
Assert.Equal("My cool app", json
[
"description"]?.GetValue<string>());
398
Assert.True(json
[
"private"]?.GetValue<bool>());
399
Assert.Equal("module", json
[
"type"]?.GetValue<string>());
402
Assert.Equal("^20.19.0 || ^22.13.0 || >=24", json
[
"engines"]?["node"]?.GetValue<string>());
470
Assert.Equal("my-app", json
[
"name"]?.GetValue<string>());
544
Assert.Equal("aspire run", scripts
[
"dev"]?.GetValue<string>());
545
Assert.Equal("tsc -p tsconfig.apphost.json", scripts
[
"build"]?.GetValue<string>());
546
Assert.Equal("eslint apphost.ts", scripts
[
"lint"]?.GetValue<string>());
599
var scripts = json
[
"scripts"]!.AsObject();
602
Assert.Equal("vite-project", json
[
"name"]?.GetValue<string>());
603
Assert.Equal("1.0.0", json
[
"version"]?.GetValue<string>());
606
Assert.Equal("vite", scripts
[
"dev"]?.GetValue<string>());
607
Assert.Equal("vite build", scripts
[
"build"]?.GetValue<string>());
608
Assert.Equal("eslint . --ext .ts,.tsx", scripts
[
"lint"]?.GetValue<string>());
609
Assert.Equal("vite preview", scripts
[
"preview"]?.GetValue<string>());
612
Assert.Equal("aspire run", scripts
[
"aspire:dev"]?.GetValue<string>());
613
Assert.Equal("tsc -p tsconfig.apphost.json", scripts
[
"aspire:build"]?.GetValue<string>());
614
Assert.Equal("eslint apphost.ts", scripts
[
"aspire:lint"]?.GetValue<string>());
617
Assert.Equal("tsc --watch -p tsconfig.apphost.json", scripts
[
"watch"]?.GetValue<string>());
660
Assert.Equal("vite", scripts
[
"dev"]?.GetValue<string>());
661
Assert.Equal("vite build", scripts
[
"build"]?.GetValue<string>());
664
Assert.Equal("aspire run", scripts
[
"aspire:start"]?.GetValue<string>());
665
Assert.Equal("tsc -p tsconfig.apphost.json", scripts
[
"aspire:build"]?.GetValue<string>());
666
Assert.Equal("tsc --watch -p tsconfig.apphost.json", scripts
[
"aspire:dev"]?.GetValue<string>());
667
Assert.Equal("eslint apphost.ts", scripts
[
"aspire:lint"]?.GetValue<string>());
670
Assert.Equal("npm run aspire:start", scripts
[
"start"]?.GetValue<string>());
671
Assert.Equal("npm run aspire:lint", scripts
[
"lint"]?.GetValue<string>());
674
Assert.Equal("vite", scripts
[
"dev"]?.GetValue<string>());
675
Assert.Equal("vite build", scripts
[
"build"]?.GetValue<string>());
724
Assert.Equal("tsc && vite build", scripts
[
"build"]?.GetValue<string>());
725
Assert.Equal("concurrently \"tsc -w\" \"vite\"", scripts
[
"dev"]?.GetValue<string>());
726
Assert.Equal("vitest run && echo 'done'", scripts
[
"test"]?.GetValue<string>());
727
Assert.Equal("eslint . --ext .ts,.tsx && prettier --check .", scripts
[
"lint"]?.GetValue<string>());
728
Assert.Equal("rm -rf dist && rm -rf node_modules/.cache", scripts
[
"clean"]?.GetValue<string>());
729
Assert.Equal("node server.js | tee output.log", scripts
[
"start"]?.GetValue<string>());
1173
Assert.Equal("^20.19.0 || ^22.13.0 || >=24", engines
[
"node"]?.GetValue<string>());
1201
Assert.Equal("^20.19.0 || ^22.13.0 || >=24", engines
[
"node"]?.GetValue<string>());
1203
Assert.Equal(">=8", engines
[
"npm"]?.GetValue<string>());
1226
Assert.Equal("^20.19.0 || ^22.13.0 || >=24", engines
[
"node"]?.GetValue<string>());
1250
var keywords = doc
[
"keywords"]!.AsArray();
1255
var files = doc
[
"files"]!.AsArray();
1304
Assert.Equal("my-project", doc
[
"name"]!.GetValue<string>());
1305
Assert.Equal("ISC", doc
[
"license"]!.GetValue<string>());
1308
Assert.NotNull(doc
[
"keywords"]);
1309
Assert.IsAssignableFrom<JsonArray>(doc
[
"keywords"]);
1312
var scripts = doc
[
"scripts"]!.AsObject();
1318
Assert.NotNull(doc
[
"dependencies"]?["vscode-jsonrpc"]);
1319
Assert.NotNull(doc
[
"devDependencies"]?["typescript"]);
1322
Assert.Contains(">=24", doc
[
"engines"]?["node"]?.GetValue<string>());
1489
Assert.Equal("vite-brownfield", doc
[
"name"]!.GetValue<string>());
1490
Assert.Equal("2.0.0", doc
[
"version"]!.GetValue<string>());
1491
Assert.Equal("module", doc
[
"type"]!.GetValue<string>());
1494
var scripts = doc
[
"scripts"]!.AsObject();
1495
Assert.Equal("vite", scripts
[
"dev"]?.GetValue<string>());
1496
Assert.Equal("vite build", scripts
[
"build"]?.GetValue<string>());
1497
Assert.Equal("vite preview", scripts
[
"preview"]?.GetValue<string>());
1500
Assert.Equal("aspire run", scripts
[
"aspire:start"]?.GetValue<string>());
1501
Assert.Equal("tsc -p tsconfig.apphost.json", scripts
[
"aspire:build"]?.GetValue<string>());
1502
Assert.Equal("tsc --watch -p tsconfig.apphost.json", scripts
[
"aspire:dev"]?.GetValue<string>());
1503
Assert.Equal("eslint apphost.ts", scripts
[
"aspire:lint"]?.GetValue<string>());
1518
Assert.Contains(">=24", doc
[
"engines"]?["node"]?.GetValue<string>());
Scaffolding\ScaffoldingServiceTests.cs (19)
127
Assert.Equal("vitest", scripts
[
"test"]?.GetValue<string>());
128
Assert.Equal("pnpm --dir apps/web/aspire-apphost run aspire:start", scripts
[
"aspire:start"]?.GetValue<string>());
129
Assert.Equal("pnpm --dir apps/web/aspire-apphost run aspire:build", scripts
[
"aspire:build"]?.GetValue<string>());
130
Assert.Equal("pnpm --dir apps/web/aspire-apphost run aspire:dev", scripts
[
"aspire:dev"]?.GetValue<string>());
144
Assert.Equal("deno task --cwd apps/web/aspire-apphost aspire:start", scripts
[
"aspire:start"]?.GetValue<string>());
145
Assert.Equal("deno task --cwd apps/web/aspire-apphost aspire:build", scripts
[
"aspire:build"]?.GetValue<string>());
146
Assert.Equal("deno task --cwd apps/web/aspire-apphost aspire:dev", scripts
[
"aspire:dev"]?.GetValue<string>());
169
Assert.Equal("pnpm --dir aspire-apphost run aspire:start", scripts
[
"aspire:start"]?.GetValue<string>());
170
Assert.Equal("pnpm --dir aspire-apphost run aspire:build", scripts
[
"aspire:build"]?.GetValue<string>());
171
Assert.Equal("pnpm --dir aspire-apphost run aspire:dev", scripts
[
"aspire:dev"]?.GetValue<string>());
195
Assert.Equal("custom-start", scripts
[
"aspire:start"]?.GetValue<string>());
196
Assert.Equal("npm --prefix aspire-apphost run aspire:build", scripts
[
"aspire:build"]?.GetValue<string>());
197
Assert.Equal("npm --prefix aspire-apphost run aspire:dev", scripts
[
"aspire:dev"]?.GetValue<string>());
324
Assert.True(merged
[
"editor.formatOnSave"]!.GetValue<bool>());
326
Assert.Equal("automatic", merged
[
"java.compile.nullAnalysis.mode"]!.GetValue<string>());
327
Assert.Equal([".", ".aspire/modules"], merged
[
"java.project.sourcePaths"]!.AsArray().Select(v => v!.GetValue<string>()));
349
merged
[
"java.project.sourcePaths"]!.AsArray().Select(v => v!.GetValue<string>()));
371
Assert.Equal(4, merged
[
"editor.tabSize"]!.GetValue<int>());
372
Assert.Equal(["."], merged
[
"java.project.sourcePaths"]!.AsArray().Select(v => v!.GetValue<string>()));
Utils\DevCertsCheckTests.cs (6)
305
var certificates = devCertsResult.Metadata
[
"certificates"]!.AsArray();
309
Assert.Equal("AAAA1111BBBB2222", certNode
[
"thumbprint"]!.GetValue<string>());
310
Assert.Equal(MinVersion, certNode
[
"version"]!.GetValue<int>());
311
Assert.Equal("full", certNode
[
"trustLevel"]!.GetValue<string>());
312
Assert.NotNull(certNode
[
"notBefore"]);
313
Assert.NotNull(certNode
[
"notAfter"]);
Utils\EnvironmentCheckerTests.cs (1)
62
Assert.Equal(0.1, timeoutResult.Metadata
[
"timeoutSeconds"]!.GetValue<double>());
Aspire.Dashboard (10)
Model\GenAI\GenAISchemaHelpers.cs (6)
22
Type = ParseTypeValue(schemaObj
[
"type"]),
23
Description = schemaObj
[
"description"]?.GetValue<string>()
27
if (schemaObj
[
"properties"] is JsonObject propsObj)
40
if (schemaObj
[
"items"] is JsonObject itemsObj)
46
if (schemaObj
[
"required"] is JsonArray requiredArray)
59
if (schemaObj
[
"enum"] is JsonArray enumArray)
Model\GenAI\GenAIVisualizerDialogViewModel.cs (4)
104
Type = obj
[
"type"]?.GetValue<string>() ?? "function",
105
Name = obj
[
"name"]?.GetValue<string>(),
106
Description = obj
[
"description"]?.GetValue<string>()
110
if (obj
[
"parameters"] is JsonObject paramsObj)
Aspire.Dashboard.Tests (6)
Model\GenAIMessageParsingHelperTests.cs (4)
138
Assert.Equal("Seattle", toolCallPart.Arguments
[
"location"]!.GetValue<string>());
153
Assert.Equal("Seattle", toolCallPart.Arguments
[
"location"]!.GetValue<string>());
246
Assert.Equal("latest news", serverToolCallPart.ServerToolCall
[
"query"]!.GetValue<string>());
261
Assert.Equal("web_search", serverToolCallResponsePart.ServerToolCallResponse
[
"type"]!.GetValue<string>());
Model\TelemetryExportServiceTests.cs (2)
1436
Assert.Equal("localhost", connectionPropertiesObject
[
"Host"]?.GetValue<string>());
1437
Assert.Equal("catalogdb", connectionPropertiesObject
[
"DatabaseName"]?.GetValue<string>());
Aspire.Hosting (18)
Dcp\JsonPatch.cs (2)
32
operation
[
"op"] is not JsonValue operationValue ||
33
operation
[
"path"] is not JsonValue pathValue ||
Devcontainers\DevcontainerSettingsWriter.cs (1)
148
let l = attrs
[
"label"]?.ToString()
Pipelines\Internal\FileDeploymentStateManager.cs (5)
442
target
[
name] is JsonObject targetObject)
748
var legacyFallbackDisabled = migrationState
[
LegacyFallbackDisabledProperty]?.GetValue<bool>() ?? false;
749
var legacyStateSnapshot = migrationState
[
LegacyStateProperty] switch
755
var claimedSectionNames = migrationState
[
ClaimedSectionsProperty] switch
761
var currentState = migrationState
[
CurrentStateProperty] switch
Publishing\ContainerImageArchiveRewriter.cs (1)
342
if (index
[
"manifests"] is not JsonArray manifests)
Publishing\ContainerRuntimeBase.cs (9)
195
ReadStringArray(root
[
"Entrypoint"]),
196
ReadStringArray(root
[
"Cmd"]),
197
root
[
"WorkingDir"]?.GetValue<string>());
251
if (TryCreateManifest(item
[
"Descriptor"] as JsonObject, operatingSystem, architecture, out var manifest))
265
if (manifestObject
[
"manifests"] is JsonArray manifests)
278
var descriptor = manifestObject
[
"Descriptor"] as JsonObject ??
279
manifestObject
[
"descriptor"] as JsonObject ??
307
var platform = descriptor
[
"platform"] as JsonObject;
310
var digest = descriptor
[
"digest"]?.GetValue<string>();
Aspire.Hosting.Azure (73)
AzureEnvironmentResource.cs (2)
232
var resourceGroupName = azureStateSection.Data
[
"ResourceGroup"]?.ToString();
233
var subscriptionId = azureStateSection.Data
[
"SubscriptionId"]?.ToString();
AzureProvisioningController.cs (23)
1857
var subscriptionId = section.Data
[
"SubscriptionId"]?.GetValue<string>();
1858
var resourceGroupName = section.Data
[
"ResourceGroup"]?.GetValue<string>();
2510
var deploymentId = section.Data
[
"Id"]?.GetValue<string>();
2514
var outputs = ParseDeploymentStateJson(resource.Name, "Outputs", section.Data
[
"Outputs"]?.GetValue<string>());
2524
["locationOverride"] = section.Data
[
LocationOverrideKey]?.GetValue<string>(),
2525
["checksum"] = section.Data
[
"CheckSum"]?.GetValue<string>(),
2527
["scope"] = ParseDeploymentStateJson(resource.Name, "Scope", section.Data
[
"Scope"]?.GetValue<string>())
2533
if (section.Data
[
BicepProvisioner.DeploymentStateProvisioningStateKey]?.GetValue<string>() is { Length: > 0 } provisioningState)
2745
if (section.Data
[
LocationOverrideKey]?.GetValue<string>() is { Length: > 0 } locationOverride)
2764
if (section.Data
[
LocationOverrideKey]?.GetValue<string>() is { Length: > 0 } locationOverride)
3092
=> section.Data
[
"Id"]?.GetValue<string>() is { Length: > 0 } deploymentId ? deploymentId : null;
3096
section.Data
[
BicepProvisioner.DeploymentStateProvisioningStateKey]?.GetValue<string>(),
3157
if (section.Data
[
"Parameters"]?.GetValue<string>() is not { Length: > 0 } parametersJson)
3188
=> section.Data
[
LocationOverrideKey]?.GetValue<string>() is { Length: > 0 } locationOverride ? locationOverride : null;
3371
section.Data
[
"SubscriptionId"]?.GetValue<string>() ?? provisionerOptions.Value.SubscriptionId ?? configuration["Azure:SubscriptionId"],
3372
section.Data
[
"ResourceGroup"]?.GetValue<string>() ?? provisionerOptions.Value.ResourceGroup ?? configuration["Azure:ResourceGroup"],
3373
section.Data
[
"Location"]?.GetValue<string>() ?? provisionerOptions.Value.Location ?? configuration["Azure:Location"],
3374
section.Data
[
"TenantId"]?.GetValue<string>() ?? provisionerOptions.Value.TenantId ?? configuration["Azure:TenantId"],
3375
section.Data
[
"Tenant"]?.GetValue<string>());
3393
if (section.Data
[
"Outputs"]?.GetValue<string>() is not { Length: > 0 } outputsJson)
3512
if (section.Data
[
LocationOverrideKey]?.GetValue<string>() is { Length: > 0 } locationOverride)
3519
if (section.Data
[
"Parameters"]?.GetValue<string>() is not { Length: > 0 } parametersJson)
3815
section.Data
[
BicepProvisioner.DeploymentStateProvisioningStateKey]?.GetValue<string>(),
AzureProvisioningFailureDetails.cs (21)
592
if (responseObj
[
"error"] is JsonObject errorObj)
597
if (responseObj
[
"properties"] is JsonObject propertiesObj &&
598
propertiesObj
[
"error"] is JsonObject deploymentErrorObj)
603
if (responseObj
[
"properties"] is JsonObject operationPropertiesObj &&
604
operationPropertiesObj
[
"statusMessage"] is JsonObject statusMessageObj &&
605
statusMessageObj
[
"error"] is JsonObject statusMessageErrorObj)
622
if (errorObj
[
"details"] is JsonArray detailsArray)
674
var code = StringUtils.FirstNonEmpty(errorObj
[
"code"]?.ToString(), errorObj
[
"errorCode"]?.ToString());
675
var message = StringUtils.FirstNonEmpty(errorObj
[
"message"]?.ToString(), errorObj
[
"errorMessage"]?.ToString());
676
var operation = StringUtils.FirstNonEmpty(errorObj
[
"operation"]?.ToString(), errorObj
[
"target"]?.ToString());
678
errorObj
[
"resourceType"]?.ToString(),
680
var resourceName = StringUtils.FirstNonEmpty(errorObj
[
"resourceName"]?.ToString(), targetResource?.ResourceName);
681
var targetResourceId = StringUtils.FirstNonEmpty(errorObj
[
"targetResourceId"]?.ToString(), targetResource?.Id);
712
if (responseObj
[
"properties"] is not JsonObject propertiesObj ||
713
propertiesObj
[
"targetResource"] is not JsonObject targetResourceObj)
718
var id = targetResourceObj
[
"id"]?.ToString();
719
var resourceName = targetResourceObj
[
"resourceName"]?.ToString();
720
var resourceType = targetResourceObj
[
"resourceType"]?.ToString();
Provisioning\BicepUtilities.cs (2)
127
if (section.Data
[
DeploymentStateParametersKey]?.GetValue<string>() is not { Length: > 0 } jsonString)
135
var scope = section.Data
[
DeploymentStateScopeKey]?.GetValue<string>() is { Length: > 0 } scopeString
Provisioning\Internal\RunModeProvisioningContextProvider.cs (5)
237
if (data
[
"Location"]?.GetValue<string>() is { Length: > 0 } location)
242
if (data
[
"SubscriptionId"]?.GetValue<string>() is { Length: > 0 } subscriptionId)
247
if (data
[
"ResourceGroup"]?.GetValue<string>() is { Length: > 0 } resourceGroup)
252
if (data
[
"TenantId"]?.GetValue<string>() is { Length: > 0 } tenantId)
257
if (TryGetBoolean(data
[
"AllowResourceGroupCreation"]) is bool allowResourceGroupCreation)
Provisioning\JsonExtensions.cs (2)
15
var node = jsonObj
[
key];
26
node = jsonObj
[
key];
Provisioning\Provisioners\BicepProvisioner.cs (18)
60
if (stateSection.Data
[
DeploymentStateProvisioningStateKey]?.GetValue<string>() is { Length: > 0 } provisioningState &&
68
var configCheckSum = stateSection.Data
[
BicepUtilities.DeploymentStateChecksumKey]?.GetValue<string>();
84
if (stateSection.Data
[
BicepUtilities.DeploymentStateOutputsKey]?.GetValue<string>() is { Length: > 0 } outputJson)
119
if (stateSection.Data
[
BicepUtilities.DeploymentStateIdKey]?.GetValue<string>() is { Length: > 0 } configuredDeploymentId &&
187
stateSection.Data
[
BicepUtilities.DeploymentStateIdKey]?.GetValue<string>() is not { Length: > 0 } deploymentId ||
358
stateSection.Data
[
BicepUtilities.DeploymentStateChecksumKey]?.GetValue<string>() is not { Length: > 0 } checksum)
375
var locationOverride = stateSection.Data
[
AzureProvisioningController.LocationOverrideKey]?.GetValue<string>();
455
var locationOverride = stateSection.Data
[
AzureProvisioningController.LocationOverrideKey]?.GetValue<string>();
476
if (stateSection.Data
[
key]?.GetValue<string>() is not { Length: > 0 } json)
495
stateSection.Data
[
DeploymentStateProvisioningStateKey]?.GetValue<string>(),
622
var canceledLocationOverride = canceledStateSection.Data
[
AzureProvisioningController.LocationOverrideKey]?.GetValue<string>();
679
locationOverride = stateSection.Data
[
AzureProvisioningController.LocationOverrideKey]?.GetValue<string>();
797
locationOverride = stateSection.Data
[
AzureProvisioningController.LocationOverrideKey]?.GetValue<string>();
855
var cachedDeploymentId = stateSection.Data
[
BicepUtilities.DeploymentStateIdKey]?.GetValue<string>();
856
var cachedChecksum = stateSection.Data
[
BicepUtilities.DeploymentStateChecksumKey]?.GetValue<string>();
1487
section.Data
[
key]?.GetValue<string>() is { Length: > 0 } value ? value : null;
1491
if (section.Data
[
AzureProvisioningController.LocationOverrideKey]?.GetValue<string>() is { Length: > 0 } locationOverride)
1496
if (section.Data
[
BicepUtilities.DeploymentStateParametersKey]?.GetValue<string>() is { Length: > 0 } parametersJson)
Aspire.Hosting.Azure.Kubernetes (8)
AzureKubernetesEnvironmentResource.AksPipeline.cs (7)
412
if (deploymentStateSection.Data
[
"Scope"] is not null)
418
var scopeJson = deploymentStateSection.Data
[
"Scope"]!.GetValue<string>();
421
scopedSubscription = scope
[
"subscription"]?.GetValue<string>();
422
scopedResourceGroup = scope
[
"resourceGroup"]?.GetValue<string>();
469
var outputsJson = deploymentState
[
"Outputs"]?.GetValue<string>();
784
return (azureState.Data
[
"SubscriptionId"]?.ToString(), azureState.Data
[
"ResourceGroup"]?.ToString());
AzureKubernetesEnvironmentResource.cs (1)
202
return !string.IsNullOrEmpty(deploymentState
[
"ReleaseName"]?.GetValue<string>());
Aspire.Hosting.Azure.Sandboxes (36)
AzureSandboxContainerDeployment.cs (32)
268
var previousOwnerId = previousStateSection.Data
[
"OwnerId"]?.GetValue<string>();
393
var pendingSecurityCleanup = previousStateSection.Data
[
"PendingSecurityCleanup"]?.GetValue<bool>() == true;
497
if (portStates.FirstOrDefault() is JsonObject firstPort && firstPort
[
"Url"]?.GetValue<string>() is { } publicUrl)
1323
var ownerId = stateSection.Data
[
"OwnerId"]?.GetValue<string>();
1439
if (stateSection.Data
[
"OwnerId"]?.GetValue<string>() is { Length: > 0 } ownerId &&
1455
stateSection.Data
[
"OwnerId"]?.GetValue<string>()))
1595
var sandboxId = stateSection.Data
[
"SandboxId"]?.GetValue<string>();
1608
var diskImageId = stateSection.Data
[
"DiskImageId"]?.GetValue<string>();
1873
if (stateSection.Data
[
"ResourceName"]?.GetValue<string>() is { Length: > 0 } resourceName)
1933
var ownerIds = stateSection.Data
[
"PendingOwnerCleanupIds"] is JsonArray pendingOwnerIds
1936
if (stateSection.Data
[
"OwnerId"]?.GetValue<string>() is { Length: > 0 } previousOwnerId &&
1970
if (stateSection.Data
[
"OwnerId"]?.GetValue<string>() is { Length: > 0 } previousOwnerId &&
1983
stateSection.Data
[
"PendingLegacyDeploymentCleanup"]?.DeepClone() as JsonObject;
2073
previousStateSection.Data
[
"HasRuntimeEnvironmentConfiguration"]?.GetValue<bool>() == true ||
2075
previousStateSection.Data
[
"HasRuntimeCommandConfiguration"]?.GetValue<bool>() == true)
2080
if (previousStateSection.Data
[
"PendingSecurityCleanup"]?.GetValue<bool>() == true)
2085
var previousFingerprint = previousStateSection.Data
[
"EndpointSecurityFingerprint"]?.GetValue<string>();
2114
var subscriptionId = stateSection.Data
[
"SubscriptionId"]?.GetValue<string>();
2115
var resourceGroup = stateSection.Data
[
"ResourceGroup"]?.GetValue<string>();
2116
var location = stateSection.Data
[
"Location"]?.GetValue<string>();
2117
var sandboxGroup = stateSection.Data
[
"SandboxGroup"]?.GetValue<string>();
2138
!string.IsNullOrWhiteSpace(stateSection.Data
[
"OwnerId"]?.GetValue<string>()) ||
2139
!string.IsNullOrWhiteSpace(stateSection.Data
[
"SandboxId"]?.GetValue<string>()) ||
2140
!string.IsNullOrWhiteSpace(stateSection.Data
[
"DiskImageId"]?.GetValue<string>());
2155
if (stateSection.Data
[
"Ports"] is not JsonArray ports)
2162
if (port
[
"Url"]?.GetValue<string>() is { Length: > 0 } url)
2178
if (previousStateSection.Data
[
"DeployId"]?.GetValue<string>() is { Length: > 0 } previousDeployId)
2193
if (previousStateSection.Data
[
stateKey]?.GetValue<string>() is { Length: > 0 } previousId)
2203
if (stateSection.Data
[
"Ports"] is JsonArray ports)
2207
if (port
[
"Port"]?.GetValue<int>() is { } portNumber)
2216
if (stateSection.Data
[
"Port"]?.GetValue<int>() is { } legacyPort)
2305
var value = section.Data
[
name]?.GetValue<string>();
AzureSandboxEndpointPropertyValueProvider.cs (4)
130
if (stateSection.Data
[
"Ports"] is not JsonArray ports)
138
if (port
[
"Port"]?.GetValue<int>() == sandboxEndpoint.TargetPort)
143
if (string.Equals(port
[
"Name"]?.GetValue<string>(), sandboxEndpoint.Name, StringComparison.Ordinal))
154
url = port
[
"Url"]?.GetValue<string>();
Aspire.Hosting.Azure.Tests (199)
AzureBicepProvisionerTests.cs (21)
1021
Assert.Equal("westus3", section.Data
[
AzureProvisioningController.LocationOverrideKey]?.GetValue<string>());
1083
Assert.Equal("/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/test-rg/providers/Microsoft.Resources/deployments/storage2", section.Data
[
"Id"]?.GetValue<string>());
1084
Assert.Equal(BicepProvisioner.DeploymentStateProvisioningStateRunning, section.Data
[
BicepProvisioner.DeploymentStateProvisioningStateKey]?.GetValue<string>());
1338
Assert.Equal(BicepProvisioner.DeploymentStateProvisioningStateCanceled, section.Data
[
BicepProvisioner.DeploymentStateProvisioningStateKey]?.GetValue<string>());
1371
Assert.Equal(BicepProvisioner.DeploymentStateProvisioningStateCanceled, section.Data
[
BicepProvisioner.DeploymentStateProvisioningStateKey]?.GetValue<string>());
1403
Assert.Equal(BicepProvisioner.DeploymentStateProvisioningStateCanceled, section.Data
[
BicepProvisioner.DeploymentStateProvisioningStateKey]?.GetValue<string>());
1437
Assert.Null(section.Data
[
BicepProvisioner.DeploymentStateProvisioningStateKey]);
1438
Assert.Equal(deploymentId, section.Data
[
BicepUtilities.DeploymentStateIdKey]?.GetValue<string>());
1496
Assert.Equal(ResourcesProvisioningState.Failed.ToString(), section.Data
[
BicepProvisioner.DeploymentStateProvisioningStateKey]?.GetValue<string>());
1597
Assert.Null(section.Data
[
BicepProvisioner.DeploymentStateProvisioningStateKey]);
1598
Assert.Equal(deploymentId, section.Data
[
BicepUtilities.DeploymentStateIdKey]?.GetValue<string>());
1599
var outputs = JsonNode.Parse(section.Data
[
BicepUtilities.DeploymentStateOutputsKey]!.GetValue<string>())!.AsObject();
1600
Assert.Equal("https://storage.blob.core.windows.net/", outputs
[
"blobEndpoint"]?["value"]?.GetValue<string>());
1678
Assert.Equal(BicepProvisioner.DeploymentStateProvisioningStateRunning, section.Data
[
BicepProvisioner.DeploymentStateProvisioningStateKey]?.GetValue<string>());
1679
Assert.Equal(deploymentId, section.Data
[
BicepUtilities.DeploymentStateIdKey]?.GetValue<string>());
1707
Assert.Equal(BicepProvisioner.DeploymentStateProvisioningStateRunning, section.Data
[
BicepProvisioner.DeploymentStateProvisioningStateKey]?.GetValue<string>());
1708
Assert.Equal(deploymentId, section.Data
[
BicepUtilities.DeploymentStateIdKey]?.GetValue<string>());
1733
Assert.Equal(BicepProvisioner.DeploymentStateProvisioningStateFailed, section.Data
[
BicepProvisioner.DeploymentStateProvisioningStateKey]?.GetValue<string>());
1758
Assert.Equal(BicepProvisioner.DeploymentStateProvisioningStateCanceled, section.Data
[
BicepProvisioner.DeploymentStateProvisioningStateKey]?.GetValue<string>());
1791
Assert.Null(section.Data
[
BicepProvisioner.DeploymentStateProvisioningStateKey]);
1792
Assert.Equal(deploymentId, section.Data
[
BicepUtilities.DeploymentStateIdKey]?.GetValue<string>());
AzureDeployerTests.cs (1)
536
Assert.Equal("salmonisland-e9e6a567.westus3.azurecontainerapps.io", parameters
[
reference.Key]!["value"]!.GetValue<string>());
AzureEnvironmentResourceExtensionsTests.cs (145)
368
Assert.Contains("orphaned", resultData
[
"warning"]?.GetValue<string>(), StringComparison.Ordinal);
369
var recommendedActions = Assert.IsType<JsonArray>(resultData
[
"recommendedActions"]);
762
Assert.Equal(1, data
[
"resourceCount"]?.GetValue<int>());
842
Assert.Equal(AzureProvisioningController.GetAzureResourceCommandName, data
[
"command"]?.GetValue<string>());
843
Assert.Equal("storage", data
[
"resourceName"]?.GetValue<string>());
844
Assert.Equal("westus2", data
[
"azureLocation"]?.GetValue<string>());
845
Assert.Equal("westus3", data
[
"location"]?.GetValue<string>());
846
Assert.Equal("westus3", data
[
"effectiveLocation"]?.GetValue<string>());
850
var azureContext = Assert.IsType<JsonObject>(data
[
"azureContext"]);
851
Assert.Equal(subscriptionId, azureContext
[
"subscriptionId"]?.GetValue<string>());
852
Assert.Equal(tenantId, azureContext
[
"tenantId"]?.GetValue<string>());
853
Assert.Equal(resourceGroup, azureContext
[
"resourceGroup"]?.GetValue<string>());
854
Assert.Equal("westus2", azureContext
[
"location"]?.GetValue<string>());
856
var deployment = Assert.IsType<JsonObject>(data
[
"deployment"]);
857
Assert.True(deployment
[
"hasState"]?.GetValue<bool>());
858
Assert.Equal(deploymentId, deployment
[
"deploymentId"]?.GetValue<string>());
859
Assert.Equal(resourceId, deployment
[
"resourceId"]?.GetValue<string>());
860
Assert.Equal("westus3", deployment
[
"locationOverride"]?.GetValue<string>());
861
Assert.Equal("checksum", deployment
[
"checksum"]?.GetValue<string>());
862
Assert.Equal(BicepProvisioner.DeploymentStateProvisioningStateRunning, deployment
[
"provisioningState"]?.GetValue<string>());
863
Assert.Contains("/DeploymentDetailsBlade/", deployment
[
"deploymentPortalUrl"]?.GetValue<string>());
864
Assert.Contains("/resource/subscriptions/", deployment
[
"resourcePortalUrl"]?.GetValue<string>());
866
var outputs = Assert.IsType<JsonObject>(deployment
[
"outputs"]);
867
Assert.Equal("https://storage.blob.core.windows.net/", outputs
[
"blobEndpoint"]?["value"]?.GetValue<string>());
869
var scope = Assert.IsType<JsonObject>(deployment
[
"scope"]);
870
Assert.Equal(resourceGroup, scope
[
"resourceGroup"]?.GetValue<string>());
872
var live = Assert.IsType<JsonObject>(data
[
"live"]);
873
Assert.True(live
[
"checked"]?.GetValue<bool>());
874
Assert.True(live
[
"exists"]?.GetValue<bool>());
925
var live = Assert.IsType<JsonObject>(data
[
"live"]);
926
Assert.True(live
[
"checked"]?.GetValue<bool>());
927
Assert.False(live
[
"exists"]?.GetValue<bool>());
928
Assert.Equal("missing-live-resource", live
[
"reason"]?.GetValue<string>());
929
Assert.Equal("azure", live
[
"source"]?.GetValue<string>());
930
Assert.Equal("missing-live-resource", live
[
"code"]?.GetValue<string>());
931
Assert.Contains("resource was not found in Azure", live
[
"message"]?.GetValue<string>(), StringComparison.Ordinal);
932
var recommendedActions = Assert.IsType<JsonArray>(live
[
"recommendedActions"]);
987
Assert.Equal("Microsoft.Storage/storageAccounts", json
[
"resourceType"]?.GetValue<string>());
988
Assert.Equal("storage", json
[
"resourceName"]?.GetValue<string>());
989
Assert.Equal(targetResourceId, json
[
"targetResourceId"]?.GetValue<string>());
1195
var deployment = Assert.IsType<JsonObject>(data
[
"deployment"]);
1196
Assert.True(deployment
[
"hasState"]?.GetValue<bool>());
1197
Assert.Null(deployment
[
"resourceId"]);
1199
var live = Assert.IsType<JsonObject>(data
[
"live"]);
1200
Assert.False(live
[
"checked"]?.GetValue<bool>());
1201
Assert.Null(live
[
"exists"]);
1202
Assert.Equal("missing-resource-id", live
[
"reason"]?.GetValue<string>());
1203
Assert.Equal("aspire", live
[
"source"]?.GetValue<string>());
1204
Assert.Equal("missing-resource-id", live
[
"code"]?.GetValue<string>());
1205
Assert.Contains("cached deployment state does not contain a resource ID", live
[
"message"]?.GetValue<string>(), StringComparison.Ordinal);
1206
var recommendedActions = Assert.IsType<JsonArray>(live
[
"recommendedActions"]);
1258
var live = Assert.IsType<JsonObject>(data
[
"live"]);
1259
Assert.True(live
[
"checked"]?.GetValue<bool>());
1260
Assert.Null(live
[
"exists"]);
1261
Assert.Equal("request-failed", live
[
"reason"]?.GetValue<string>());
1262
Assert.Equal("azure", live
[
"source"]?.GetValue<string>());
1263
Assert.Equal(403, live
[
"status"]?.GetValue<int>());
1264
Assert.Equal("Azure", live
[
"provider"]?.GetValue<string>());
1265
Assert.Equal(403, live
[
"httpStatus"]?.GetValue<int>());
1266
Assert.Equal("AuthorizationFailed", live
[
"errorCode"]?.GetValue<string>());
1267
Assert.Equal("live-resource-check", live
[
"operation"]?.GetValue<string>());
1268
Assert.Contains("Forbidden", live
[
"message"]?.GetValue<string>(), StringComparison.Ordinal);
1319
var live = Assert.IsType<JsonObject>(data
[
"live"]);
1320
Assert.True(live
[
"checked"]?.GetValue<bool>());
1321
Assert.Null(live
[
"exists"]);
1322
Assert.Equal("credential-unavailable", live
[
"reason"]?.GetValue<string>());
1323
Assert.Contains("Credential unavailable", live
[
"message"]?.GetValue<string>(), StringComparison.Ordinal);
1383
Assert.Equal(BicepProvisioner.DeploymentStateProvisioningStateCanceled, storageSection.Data
[
BicepProvisioner.DeploymentStateProvisioningStateKey]?.GetValue<string>());
1517
Assert.Equal(BicepProvisioner.DeploymentStateProvisioningStateCanceled, storageSection.Data
[
BicepProvisioner.DeploymentStateProvisioningStateKey]?.GetValue<string>());
1721
Assert.Equal(BicepProvisioner.DeploymentStateProvisioningStateSucceeded, storageSection.Data
[
BicepProvisioner.DeploymentStateProvisioningStateKey]?.GetValue<string>());
1811
Assert.Equal(2, resultData
[
"deletedResourceCount"]?.GetValue<int>());
1812
var resultResourceIds = Assert.IsType<JsonArray>(resultData
[
"deletedResourceIds"]);
1816
Assert.Equal("westus3", storageSection.Data
[
AzureProvisioningController.LocationOverrideKey]?.GetValue<string>());
1821
Assert.Equal("storage2-deployment", storage2Section.Data
[
"Id"]?.GetValue<string>());
1902
Assert.Equal(1, resultData
[
"deletedResourceCount"]?.GetValue<int>());
2130
Assert.Equal("storage2-deployment", storage2Section.Data
[
"Id"]?.GetValue<string>());
2195
Assert.Equal("storage2-deployment", storage2Section.Data
[
"Id"]?.GetValue<string>());
2804
Assert.Equal("westus2", storageSection.Data
[
AzureProvisioningController.LocationOverrideKey]?.GetValue<string>());
2851
Assert.Equal("westus3", storageSection.Data
[
AzureProvisioningController.LocationOverrideKey]?.GetValue<string>());
2854
Assert.Equal(1, data
[
"schemaVersion"]?.GetValue<int>());
2855
Assert.Equal(AzureProvisioningController.ChangeResourceLocationCommandName, data
[
"command"]?.GetValue<string>());
2856
Assert.Equal("storage", data
[
"resourceName"]?.GetValue<string>());
2857
Assert.Equal("westus3", data
[
"location"]?.GetValue<string>());
2858
Assert.Equal("westus3", data
[
"effectiveLocation"]?.GetValue<string>());
2859
Assert.Equal("eastus", data
[
"azureLocation"]?.GetValue<string>());
2860
var azureContext = Assert.IsType<JsonObject>(data
[
"azureContext"]);
2861
Assert.Equal("eastus", azureContext
[
"location"]?.GetValue<string>());
2909
Assert.Equal("westus3", bicepSection.Data
[
AzureProvisioningController.LocationOverrideKey]?.GetValue<string>());
3235
Assert.Equal("westus3", storageSection.Data
[
AzureProvisioningController.LocationOverrideKey]?.GetValue<string>());
3297
Assert.Equal("westus3", storageSection.Data
[
AzureProvisioningController.LocationOverrideKey]?.GetValue<string>());
3362
Assert.Equal("westus3", storageSection.Data
[
AzureProvisioningController.LocationOverrideKey]?.GetValue<string>());
3416
Assert.Equal("12345678-1234-1234-1234-123456789012", azureSection.Data
[
"SubscriptionId"]?.GetValue<string>());
3417
Assert.Equal("westus2", azureSection.Data
[
"Location"]?.GetValue<string>());
3418
Assert.Equal("test-rg", azureSection.Data
[
"ResourceGroup"]?.GetValue<string>());
3419
Assert.Equal("87654321-4321-4321-4321-210987654321", azureSection.Data
[
"TenantId"]?.GetValue<string>());
3462
Assert.Equal("12345678-1234-1234-1234-123456789012", azureSection.Data
[
"SubscriptionId"]?.GetValue<string>());
3463
Assert.Equal("westus3", azureSection.Data
[
"Location"]?.GetValue<string>());
3464
Assert.Equal("cli-rg-é", azureSection.Data
[
"ResourceGroup"]?.GetValue<string>());
3465
Assert.Equal("87654321-4321-4321-4321-210987654321", azureSection.Data
[
"TenantId"]?.GetValue<string>());
3468
Assert.Equal(1, data
[
"schemaVersion"]?.GetValue<int>());
3469
Assert.Equal(AzureProvisioningController.ChangeAzureContextCommandName, data
[
"command"]?.GetValue<string>());
3470
Assert.Equal("12345678-1234-1234-1234-123456789012", data
[
"subscriptionId"]?.GetValue<string>());
3471
Assert.Equal("87654321-4321-4321-4321-210987654321", data
[
"tenantId"]?.GetValue<string>());
3472
Assert.Equal("cli-rg-é", data
[
"resourceGroup"]?.GetValue<string>());
3473
Assert.Equal("westus3", data
[
"azureLocation"]?.GetValue<string>());
3474
var azureContext = Assert.IsType<JsonObject>(data
[
"azureContext"]);
3475
Assert.Equal("12345678-1234-1234-1234-123456789012", azureContext
[
"subscriptionId"]?.GetValue<string>());
3476
Assert.Equal("87654321-4321-4321-4321-210987654321", azureContext
[
"tenantId"]?.GetValue<string>());
3477
Assert.Equal("cli-rg-é", azureContext
[
"resourceGroup"]?.GetValue<string>());
3478
Assert.Equal("westus3", azureContext
[
"location"]?.GetValue<string>());
3482
Assert.Equal(1, data
[
"resourceCount"]?.GetValue<int>());
3535
Assert.Null(data
[
"tenantId"]);
3583
Assert.Equal("westus2", azureSection.Data
[
"Location"]?.GetValue<string>());
3678
Assert.Equal("westus3", storage2Section.Data
[
AzureProvisioningController.LocationOverrideKey]?.GetValue<string>());
3724
Assert.Equal("westus3", storage2Section.Data
[
AzureProvisioningController.LocationOverrideKey]?.GetValue<string>());
3783
Assert.Equal("westus3", storage2Section.Data
[
AzureProvisioningController.LocationOverrideKey]?.GetValue<string>());
4026
Assert.False(data
[
"success"]?.GetValue<bool>());
4027
var diagnostics = Assert.IsType<JsonArray>(data
[
"diagnostics"]);
4029
Assert.Equal("Microsoft.KeyVault", diagnostic
[
"provider"]?.GetValue<string>());
4030
Assert.Equal("Microsoft.KeyVault/vaults", diagnostic
[
"resourceType"]?.GetValue<string>());
4031
Assert.Equal("kv-test", diagnostic
[
"resourceName"]?.GetValue<string>());
4032
Assert.Equal(keyVaultResourceId, diagnostic
[
"targetResourceId"]?.GetValue<string>());
4033
Assert.Equal(AzureProvisioningFailureDetails.KeyVaultDeletedStateTombstoneNotFoundReason, diagnostic
[
"errorCode"]?.GetValue<string>());
4034
Assert.Equal(409, diagnostic
[
"httpStatus"]?.GetValue<int>());
4035
Assert.Contains("deleted vault was not found", diagnostic
[
"errorMessage"]?.GetValue<string>(), StringComparison.Ordinal);
4036
var recommendedActions = Assert.IsType<JsonArray>(diagnostic
[
"recommendedActions"]);
4233
Assert.False(data
[
"success"]?.GetValue<bool>());
4234
Assert.Equal("failed", data
[
"status"]?.GetValue<string>());
4235
var diagnostics = Assert.IsType<JsonArray>(data
[
"diagnostics"]);
4237
Assert.Equal("azure", diagnostic
[
"source"]?.GetValue<string>());
4238
Assert.Equal("Microsoft.ManagedIdentity", diagnostic
[
"provider"]?.GetValue<string>());
4239
Assert.Equal("Microsoft.ManagedIdentity/userAssignedIdentities", diagnostic
[
"resourceType"]?.GetValue<string>());
4240
Assert.Equal(400, diagnostic
[
"httpStatus"]?.GetValue<int>());
4241
Assert.Equal("LocationNotAvailableForResourceType", diagnostic
[
"errorCode"]?.GetValue<string>());
4242
Assert.Equal("provision", diagnostic
[
"operation"]?.GetValue<string>());
4243
var resultRecommendedActions = Assert.IsType<JsonArray>(diagnostic
[
"recommendedActions"]);
4539
Assert.Equal("12345678-1234-1234-1234-123456789012", azureSection.Data
[
"SubscriptionId"]?.GetValue<string>());
4540
Assert.Equal("westus2", azureSection.Data
[
"Location"]?.GetValue<string>());
4541
Assert.Equal("test-rg", azureSection.Data
[
"ResourceGroup"]?.GetValue<string>());
4542
Assert.Equal("87654321-4321-4321-4321-210987654321", azureSection.Data
[
"TenantId"]?.GetValue<string>());
4688
Assert.Equal("storage-deployment", storageSection.Data
[
"Id"]?.GetValue<string>());
5567
azureSection.Data
[
"SubscriptionId"]?.GetValue<string>(),
5568
azureSection.Data
[
"ResourceGroup"]?.GetValue<string>(),
5569
azureSection.Data
[
"Location"]?.GetValue<string>(),
5570
azureSection.Data
[
"TenantId"]?.GetValue<string>());
AzureEventHubsExtensionsTests.cs (1)
395
document
[
"UserConfig"]!["LoggingConfig"] = new JsonObject { ["Type"] = "Console" };
AzureInfrastructureExtensionsTests.cs (2)
28
Assert.Equal("azure.bicep.v0", manifest
[
"type"]?.ToString());
29
Assert.Equal("infrastructure1.module.bicep", manifest
[
"path"]?.ToString());
AzureSandboxesTests.cs (1)
441
Assert.Equal("existing-rg", rolesManifest
[
"scope"]?["resourceGroup"]?.GetValue<string>());
AzureServiceBusExtensionsTests.cs (1)
503
document
[
"UserConfig"]!["Logging"] = new JsonObject { ["Type"] = "Console" };
BicepUtilitiesTests.cs (19)
29
Assert.Equal("david", parameters
[
"name"]?["value"]?.ToString());
65
Assert.Equal("john", parameters
[
"name"]?["value"]?.ToString());
66
Assert.Equal(20, parameters
[
"age"]?["value"]?.GetValue<int>());
67
Assert.Equal(["a", "b", "c"], parameters
[
"values"]?["value"]?.AsArray()?.Select(v => v?.ToString()) ?? []);
68
Assert.Equal("connection string", parameters
[
"conn"]?["value"]?.ToString());
69
Assert.Equal("value", parameters
[
"jsonObj"]?["value"]?["key"]?.ToString());
70
Assert.Equal("paramValue", parameters
[
"param"]?["value"]?.ToString());
71
Assert.Equal("paramValue/1", parameters
[
"expr"]?["value"]?.ToString());
72
Assert.Equal("http://localhost:1023", parameters
[
"endpoint"]?["value"]?.ToString());
122
Assert.Equal("context-value", parameters
[
"value"]?["value"]?.GetValue<string>());
123
Assert.Equal("context-value", parameters
[
"deferred"]?["value"]?.GetValue<string>());
124
Assert.Equal("context-value/suffix", parameters
[
"expression"]?["value"]?.GetValue<string>());
378
Assert.Equal("test-rg", scope
[
"resourceGroup"]?.ToString());
393
Assert.Equal("test-rg", scope
[
"resourceGroup"]?.ToString());
394
Assert.Equal("12345678-1234-1234-1234-123456789012", scope
[
"subscription"]?.ToString());
409
Assert.Equal("12345678-1234-1234-1234-123456789012", scope
[
"subscription"]?.ToString());
428
Assert.Equal("12345678-1234-1234-1234-123456789012", scope
[
"subscription"]?.ToString());
443
Assert.Equal("current", scope
[
"tenant"]?.ToString());
457
Assert.Null(scope
[
"resourceGroup"]?.AsValue().GetValue<object>());
JsonExtensionsTests.cs (7)
23
Assert.Equal("TestValue", retrievedNode
[
"TestProperty"]!.GetValue<string>());
37
Assert.Same(rootJson
[
"NewProperty"], newNode);
53
Assert.NotNull(rootJson
[
"Level1"]);
54
Assert.NotNull(rootJson
[
"Level1"]!["Level2"]);
55
Assert.NotNull(rootJson
[
"Level1"]!["Level2"]!["Level3"]);
56
Assert.NotNull(rootJson
[
"Level1"]!["Level2"]!["Level3"]!["Level4"]);
57
Assert.Same(deeply, rootJson
[
"Level1"]!["Level2"]!["Level3"]!["Level4"]);
ProvisioningContextTests.cs (1)
210
Assert.Equal("test-id", loadedSection.Data
[
"SubscriptionId"]?.ToString());
Aspire.Hosting.CodeGeneration.TypeScript (2)
TypeScriptLanguageSupport.cs (2)
193
var existingVersion = GetStringValue(section
[
packageName]);
208
if (parent
[
propertyName] is JsonObject obj)
Aspire.Hosting.CodeGeneration.TypeScript.Tests (58)
AtsTypeScriptCodeGeneratorTests.cs (3)
45
Assert.Equal("aspire-host", packageJson
[
"name"]?.GetValue<string>());
46
Assert.Equal("module", packageJson
[
"type"]?.GetValue<string>());
47
Assert.NotNull(packageJson
[
"dependencies"]?["vscode-jsonrpc"]);
TypeScriptLanguageSupportTests.cs (55)
31
var scripts = packageJson
[
"scripts"]!.AsObject();
32
var devDependencies = packageJson
[
"devDependencies"]!.AsObject();
34
Assert.Equal("brownfieldapp", packageJson
[
"name"]?.GetValue<string>());
35
Assert.Equal("1.0.0", packageJson
[
"version"]?.GetValue<string>());
36
Assert.True(packageJson
[
"private"]?.GetValue<bool>());
37
Assert.Equal("module", packageJson
[
"type"]?.GetValue<string>());
38
Assert.Equal("aspire run", scripts
[
"aspire:start"]?.GetValue<string>());
39
Assert.Equal("tsc -p tsconfig.apphost.json", scripts
[
"aspire:build"]?.GetValue<string>());
40
Assert.Equal("tsc --watch -p tsconfig.apphost.json", scripts
[
"aspire:dev"]?.GetValue<string>());
41
Assert.Equal("eslint apphost.mts", scripts
[
"aspire:lint"]?.GetValue<string>());
42
Assert.Equal("eslint apphost.mts", scripts
[
"lint"]?.GetValue<string>());
43
Assert.Equal("eslint apphost.mts && aspire run", scripts
[
"dev"]?.GetValue<string>());
44
Assert.Equal("eslint apphost.mts && tsc -p tsconfig.apphost.json", scripts
[
"build"]?.GetValue<string>());
45
Assert.Equal("tsc --watch -p tsconfig.apphost.json", scripts
[
"watch"]?.GetValue<string>());
46
Assert.Equal("^4.21.0", devDependencies
[
"tsx"]?.GetValue<string>());
47
Assert.Equal("^5.9.3", devDependencies
[
"typescript"]?.GetValue<string>());
48
Assert.Equal("^10.0.3", devDependencies
[
"eslint"]?.GetValue<string>());
49
Assert.Equal("^8.57.1", devDependencies
[
"typescript-eslint"]?.GetValue<string>());
51
var engines = packageJson
[
"engines"]!.AsObject();
52
Assert.Equal("^20.19.0 || ^22.13.0 || >=24", engines
[
"node"]?.GetValue<string>());
61
Assert.Equal("./dist/apphost", tsConfig
[
"compilerOptions"]?["outDir"]?.GetValue<string>());
97
var scripts = packageJson
[
"scripts"]!.AsObject();
98
var dependencies = packageJson
[
"dependencies"]!.AsObject();
99
var devDependencies = packageJson
[
"devDependencies"]!.AsObject();
103
Assert.Null(packageJson
[
"name"]);
104
Assert.Null(packageJson
[
"version"]);
105
Assert.Null(packageJson
[
"type"]);
106
Assert.Null(packageJson
[
"private"]);
109
Assert.Equal("aspire run", scripts
[
"aspire:start"]?.GetValue<string>());
110
Assert.Equal("tsc -p tsconfig.apphost.json", scripts
[
"aspire:build"]?.GetValue<string>());
111
Assert.Equal("tsc --watch -p tsconfig.apphost.json", scripts
[
"aspire:dev"]?.GetValue<string>());
112
Assert.Equal("eslint apphost.mts", scripts
[
"aspire:lint"]?.GetValue<string>());
118
Assert.Equal("^8.2.0", dependencies
[
"vscode-jsonrpc"]?.GetValue<string>());
119
Assert.Equal("^4.21.0", devDependencies
[
"tsx"]?.GetValue<string>());
120
Assert.Equal("^22.0.0", devDependencies
[
"@types/node"]?.GetValue<string>());
121
Assert.Equal("^3.1.14", devDependencies
[
"nodemon"]?.GetValue<string>());
122
Assert.Equal("^5.9.3", devDependencies
[
"typescript"]?.GetValue<string>());
126
var engines = packageJson
[
"engines"]!.AsObject();
127
Assert.Equal("^20.19.0 || ^22.13.0 || >=24", engines
[
"node"]?.GetValue<string>());
145
Assert.Equal("aspire-apphost", packageJson
[
"name"]?.GetValue<string>());
146
Assert.Equal("1.0.0", packageJson
[
"version"]?.GetValue<string>());
147
Assert.True(packageJson
[
"private"]?.GetValue<bool>());
148
Assert.Equal("module", packageJson
[
"type"]?.GetValue<string>());
177
var dependencies = packageJson
[
"dependencies"]!.AsObject();
178
var devDependencies = packageJson
[
"devDependencies"]!.AsObject();
182
Assert.Equal("^8.2.0", dependencies
[
"vscode-jsonrpc"]?.GetValue<string>());
183
Assert.Equal("^22.0.0", devDependencies
[
"@types/node"]?.GetValue<string>());
184
Assert.Equal("^3.1.14", devDependencies
[
"nodemon"]?.GetValue<string>());
185
Assert.Equal("^4.21.0", devDependencies
[
"tsx"]?.GetValue<string>());
186
Assert.Equal("^5.9.3", devDependencies
[
"typescript"]?.GetValue<string>());
233
var httpsProfile = appHostRunJson
[
"profiles"]!["https"]!.AsObject();
234
var applicationUrls = httpsProfile
[
"applicationUrl"]!.GetValue<string>().Split(';', StringSplitOptions.RemoveEmptyEntries);
235
var environmentVariables = httpsProfile
[
"environmentVariables"]!.AsObject();
241
var otlpHttpsPort = GetPort(environmentVariables
[
"ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL"]!.GetValue<string>());
242
var resourceServiceHttpsPort = GetPort(environmentVariables
[
"ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL"]!.GetValue<string>());
Aspire.Hosting.Docker (3)
DockerComposeEnvironmentResource.cs (3)
147
var savedComposeFilePath = stateSection.Data
[
"ComposeFilePath"]?.ToString();
163
var savedOutputPath = stateSection.Data
[
"OutputPath"]?.ToString() ?? Path.GetDirectoryName(savedComposeFilePath)!;
164
var savedProjectName = stateSection.Data
[
"ProjectName"]?.ToString() ?? GetDockerComposeProjectName(ctx, this);
Aspire.Hosting.Docker.Tests (2)
DockerComposeTests.cs (2)
1056
Assert.NotNull(stateSection.Data
[
"ComposeFilePath"]?.ToString());
1057
Assert.NotNull(stateSection.Data
[
"ProjectName"]?.ToString());
Aspire.Hosting.Dotnet.Tests (3)
DotnetProjectResourceTests.cs (3)
185
Assert.Equal("project.v0", manifest
[
"type"]?.GetValue<string>());
186
Assert.Equal(expectedPath, manifest
[
"path"]?.GetValue<string>());
187
Assert.Null(manifest
[
"args"]);
Aspire.Hosting.Foundry.Tests (6)
HostedAgentConfigurationTests.cs (6)
89
var definition = payload
[
"definition"]!;
91
var protocolVersion = Assert.Single(definition
[
"protocol_versions"]!.AsArray());
93
Assert.Equal("2.0.0", protocolVersion
[
"version"]!.GetValue<string>());
94
Assert.Equal("myregistry.azurecr.io/myagent:v1", definition
[
"container_configuration"]!["image"]!.GetValue<string>());
95
Assert.Null(definition
[
"container_protocol_versions"]);
96
Assert.Null(definition
[
"image"]);
Aspire.Hosting.JavaScript.Tests (6)
AddDenoAppTests.cs (2)
52
Assert.Null(manifest
[
"env"]?["OTEL_DENO"]);
1093
Assert.Equal(8000, manifest
[
"bindings"]!["http"]!["targetPort"]!.GetValue<int>());
AddJavaScriptAppTests.cs (3)
286
Assert.Equal("container.v1", manifest
[
"type"]?.ToString());
304
Assert.Equal("bun", manifest
[
"entrypoint"]?.ToString());
323
Assert.Equal("container.v1", manifest
[
"type"]?.ToString());
AddViteAppTests.cs (1)
487
Assert.Equal("container.v1", manifest
[
"type"]?.ToString());
Aspire.Hosting.Kubernetes (4)
Deployment\HelmDeploymentEngine.cs (2)
204
var savedReleaseName = stateSection.Data
[
"ReleaseName"]?.ToString();
205
var savedNamespace = stateSection.Data
[
"Namespace"]?.ToString();
KubernetesHelmChartExtensions.cs (2)
405
var savedReleaseName = stateSection.Data
[
"ReleaseName"]?.ToString();
406
var savedNamespace = stateSection.Data
[
"Namespace"]?.ToString();
Aspire.Hosting.Kubernetes.Tests (2)
KubernetesDeployTests.cs (2)
1995
Assert.Equal("my-release", stateSection.Data
[
"ReleaseName"]?.ToString());
2094
Assert.Equal("podinfo", stateSection.Data
[
"ReleaseName"]?.ToString());
Aspire.Hosting.Radius (2)
Publishing\RadiusDeploymentPipelineStep.cs (2)
77
root
[
"controlPlane"] is not JsonObject controlPlane ||
78
controlPlane
[
"version"] is not JsonValue versionValue ||
Aspire.Hosting.Redis.Tests (40)
AddRedisTests.cs (35)
153
var resources = fullManifest
[
"resources"]!;
154
var manifest = resources
[
"redis"]!;
156
Assert.Equal("container.v0", manifest
[
"type"]!.GetValue<string>());
157
var connectionString = manifest
[
"connectionString"]!.GetValue<string>();
162
Assert.Equal($"{RedisContainerImageTags.Registry}/{RedisContainerImageTags.Image}:{RedisContainerImageTags.Tag}", manifest
[
"image"]!.GetValue<string>());
163
Assert.Equal("/bin/sh", manifest
[
"entrypoint"]!.GetValue<string>());
164
Assert.Equal("{redis-password.value}", manifest
[
"env"]!["REDIS_PASSWORD"]!.GetValue<string>());
165
Assert.Equal("redis", manifest
[
"bindings"]!["tcp"]!["scheme"]!.GetValue<string>());
166
Assert.Equal(6379, manifest
[
"bindings"]!["tcp"]!["targetPort"]!.GetValue<int>());
178
var resources = fullManifest
[
"resources"]!;
179
var manifest = resources
[
"redis"]!;
181
Assert.Equal("container.v0", manifest
[
"type"]!.GetValue<string>());
182
var connectionString = manifest
[
"connectionString"]!.GetValue<string>();
187
Assert.Equal($"{RedisContainerImageTags.Registry}/{RedisContainerImageTags.Image}:{RedisContainerImageTags.Tag}", manifest
[
"image"]!.GetValue<string>());
188
Assert.Equal("/bin/sh", manifest
[
"entrypoint"]!.GetValue<string>());
189
Assert.Equal("redis", manifest
[
"bindings"]!["tcp"]!["scheme"]!.GetValue<string>());
190
Assert.Equal(6379, manifest
[
"bindings"]!["tcp"]!["targetPort"]!.GetValue<int>());
207
var resources = fullManifest
[
"resources"]!;
208
var manifest = resources
[
"redis"]!;
210
Assert.Equal("container.v0", manifest
[
"type"]!.GetValue<string>());
211
var connectionString = manifest
[
"connectionString"]!.GetValue<string>();
216
Assert.Equal($"{RedisContainerImageTags.Registry}/{RedisContainerImageTags.Image}:{RedisContainerImageTags.Tag}", manifest
[
"image"]!.GetValue<string>());
217
Assert.Equal("{pass.value}", manifest
[
"env"]!["REDIS_PASSWORD"]!.GetValue<string>());
218
Assert.Equal("redis", manifest
[
"bindings"]!["tcp"]!["scheme"]!.GetValue<string>());
219
Assert.Equal(6379, manifest
[
"bindings"]!["tcp"]!["targetPort"]!.GetValue<int>());
233
var resources = fullManifest
[
"resources"]!;
234
var manifest = resources
[
"redis"]!;
236
Assert.Equal("container.v0", manifest
[
"type"]!.GetValue<string>());
237
var connectionString = manifest
[
"connectionString"]!.GetValue<string>();
242
Assert.Equal($"{RedisContainerImageTags.Registry}/{RedisContainerImageTags.Image}:{RedisContainerImageTags.Tag}", manifest
[
"image"]!.GetValue<string>());
243
Assert.Equal("{pass.value}", manifest
[
"env"]!["REDIS_PASSWORD"]!.GetValue<string>());
244
Assert.Equal("redis", manifest
[
"bindings"]!["tcp"]!["scheme"]!.GetValue<string>());
245
Assert.Equal(6379, manifest
[
"bindings"]!["tcp"]!["targetPort"]!.GetValue<int>());
1088
var creEntry = resources
[
creName];
1090
Assert.Equal("value.v0", creEntry
[
"type"]!.GetValue<string>());
RedisFunctionalTests.cs (5)
716
var agreements = jo
[
"agreements"];
719
Assert.False(agreements
[
"analytics"]!.GetValue<bool>());
720
Assert.False(agreements
[
"notifications"]!.GetValue<bool>());
721
Assert.False(agreements
[
"encryption"]!.GetValue<bool>());
722
Assert.True(agreements
[
"eula"]!.GetValue<bool>());
Aspire.Hosting.RemoteHost (1)
Ats\AtsCallbackProxyFactory.cs (1)
405
if (returnedArgs
[
key] is JsonObject modifiedDto)
Aspire.Hosting.RemoteHost.Tests (53)
AtsMarshallerTests.cs (34)
205
Assert.Equal("test/IResource", result
[
"$type"]!.GetValue<string>());
206
Assert.True(registry.TryGet(result
[
"$handle"]!.GetValue<string>(), out var retrieved, out _));
610
Assert.NotNull(jsonObj
[
"$handle"]);
611
Assert.NotNull(jsonObj
[
"$type"]);
613
var typeId = jsonObj
[
"$type"]!.GetValue<string>();
629
Assert.NotNull(jsonObj
[
"$handle"]);
630
Assert.NotNull(jsonObj
[
"$type"]);
632
var typeId = jsonObj
[
"$type"]!.GetValue<string>();
648
Assert.NotNull(jsonObj
[
"$handle"]);
649
Assert.NotNull(jsonObj
[
"$type"]);
844
Assert.Equal("test", jsonObj
[
"name"]?.GetValue<string>());
845
Assert.Equal(10, jsonObj
[
"count"]?.GetValue<int>());
897
Assert.Equal(1500, json
[
"required"]?.GetValue<double>());
898
Assert.Equal(90_000, json
[
"optional"]?.GetValue<double>());
899
Assert.Null(json
[
"empty"]);
991
Assert.Equal("root", obj
[
"name"]!.GetValue<string>());
992
Assert.True(obj
[
"self"] is null || obj
[
"self"]!.GetValueKind() == System.Text.Json.JsonValueKind.Null);
1007
Assert.Equal("parent", obj
[
"label"]!.GetValue<string>());
1008
var childObj = Assert.IsType<JsonObject>(obj
[
"child"]);
1009
Assert.Equal("child", childObj
[
"label"]!.GetValue<string>());
1011
Assert.True(childObj
[
"parent"] is null || childObj
[
"parent"]!.GetValueKind() == System.Text.Json.JsonValueKind.Null);
1027
Assert.Equal("typed", obj
[
"name"]!.GetValue<string>());
1028
Assert.True(obj
[
"self"] is null || obj
[
"self"]!.GetValueKind() == System.Text.Json.JsonValueKind.Null);
1043
Assert.Equal("parent", obj
[
"label"]!.GetValue<string>());
1044
var childObj = Assert.IsType<JsonObject>(obj
[
"child"]);
1045
Assert.Equal("child", childObj
[
"label"]!.GetValue<string>());
1046
Assert.True(childObj
[
"parent"] is null || childObj
[
"parent"]!.GetValueKind() == System.Text.Json.JsonValueKind.Null);
1315
Assert.NotNull(jsonObj
[
"$handle"]);
1316
Assert.NotNull(jsonObj
[
"$type"]);
1332
var handleId = json
[
"$handle"]!.GetValue<string>();
CallbackProxyTests.cs (11)
128
Assert.Equal("hello-world", args
[
"p0"]?.GetValue<string>());
145
Assert.Equal("test-name", args
[
"p0"]?.GetValue<string>());
146
Assert.Equal(42, args
[
"p1"]?.GetValue<int>());
169
var handle = Assert.IsAssignableFrom<JsonObject>(args
[
"p0"]);
170
Assert.NotNull(handle
[
"$handle"]?.GetValue<string>());
171
Assert.Equal(AtsTypeMapping.DeriveTypeId(typeof(ITestCallbackHandle)), handle
[
"$type"]?.GetValue<string>());
201
Assert.Equal("test", args
[
"p0"]?.GetValue<string>());
202
var tokenId = args
[
"p1"]?.GetValue<string>();
205
Assert.Equal(tokenId, args
[
"$cancellationToken"]?.GetValue<string>());
222
var tokenId = args
[
"p0"]?.GetValue<string>();
224
Assert.Equal(tokenId, args
[
"$cancellationToken"]?.GetValue<string>());
CapabilityDispatcherTests.cs (3)
390
var nestedHandleId = handleRef
[
"$handle"]!.GetValue<string>();
391
var nestedTypeId = handleRef
[
"$type"]!.GetValue<string>();
719
Assert.Equal("hello from C#", callbackArgs
[
"p0"]?.GetValue<string>());
HandleRegistryTests.cs (4)
174
Assert.NotNull(json
[
"$handle"]);
175
Assert.NotNull(json
[
"$type"]);
176
Assert.Equal("aspire/TestObject", json
[
"$type"]!.GetValue<string>());
178
var handleId = json
[
"$handle"]!.GetValue<string>();
ReferenceExpressionRefTests.cs (1)
251
((JsonObject)json
[
"$expr"]!)["valueProviders"] = providersArray;
Aspire.Hosting.Tests (113)
Backchannel\AuxiliaryBackchannelRpcTargetTests.cs (2)
1333
Assert.Equal("localhost", nameValueObject
[
"Host"]?.GetValue<string>());
1334
Assert.Equal("catalogdb", nameValueObject
[
"DatabaseName"]?.GetValue<string>());
DotnetProgramPublishingTests.cs (3)
166
Assert.Equal("project.v0", manifest
[
"type"]?.GetValue<string>());
167
Assert.Equal("program.csproj", manifest
[
"path"]?.GetValue<string>());
170
manifest
[
"args"]?.AsArray().Select(static value => value!.GetValue<string>()));
JsonFlattenerTests.cs (31)
37
Assert.Equal("existing-flat-value", result
[
"Azure:SubscriptionId"]!.ToString());
38
Assert.Equal("microsoft.onmicrosoft.com", result
[
"Azure:Tenant"]!.ToString());
39
Assert.Equal("/subscriptions/123/deployments/MyStorage", result
[
"Azure:Deployments:MyStorage:Id"]!.ToString());
40
Assert.Equal("{ \"param\": \"value\" }", result
[
"Azure:Deployments:MyStorage:Parameters"]!.ToString());
62
Assert.Equal("07268dd7-4c50-434b-b1ff-67b8164edb41", result
[
"Azure:SubscriptionId"]!.ToString());
63
Assert.Equal("microsoft.onmicrosoft.com", result
[
"Azure:Tenant"]!.ToString());
64
Assert.Equal("eastus2", result
[
"Azure:Location"]!.ToString());
103
Assert.Equal("nested-value", result
[
"Level1:Level2:Level3:DeepValue"]!.ToString());
127
Assert.Equal("text", result
[
"StringValue"]!.ToString());
128
Assert.Equal("42", result
[
"NumberValue"]!.ToString());
129
Assert.Equal("true", result
[
"BoolValue"]!.ToString());
130
Assert.Null(result
[
"NullValue"]);
131
Assert.Equal("inner-text", result
[
"Nested:InnerString"]!.ToString());
132
Assert.Null(result
[
"Nested:InnerNull"]);
150
Assert.Equal("value1", result
[
"SimpleArray:0"]!.ToString());
151
Assert.Equal("value2", result
[
"SimpleArray:1"]!.ToString());
152
Assert.Equal("value3", result
[
"SimpleArray:2"]!.ToString());
154
Assert.Equal("1", result
[
"NumberArray:0"]!.ToString());
155
Assert.Equal("2", result
[
"NumberArray:1"]!.ToString());
156
Assert.Equal("3", result
[
"NumberArray:2"]!.ToString());
158
Assert.Equal("text", result
[
"MixedArray:0"]!.ToString());
159
Assert.Equal("42", result
[
"MixedArray:1"]!.ToString());
160
Assert.Equal("true", result
[
"MixedArray:2"]!.ToString());
161
Assert.Null(result
[
"MixedArray:3"]);
190
Assert.Equal("Item1", result
[
"ObjectArray:0:Name"]!.ToString());
191
Assert.Equal("Value1", result
[
"ObjectArray:0:Value"]!.ToString());
192
Assert.Equal("Item2", result
[
"ObjectArray:1:Name"]!.ToString());
193
Assert.Equal("Value2", result
[
"ObjectArray:1:Value"]!.ToString());
195
Assert.Equal("1", result
[
"NestedConfig:Items:0:Id"]!.ToString());
196
Assert.Equal("true", result
[
"NestedConfig:Items:0:Settings:Enabled"]!.ToString());
214
Assert.Equal("test", result
[
"OtherValue"]!.ToString());
KestrelConfigTests.cs (1)
299
Assert.Equal(expectedEnv, manifest
[
"env"]!.ToString());
Publishing\DeploymentStateManagerTests.cs (75)
51
Assert.Equal("value1", section2.Data
[
"key1"]?.GetValue<string>());
67
Assert.Null(restartedSection.Data
[
"NullValue"]);
120
Assert.Equal("value1", parametersCheck.Data
[
"param1"]?.GetValue<string>());
121
Assert.Equal("azure-value1", azureCheck.Data
[
"resource1"]?.GetValue<string>());
149
Assert.Equal($"value{i}", section.Data
[
$"key{i}"]?.GetValue<string>());
168
Assert.Equal("value1", section2.Data
[
"key1"]?.GetValue<string>());
189
Assert.Equal("value1", section2.Data
[
"key1"]?.GetValue<string>());
202
Assert.Equal("value1", section3.Data
[
"key1"]?.GetValue<string>());
203
Assert.Equal("value2", section3.Data
[
"key2"]?.GetValue<string>());
241
Assert.Equal("value1", parametersSection.Data
[
"param1"]?.GetValue<string>());
242
Assert.Equal("azure-value1", azureSection.Data
[
"resource1"]?.GetValue<string>());
243
Assert.Equal("value1", restartedParametersSection.Data
[
"param1"]?.GetValue<string>());
260
Assert.Equal("value1", retrievedSection.Data
[
"key1"]?.GetValue<string>());
277
Assert.Equal("nestedValue", verifySection.Data
[
"nestedKey"]?.GetValue<string>());
297
Assert.Equal("value1", verify1.Data
[
"key1"]?.GetValue<string>());
298
Assert.Equal("value2", verify2.Data
[
"key2"]?.GetValue<string>());
314
Assert.Equal("value1", verify.Data
[
""]?.GetValue<string>());
374
Assert.Equal("topValue", verifyTop.Data
[
"topKey"]?.GetValue<string>());
375
Assert.Equal("nestedValue", verifyNested.Data
[
"nestedKey"]?.GetValue<string>());
481
Assert.True(migratedSection.Data
[
"legacy"]?.GetValue<bool>());
493
Assert.True(currentSection.Data
[
"legacy"]?.GetValue<bool>());
494
Assert.True(currentSection.Data
[
"current"]?.GetValue<bool>());
536
Assert.Equal("legacy", legacyAfterRestart.Data
[
"Value"]?.GetValue<string>());
537
Assert.Equal("current", replacementAfterRestart.Data
[
"Value"]?.GetValue<string>());
559
Assert.Equal("committed", restartedSection.Data
[
"Value"]?.GetValue<string>());
597
Assert.Equal("legacy", parameterSection.Data
[
""]?.GetValue<string>());
624
Assert.Equal("existing", section.Data
[
""]?.GetValue<string>());
630
Assert.Equal("existing", restartedSection.Data
[
""]?.GetValue<string>());
661
Assert.Equal("updated", restartedSection.Data
[
""]?.GetValue<string>());
693
Assert.Equal("updated", restartedSection.Data
[
"Leaf"]?.GetValue<string>());
721
var features = Assert.IsType<JsonObject>(restartedSection.Data
[
"Features"]);
723
Assert.True(features
[
"A"]?.GetValue<bool>());
724
Assert.True(features
[
"B"]?.GetValue<bool>());
757
Assert.Equal("first-sandbox", migratedFirstSection.Data
[
"SandboxId"]?.GetValue<string>());
758
Assert.True(migratedFirstSection.Data
[
"Migrated"]?.GetValue<bool>());
770
Assert.True(restartedFirstSection.Data
[
"Migrated"]?.GetValue<bool>());
771
Assert.Equal("second-sandbox", restartedSecondSection.Data
[
"SandboxId"]?.GetValue<string>());
776
Assert.Equal("second-sandbox", secondSection.Data
[
"SandboxId"]?.GetValue<string>());
786
Assert.Equal("first-sandbox", clearedFirstLegacySection.Data
[
"SandboxId"]?.GetValue<string>());
787
Assert.Equal("second-sandbox", preservedSecondLegacySection.Data
[
"SandboxId"]?.GetValue<string>());
811
Assert.Equal("current-subscription", currentAzureSection.Data
[
"SubscriptionId"]?.GetValue<string>());
812
Assert.Null(currentAzureSection.Data
[
"Sandboxes"]);
816
Assert.Equal("current-subscription", restartedAzureSection.Data
[
"SubscriptionId"]?.GetValue<string>());
817
Assert.Equal("first-sandbox", restartedAzureSection.Data
[
"Sandboxes"]?["first"]?["SandboxId"]?.GetValue<string>());
818
Assert.Equal("second-sandbox", restartedAzureSection.Data
[
"Sandboxes"]?["second"]?["SandboxId"]?.GetValue<string>());
819
Assert.Null((await restartedStateManager.AcquireCurrentSectionAsync("Azure")).Data
[
"Sandboxes"]);
850
Assert.Null(restartedAzureSection.Data
[
"SubscriptionId"]);
851
Assert.Null(restartedAzureSection.Data
[
"Sandboxes"]?["legacy"]);
854
restartedAzureSection.Data
[
"Sandboxes"]?["new"]?["SandboxId"]?.GetValue<string>());
895
Assert.Null(restartedSandboxesSection.Data
[
"first"]?["SandboxId"]);
896
Assert.Null(restartedSandboxesSection.Data
[
"first"]?["LegacyOnly"]);
899
restartedSandboxesSection.Data
[
"first"]?["new"]?["SandboxId"]?.GetValue<string>());
902
restartedSandboxesSection.Data
[
"second"]?["SandboxId"]?.GetValue<string>());
938
Assert.Equal("first-sandbox", restartedFirstSection.Data
[
"SandboxId"]?.GetValue<string>());
939
Assert.True(restartedFirstSection.Data
[
"Updated"]?.GetValue<bool>());
940
Assert.Equal("second-sandbox", restartedSecondSection.Data
[
"SandboxId"]?.GetValue<string>());
941
Assert.True(restartedSecondSection.Data
[
"Updated"]?.GetValue<bool>());
971
Assert.Equal("current-subscription", restartedAzureSection.Data
[
"SubscriptionId"]?.GetValue<string>());
972
Assert.Equal("current-location", restartedAzureSection.Data
[
"Location"]?.GetValue<string>());
975
Assert.Equal("current-subscription", currentAzureSection.Data
[
"SubscriptionId"]?.GetValue<string>());
976
Assert.Equal("current-location", currentAzureSection.Data
[
"Location"]?.GetValue<string>());
1006
Assert.Equal("sub", preservedLegacySection.Data
[
"SubscriptionId"]?.GetValue<string>());
1036
Assert.Equal("current-sub", asyncEffectiveState
[
"Azure"]?["SubscriptionId"]?.GetValue<string>());
1037
Assert.Equal("current-sub", syncEffectiveState
[
"Azure"]?["SubscriptionId"]?.GetValue<string>());
1038
Assert.Equal("current-sub", migratedSection.Data
[
"SubscriptionId"]?.GetValue<string>());
1060
Assert.Equal("current-sub", asyncEffectiveState
[
"Azure"]?["SubscriptionId"]?.GetValue<string>());
1061
Assert.Equal("current-sub", syncEffectiveState
[
"Azure"]?["SubscriptionId"]?.GetValue<string>());
1062
Assert.Equal("current-sub", restartedSection.Data
[
"SubscriptionId"]?.GetValue<string>());
1068
Assert.Equal("current-sub", savedSection.Data
[
"SubscriptionId"]?.GetValue<string>());
1069
Assert.Equal("westus", savedSection.Data
[
"Location"]?.GetValue<string>());
1087
Assert.Equal("sub", currentSection.Data
[
"SubscriptionId"]?.GetValue<string>());
1138
.Data
[
"SandboxId"]?.GetValue<string>());
1142
.Data
[
"SubscriptionId"]?.GetValue<string>());
1179
.Data
[
"SandboxId"]?.GetValue<string>());
1183
.Data
[
"SandboxId"]?.GetValue<string>());
WithEndpointTests.cs (1)
724
Assert.Equal(expectedEnv, manifest
[
"env"]!.ToString());
Aspire.Hosting.TestUtilities (2)
Utils\ManifestUtils.cs (2)
41
var resourceNode = obj
[
resource.Name];
88
var resourceNode = obj
[
r.Name];
ConfigurationSchemaGenerator (11)
ConfigSchemaEmitter.cs (11)
119
var backupTypeNode = currentNode
[
"type"];
123
if (currentNode
[
propertiesName] is not JsonObject propertiesNode)
132
if (propertiesNode
[
pathSegment] is not JsonObject pathSegmentNode)
147
backupCasingOfPathSegmentName = propertiesNode
[
pathSegment].GetPropertyName();
174
var existingValue = propertiesNode
[
pathSegment];
240
var backupTypeNode = currentNode
[
"type"];
244
if (currentNode
[
"properties"] is not JsonObject propertiesNode)
284
var backupPropertyNode = currentNode
[
property.ConfigurationKeyName];
315
var backupTypeNode = currentNode
[
"type"];
316
var backupContainerNode = currentNode
[
containerName];
449
var propertyNodeType = propertyNode
[
"type"];
dotnet-aot (1)
parent\dotnet\Telemetry\TelemetryDiskLogger.cs (1)
56
var activitiesArray = root
[
"activities"]!.AsArray();
dotnet-user-jwts (6)
Helpers\JwtAuthenticationSchemeSettings.cs (4)
28
if (config
[
AuthenticationKey] is JsonObject authentication)
30
if (authentication
[
SchemesKey] is JsonObject schemes)
76
if (config
[
AuthenticationKey] is JsonObject authentication &&
77
authentication
[
SchemesKey] is JsonObject schemes)
Helpers\SigningKeysHandler.cs (2)
82
var signingKeys = secrets
[
signkingKeysPropertyName].AsArray();
85
var toRemove = signingKeys.SingleOrDefault(key => key
[
"Issuer"].GetValue<string>() == issuer);
Infrastructure.Tests (8)
Pipelines\NpmCliPackageTests.cs (8)
257
GetStringArray(packageJson
[
"keywords"]));
263
Assert.Equal(["bin", "README.md"], GetStringArray(packageJson
[
"files"]));
340
Assert.Equal(expectation.Os, GetStringArray(packageJson
[
"os"]));
341
Assert.Equal(expectation.Cpu, GetStringArray(packageJson
[
"cpu"]));
342
Assert.Equal(["bin", "README.md"], GetStringArray(packageJson
[
"files"]));
350
Assert.Equal(expectation.Libc, GetStringArray(packageJson
[
"libc"]));
773
return jsonObject
[
propertyName]?.AsObject()
779
return jsonObject
[
propertyName]?.GetValue<string>()
Microsoft.AspNetCore.OpenApi (12)
Extensions\JsonNodeSchemaExtensions.cs (11)
138
var isArray = MapJsonNodeToSchemaType(schema
[
OpenApiSchemaKeywords.TypeKeyword]) is { } schemaTypes && schemaTypes.HasFlag(JsonSchemaType.Array);
144
var isArray = MapJsonNodeToSchemaType(schema
[
OpenApiSchemaKeywords.TypeKeyword]) is { } schemaTypes && schemaTypes.HasFlag(JsonSchemaType.Array);
150
var isArray = MapJsonNodeToSchemaType(schema
[
OpenApiSchemaKeywords.TypeKeyword]) is { } schemaTypes && schemaTypes.HasFlag(JsonSchemaType.Array);
361
if (enumType.IsEnum && schema
[
OpenApiSchemaKeywords.EnumKeyword] is JsonArray)
376
var defaultKey = schema
[
OpenApiConstants.RefDefaultAnnotation] is not null
380
&& schema
[
defaultKey] is JsonNode defaultNode
400
&& MapJsonNodeToSchemaType(schema
[
OpenApiSchemaKeywords.TypeKeyword]) is { } schemaTypes &&
508
return (schema
[
OpenApiConstants.SchemaId] is JsonNode schemaIdNode
557
if (MapJsonNodeToSchemaType(schema
[
OpenApiSchemaKeywords.TypeKeyword]) is { } schemaTypes)
593
if (schema
[
OpenApiSchemaKeywords.TypeKeyword] is JsonArray typeArray)
607
if (schema
[
OpenApiSchemaKeywords.EnumKeyword] is JsonArray enumArray)
Services\Schemas\OpenApiSchemaService.cs (1)
277
if (rawNode
[
OpenApiSchemaKeywords.EnumKeyword] is JsonArray rawEnum && rawEnum.Count > 0)
Microsoft.Extensions.AI.Abstractions (3)
Utilities\AIJsonUtilities.Schema.Create.cs (3)
646
JsonNode? notNode = obj
[
NotPropertyName];
653
if (notObj
[
EnumPropertyName] is null)
782
if (ctx.TypeInfo.NumberHandling is not JsonNumberHandling.Strict && schema
[
"type"] is JsonArray typeArray)
Microsoft.Extensions.AI.Abstractions.Tests (1)
Utilities\AIJsonUtilitiesTests.cs (1)
1850
Assert.Equal(((JsonArray)schemaObj
[
"required"]!).Count, ((JsonObject)props!).Count);
Microsoft.Extensions.AI.OpenAI (2)
OpenAIClientExtensions.cs (2)
82
if (schemaObj
[
propName] is { } propNode)
91
schemaObj["description"] = schemaObj
[
"description"] is { } descriptionNode && descriptionNode.GetValueKind() == JsonValueKind.String ?
Microsoft.ML.AutoML (9)
SweepableEstimator\Converter\MultiModelPipelineConverter.cs (2)
18
var schema = jValue
[
"schema"].GetValue<string>();
19
var estimators = jValue
[
"estimator"].GetValue<Dictionary<string, SweepableEstimator>>();
SweepableEstimator\Converter\SweepableEstimatorConverter.cs (2)
19
var estimatorType = jsonObject
[
"estimatorType"].GetValue<EstimatorType>();
20
var parameter = jsonObject
[
"parameter"].GetValue<Parameter>();
SweepableEstimator\Converter\SweepableEstimatorPipelineConverter.cs (2)
18
var parameter = jNode
[
"parameter"].GetValue<Parameter>();
19
var estimators = jNode
[
"estimators"].GetValue<SweepableEstimator[]>();
SweepableEstimator\Converter\SweepablePipelineConverter.cs (3)
18
var currentSchema = jValue
[
"currentSchema"].GetValue<string>();
19
var schema = jValue
[
"schema"].GetValue<string>();
20
var estimators = jValue
[
"estimator"].GetValue<Dictionary<string, SweepableEstimator>>();
Microsoft.ML.AutoML.SourceGenerator (10)
SearchSpaceGenerator.cs (10)
39
var className = Utils.ToTitleCase(jNode
[
"name"].GetValue<string>());
40
var searchSpaceJArray = jNode
[
"search_space"].AsArray();
43
var optionName = Utils.ToTitleCase(t
[
"name"].GetValue<string>());
44
string optionTypeName = t
[
"type"].GetValue<string>() switch
65
var defaultToken = t.AsObject().ContainsKey("default") ? t
[
"default"] : null;
86
var searchSpaceNode = t.AsObject().ContainsKey("search_space") ? t
[
"search_space"] : null;
96
var minToken = searchSpaceNode
[
"min"];
97
var minValue = searchSpaceNode
[
"min"].GetValue<double>();
98
var maxValue = searchSpaceNode
[
"max"].GetValue<double>();
99
var logBase = searchSpaceObject.ContainsKey("log_base") is false ? "false" : searchSpaceNode
[
"log_base"].GetValue<bool>() ? "true" : "false";
Microsoft.NET.Build.Containers (16)
ImageConfig.cs (14)
51
if (_config
[
"config"] is not JsonObject)
69
internal string? GetUser() => _config
[
"config"]?["User"]?.ToString();
70
internal string[]? GetEntrypoint() => _config
[
"config"]?["Entrypoint"]?.AsArray()?.Select(node => node!.GetValue<string>())?.ToArray();
71
private string[]? GetCmd() => _config
[
"config"]?["Entrypoint"]?.AsArray()?.Select(node => node!.GetValue<string>())?.ToArray();
72
private List<HistoryEntry> GetHistory() => _config
[
"history"]?.AsArray().Select(node => node.Deserialize<HistoryEntry>()!).ToList() ?? new List<HistoryEntry>();
75
string? os = _config
[
"os"]?.ToString();
81
string? architecture = _config
[
"architecture"]?.ToString();
129
if (_config
[
"config"]?[propertyName] is JsonNode propertyValue)
246
if (_config
[
"config"]?["ExposedPorts"] is JsonObject portsJson)
265
if (_config
[
"config"]?["Labels"] is JsonObject labelsJson)
282
if (_config
[
"config"]?["Env"] is JsonArray envVarJson)
335
if (_config
[
"rootfs"] is { } rootfs)
337
if (rootfs
[
"type"]?.GetValue<string>() == "layers" && rootfs
[
"diff_ids"] is JsonArray layers)
Tasks\CreateImageIndex.cs (2)
151
var architecture = configJson
[
"architecture"]?.ToString();
157
var os = configJson
[
"os"]?.ToString();
Microsoft.TemplateEngine.Cli (1)
PostActionProcessors\AddJsonPropertyPostActionProcessor.cs (1)
228
JsonNode? childNode = node
[
property];
MSBuild (3)
JsonOutputFormatter.cs (3)
34
Assumed.Null(_topLevelNode
[
"Properties"], "Should not add multiple lists of properties to the json format.");
52
Assumed.Null(_topLevelNode
[
"Items"], "Should not add multiple lists of items to the json format.");
88
Assumed.Null(_topLevelNode
[
"TargetResults"], "Should not add multiple lists of target results to the json format.");
sdk-tasks (7)
GetRuntimePackRids.cs (1)
23
string [] runtimeIdentifiers = runtimeJsonRoot
[
"runtimes"]!.AsObject().Select(p => p.Key).ToArray();
PublishMutationUtilities.cs (2)
20
foreach (var target in deps
[
"targets"]!.AsObject())
38
var librariesObj = deps
[
"libraries"]!.AsObject();
RemoveAssetFromDepsPackages.cs (1)
37
foreach (var target in deps
[
"targets"]!.AsObject())
UpdateRuntimeConfig.cs (3)
38
var frameworks = config
[
"runtimeOptions"]?["frameworks"];
39
var framework = config
[
"runtimeOptions"]?["framework"];
58
var name = framework
[
"name"]!.GetValue<string>();
ServiceBus.AppHost (1)
AppHost.cs (1)
38
document
[
"UserConfig"]!["Logging"] = new JsonObject { ["Type"] = "Console" };