623 references to Data
Aspire.Hosting (11)
Orchestrator\ParameterProcessor.cs (6)
362if (parameterSection.Data.Count > 0) 402context.Input.Disabled = parameterSection.Data.Count == 0; 441var hasSavedState = parameterSection.Data.Count > 0 && input.Value is not null; 491var hasSavedState = parameterSection.Data.Count > 0; 597parameterSection.Data.Clear(); 974slot.Data.Clear();
Pipelines\DeploymentStateSection.cs (2)
55Data.Clear(); 56Data[RootValueKey] = JsonValue.Create(value);
Pipelines\Internal\DeploymentStateManagerBase.cs (3)
205section.OriginalData = section.Data.DeepClone().AsObject(); 255SetNestedPropertyValue(_state, section.SectionName, section.Data.DeepClone().AsObject()); 257section.OriginalData = section.Data.DeepClone().AsObject();
Aspire.Hosting.Azure (68)
AzureEnvironmentResource.cs (2)
250var resourceGroupName = azureStateSection.Data["ResourceGroup"]?.ToString(); 251var subscriptionId = azureStateSection.Data["SubscriptionId"]?.ToString();
AzureProvisioningController.cs (31)
1261section.Data.Clear(); 1929var outputs = ParseDeploymentStateJson(resource.Name, "Outputs", section.Data["Outputs"]?.GetValue<string>()); 1951var subscriptionId = section.Data["SubscriptionId"]?.GetValue<string>(); 1952var resourceGroupName = section.Data["ResourceGroup"]?.GetValue<string>(); 2628var deploymentId = section.Data["Id"]?.GetValue<string>(); 2632var outputs = ParseDeploymentStateJson(resource.Name, "Outputs", section.Data["Outputs"]?.GetValue<string>()); 2638["hasState"] = section.Data.Count > 0, 2642["locationOverride"] = section.Data[LocationOverrideKey]?.GetValue<string>(), 2643["checksum"] = section.Data["CheckSum"]?.GetValue<string>(), 2645["scope"] = ParseDeploymentStateJson(resource.Name, "Scope", section.Data["Scope"]?.GetValue<string>()) 2651if (section.Data[BicepProvisioner.DeploymentStateProvisioningStateKey]?.GetValue<string>() is { Length: > 0 } provisioningState) 2871if (section.Data[LocationOverrideKey]?.GetValue<string>() is { Length: > 0 } locationOverride) 2879section.Data[LocationOverrideKey] = normalizedLocation; 2890if (section.Data[LocationOverrideKey]?.GetValue<string>() is { Length: > 0 } locationOverride) 2903section.Data[LocationOverrideKey] = location; 2976section.Data[BicepProvisioner.DeploymentStateProvisioningStateKey] = BicepProvisioner.DeploymentStateProvisioningStateCanceled; 3218=> section.Data["Id"]?.GetValue<string>() is { Length: > 0 } deploymentId ? deploymentId : null; 3222section.Data[BicepProvisioner.DeploymentStateProvisioningStateKey]?.GetValue<string>(), 3283if (section.Data["Parameters"]?.GetValue<string>() is not { Length: > 0 } parametersJson) 3314=> section.Data[LocationOverrideKey]?.GetValue<string>() is { Length: > 0 } locationOverride ? locationOverride : null; 3497section.Data["SubscriptionId"]?.GetValue<string>() ?? provisionerOptions.Value.SubscriptionId ?? configuration["Azure:SubscriptionId"], 3498section.Data["ResourceGroup"]?.GetValue<string>() ?? provisionerOptions.Value.ResourceGroup ?? configuration["Azure:ResourceGroup"], 3499section.Data["Location"]?.GetValue<string>() ?? provisionerOptions.Value.Location ?? configuration["Azure:Location"], 3500section.Data["TenantId"]?.GetValue<string>() ?? provisionerOptions.Value.TenantId ?? configuration["Azure:TenantId"], 3501section.Data["Tenant"]?.GetValue<string>()); 3519if (section.Data["Outputs"]?.GetValue<string>() is not { Length: > 0 } outputsJson) 3638if (section.Data[LocationOverrideKey]?.GetValue<string>() is { Length: > 0 } locationOverride) 3645if (section.Data["Parameters"]?.GetValue<string>() is not { Length: > 0 } parametersJson) 3722section.Data.Clear(); 3725section.Data[LocationOverrideKey] = locationOverride; 3946section.Data[BicepProvisioner.DeploymentStateProvisioningStateKey]?.GetValue<string>(),
Provisioning\BicepUtilities.cs (2)
145if (section.Data[DeploymentStateParametersKey]?.GetValue<string>() is not { Length: > 0 } jsonString) 153var scope = section.Data[DeploymentStateScopeKey]?.GetValue<string>() is { Length: > 0 } scopeString
Provisioning\Internal\BaseProvisioningContextProvider.cs (2)
135azureStateSection.Data["ResourceGroup"] = resourceGroupName; 225var azureSection = azureStateSection.Data;
Provisioning\Internal\RunModeProvisioningContextProvider.cs (1)
243var data = azureSection.Data;
Provisioning\Provisioners\BicepProvisioner.cs (30)
52if (stateSection.Data.Count == 0) 57if (stateSection.Data[DeploymentStateProvisioningStateKey]?.GetValue<string>() is { Length: > 0 } provisioningState && 65var configCheckSum = stateSection.Data[BicepUtilities.DeploymentStateChecksumKey]?.GetValue<string>(); 81if (stateSection.Data[BicepUtilities.DeploymentStateOutputsKey]?.GetValue<string>() is { Length: > 0 } outputJson) 116if (stateSection.Data[BicepUtilities.DeploymentStateIdKey]?.GetValue<string>() is { Length: > 0 } configuredDeploymentId && 184stateSection.Data[BicepUtilities.DeploymentStateIdKey]?.GetValue<string>() is not { Length: > 0 } deploymentId || 355stateSection.Data[BicepUtilities.DeploymentStateChecksumKey]?.GetValue<string>() is not { Length: > 0 } checksum) 372var locationOverride = stateSection.Data[AzureProvisioningController.LocationOverrideKey]?.GetValue<string>(); 438stateSection.Data[DeploymentStateProvisioningStateKey] = provisioningState; 452var locationOverride = stateSection.Data[AzureProvisioningController.LocationOverrideKey]?.GetValue<string>(); 453stateSection.Data.Clear(); 457stateSection.Data[AzureProvisioningController.LocationOverrideKey] = locationOverride; 473if (stateSection.Data[key]?.GetValue<string>() is not { Length: > 0 } json) 492stateSection.Data[DeploymentStateProvisioningStateKey]?.GetValue<string>(), 624var canceledLocationOverride = canceledStateSection.Data[AzureProvisioningController.LocationOverrideKey]?.GetValue<string>(); 681locationOverride = stateSection.Data[AzureProvisioningController.LocationOverrideKey]?.GetValue<string>(); 799locationOverride = stateSection.Data[AzureProvisioningController.LocationOverrideKey]?.GetValue<string>(); 857var cachedDeploymentId = stateSection.Data[BicepUtilities.DeploymentStateIdKey]?.GetValue<string>(); 858var cachedChecksum = stateSection.Data[BicepUtilities.DeploymentStateChecksumKey]?.GetValue<string>(); 1328stateSection.Data.Clear(); 1335stateSection.Data[AzureProvisioningController.LocationOverrideKey] = locationOverride; 1338stateSection.Data[BicepUtilities.DeploymentStateIdKey] = deploymentId.ToString(); 1339stateSection.Data[BicepUtilities.DeploymentStateParametersKey] = parameters.ToJsonString(); 1343stateSection.Data[BicepUtilities.DeploymentStateOutputsKey] = outputObj.ToJsonString(); 1348stateSection.Data[BicepUtilities.DeploymentStateScopeKey] = scope.ToJsonString(); 1351stateSection.Data[BicepUtilities.DeploymentStateChecksumKey] = checksum; 1355stateSection.Data[DeploymentStateProvisioningStateKey] = provisioningState; 1490section.Data[key]?.GetValue<string>() is { Length: > 0 } value ? value : null; 1494if (section.Data[AzureProvisioningController.LocationOverrideKey]?.GetValue<string>() is { Length: > 0 } locationOverride) 1499if (section.Data[BicepUtilities.DeploymentStateParametersKey]?.GetValue<string>() is { Length: > 0 } parametersJson)
Aspire.Hosting.Azure.Kubernetes (7)
AzureKubernetesEnvironmentResource.AksPipeline.cs (4)
351if (deploymentStateSection.Data.Count == 0) 368clusterResourceId = GetPersistedAksResourceId(deploymentStateSection.Data); 701return (azureState.Data["SubscriptionId"]?.ToString(), azureState.Data["ResourceGroup"]?.ToString());
AzureKubernetesEnvironmentResource.cs (3)
125var hasPersistedAksIdentity = HasPersistedAksIdentity(deploymentStateSection.Data); 177if (HasPersistedHelmReleaseState(environmentState.Data)) 193if (HasPersistedHelmReleaseState(chartState.Data))
Aspire.Hosting.Azure.Kubernetes.Tests (3)
AzureKubernetesInfrastructureTests.cs (2)
420Assert.Empty(chartStateAfterFirstDestroy.Data); 783Assert.Empty(sentinelState.Data);
tests\Shared\InMemoryDeploymentStateManager.cs (1)
37_sections[section.SectionName] = section.Data;
Aspire.Hosting.Azure.Sandboxes (63)
AzureSandboxContainerDeployment.cs (62)
265var previousOwnerId = previousStateSection.Data["OwnerId"]?.GetValue<string>(); 277stateSection.Data["OwnerId"] = ownerId; 390var pendingSecurityCleanup = previousStateSection.Data["PendingSecurityCleanup"]?.GetValue<bool>() == true; 393stateSection.Data.Clear(); 394stateSection.Data["OwnerId"] = ownerId; 397stateSection.Data["SandboxId"] = sandboxId; 398stateSection.Data["DiskImageId"] = diskImageId; 399stateSection.Data["SubscriptionId"] = dataPlaneScope.SubscriptionId; 400stateSection.Data["ResourceGroup"] = dataPlaneScope.ResourceGroupName; 401stateSection.Data["Location"] = dataPlaneScope.Region; 402stateSection.Data["SandboxGroup"] = dataPlaneScope.SandboxGroupName; 403stateSection.Data["ResourceName"] = resource.Name; 404stateSection.Data["SourceResourceName"] = targetResource.Name; 405stateSection.Data["DeployId"] = deployId; 406stateSection.Data["Ports"] = portStates; 407stateSection.Data["EndpointSecurityFingerprint"] = endpointSecurityFingerprint; 408stateSection.Data["HasRuntimeEnvironmentConfiguration"] = resolvedEnvironmentVariables.Values.Count > 0; 409stateSection.Data["HasRuntimeCommandConfiguration"] = hasModeledCommandConfiguration; 410stateSection.Data["PendingSecurityCleanup"] = securityConfigurationChanged; 474stateSection.Data["PendingSecurityCleanup"] = false; 475stateSection.Data.Remove("PendingOwnerCleanupIds"); 476stateSection.Data.Remove("PendingLegacyDeploymentCleanup"); 1320var ownerId = stateSection.Data["OwnerId"]?.GetValue<string>(); 1399var staleResourceNames = sandboxesSection.Data 1436if (stateSection.Data["OwnerId"]?.GetValue<string>() is { Length: > 0 } ownerId && 1452stateSection.Data["OwnerId"]?.GetValue<string>())) 1592var sandboxId = stateSection.Data["SandboxId"]?.GetValue<string>(); 1605var diskImageId = stateSection.Data["DiskImageId"]?.GetValue<string>(); 1632stateSection.Data.DeepClone().AsObject(), 1870if (stateSection.Data["ResourceName"]?.GetValue<string>() is { Length: > 0 } resourceName) 1930var ownerIds = stateSection.Data["PendingOwnerCleanupIds"] is JsonArray pendingOwnerIds 1933if (stateSection.Data["OwnerId"]?.GetValue<string>() is { Length: > 0 } previousOwnerId && 1950stateSection.Data.Remove("PendingOwnerCleanupIds"); 1954stateSection.Data["PendingOwnerCleanupIds"] = new JsonArray( 1967if (stateSection.Data["OwnerId"]?.GetValue<string>() is { Length: > 0 } previousOwnerId && 1972pendingDeploymentCleanup = stateSection.Data.DeepClone().AsObject(); 1980stateSection.Data["PendingLegacyDeploymentCleanup"]?.DeepClone() as JsonObject; 1988stateSection.Data.Remove("PendingLegacyDeploymentCleanup"); 1992stateSection.Data["PendingLegacyDeploymentCleanup"] = pendingDeploymentCleanup.DeepClone(); 2070previousStateSection.Data["HasRuntimeEnvironmentConfiguration"]?.GetValue<bool>() == true || 2072previousStateSection.Data["HasRuntimeCommandConfiguration"]?.GetValue<bool>() == true) 2077if (previousStateSection.Data["PendingSecurityCleanup"]?.GetValue<bool>() == true) 2082var previousFingerprint = previousStateSection.Data["EndpointSecurityFingerprint"]?.GetValue<string>(); 2096stateSection.Data["SubscriptionId"] ??= scope.SubscriptionId; 2097stateSection.Data["ResourceGroup"] ??= scope.ResourceGroupName; 2098stateSection.Data["Location"] ??= scope.Region; 2099stateSection.Data["SandboxGroup"] ??= scope.SandboxGroupName; 2100stateSection.Data["ResourceName"] ??= resource.Name; 2101stateSection.Data["SourceResourceName"] ??= resource.TargetResource.Name; 2111var subscriptionId = stateSection.Data["SubscriptionId"]?.GetValue<string>(); 2112var resourceGroup = stateSection.Data["ResourceGroup"]?.GetValue<string>(); 2113var location = stateSection.Data["Location"]?.GetValue<string>(); 2114var sandboxGroup = stateSection.Data["SandboxGroup"]?.GetValue<string>(); 2135!string.IsNullOrWhiteSpace(stateSection.Data["OwnerId"]?.GetValue<string>()) || 2136!string.IsNullOrWhiteSpace(stateSection.Data["SandboxId"]?.GetValue<string>()) || 2137!string.IsNullOrWhiteSpace(stateSection.Data["DiskImageId"]?.GetValue<string>()); 2152if (stateSection.Data["Ports"] is not JsonArray ports) 2175if (previousStateSection.Data["DeployId"]?.GetValue<string>() is { Length: > 0 } previousDeployId) 2190if (previousStateSection.Data[stateKey]?.GetValue<string>() is { Length: > 0 } previousId) 2200if (stateSection.Data["Ports"] is JsonArray ports) 2213if (stateSection.Data["Port"]?.GetValue<int>() is { } legacyPort) 2302var value = section.Data[name]?.GetValue<string>();
AzureSandboxEndpointPropertyValueProvider.cs (1)
130if (stateSection.Data["Ports"] is not JsonArray ports)
Aspire.Hosting.Azure.Tests (283)
AzureBicepProvisionerTests.cs (61)
40cached.Data[BicepUtilities.DeploymentStateParametersKey] = parameters.ToJsonString(); 41cached.Data[BicepUtilities.DeploymentStateChecksumKey] = BicepUtilities.GetChecksum(registration.Resource, parameters, null); 42cached.Data[BicepUtilities.DeploymentStateOutputsKey] = """{"clientId":{"value":"original-client"}}"""; 51azureState.Data["TenantResourceSuffix"] = "dev-b"; 904section.Data[AzureProvisioningController.LocationOverrideKey] = "westus3"; 938section.Data["Id"] = "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/test-rg/providers/Microsoft.Resources/deployments/storage2"; 939section.Data["Parameters"] = parameters.ToJsonString(); 940section.Data["Outputs"] = """{"name":{"value":"storage2"}}"""; 941section.Data["CheckSum"] = checksum; 942section.Data[BicepProvisioner.DeploymentStateProvisioningStateKey] = BicepProvisioner.DeploymentStateProvisioningStateRunning; 974azureSection.Data["SubscriptionId"] = "12345678-1234-1234-1234-123456789012"; 975azureSection.Data["ResourceGroup"] = "test-rg"; 976azureSection.Data["TenantId"] = "87654321-4321-4321-4321-210987654321"; 977azureSection.Data["Tenant"] = "microsoft.onmicrosoft.com"; 978azureSection.Data["Location"] = "westus2"; 982section.Data["Id"] = "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/test-rg/providers/Microsoft.Resources/deployments/storage2"; 983section.Data["Parameters"] = parameters.ToJsonString(); 984section.Data["Outputs"] = """{"name":{"value":"storage2"}}"""; 985section.Data["CheckSum"] = checksum; 1025azureSection.Data["SubscriptionId"] = "12345678-1234-1234-1234-123456789012"; 1026azureSection.Data["ResourceGroup"] = "environment-rg"; 1027azureSection.Data["TenantId"] = "87654321-4321-4321-4321-210987654321"; 1028azureSection.Data["Tenant"] = "microsoft.onmicrosoft.com"; 1029azureSection.Data["Location"] = "westus2"; 1033section.Data["Id"] = "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/scoped-rg/providers/Microsoft.Resources/deployments/storage2"; 1034section.Data["Parameters"] = parameters.ToJsonString(); 1035section.Data["Outputs"] = """{"name":{"value":"storage2"}}"""; 1036section.Data["CheckSum"] = checksum; 1067section.Data[AzureProvisioningController.LocationOverrideKey] = "westus3"; 1088Assert.Equal("westus3", section.Data[AzureProvisioningController.LocationOverrideKey]?.GetValue<string>()); 1089Assert.False(section.Data.ContainsKey(BicepProvisioner.DeploymentStateProvisioningStateKey)); 1101section.Data[AzureProvisioningController.LocationOverrideKey] = "westus3"; 1121Assert.False(section.Data.ContainsKey(AzureProvisioningController.LocationOverrideKey)); 1150Assert.Equal("/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/test-rg/providers/Microsoft.Resources/deployments/storage2", section.Data["Id"]?.GetValue<string>()); 1151Assert.Equal(BicepProvisioner.DeploymentStateProvisioningStateRunning, section.Data[BicepProvisioner.DeploymentStateProvisioningStateKey]?.GetValue<string>()); 1152Assert.True(section.Data.ContainsKey("Parameters")); 1153Assert.True(section.Data.ContainsKey("CheckSum")); 1154Assert.False(section.Data.ContainsKey("Outputs")); 1405Assert.Equal(BicepProvisioner.DeploymentStateProvisioningStateCanceled, section.Data[BicepProvisioner.DeploymentStateProvisioningStateKey]?.GetValue<string>()); 1438Assert.Equal(BicepProvisioner.DeploymentStateProvisioningStateCanceled, section.Data[BicepProvisioner.DeploymentStateProvisioningStateKey]?.GetValue<string>()); 1470Assert.Equal(BicepProvisioner.DeploymentStateProvisioningStateCanceled, section.Data[BicepProvisioner.DeploymentStateProvisioningStateKey]?.GetValue<string>()); 1504Assert.Null(section.Data[BicepProvisioner.DeploymentStateProvisioningStateKey]); 1505Assert.Equal(deploymentId, section.Data[BicepUtilities.DeploymentStateIdKey]?.GetValue<string>()); 1563Assert.Equal(ResourcesProvisioningState.Failed.ToString(), section.Data[BicepProvisioner.DeploymentStateProvisioningStateKey]?.GetValue<string>()); 1664Assert.Null(section.Data[BicepProvisioner.DeploymentStateProvisioningStateKey]); 1665Assert.Equal(deploymentId, section.Data[BicepUtilities.DeploymentStateIdKey]?.GetValue<string>()); 1666var outputs = JsonNode.Parse(section.Data[BicepUtilities.DeploymentStateOutputsKey]!.GetValue<string>())!.AsObject(); 1719Assert.Empty(section.Data); 1745Assert.Equal(BicepProvisioner.DeploymentStateProvisioningStateRunning, section.Data[BicepProvisioner.DeploymentStateProvisioningStateKey]?.GetValue<string>()); 1746Assert.Equal(deploymentId, section.Data[BicepUtilities.DeploymentStateIdKey]?.GetValue<string>()); 1774Assert.Equal(BicepProvisioner.DeploymentStateProvisioningStateRunning, section.Data[BicepProvisioner.DeploymentStateProvisioningStateKey]?.GetValue<string>()); 1775Assert.Equal(deploymentId, section.Data[BicepUtilities.DeploymentStateIdKey]?.GetValue<string>()); 1800Assert.Equal(BicepProvisioner.DeploymentStateProvisioningStateFailed, section.Data[BicepProvisioner.DeploymentStateProvisioningStateKey]?.GetValue<string>()); 1825Assert.Equal(BicepProvisioner.DeploymentStateProvisioningStateCanceled, section.Data[BicepProvisioner.DeploymentStateProvisioningStateKey]?.GetValue<string>()); 1858Assert.Null(section.Data[BicepProvisioner.DeploymentStateProvisioningStateKey]); 1859Assert.Equal(deploymentId, section.Data[BicepUtilities.DeploymentStateIdKey]?.GetValue<string>()); 1916section.Data[BicepUtilities.DeploymentStateIdKey] = deploymentId; 1917section.Data[BicepUtilities.DeploymentStateParametersKey] = parameters.ToJsonString(); 1918section.Data[BicepUtilities.DeploymentStateScopeKey] = scope.ToJsonString(); 1919section.Data[BicepUtilities.DeploymentStateChecksumKey] = BicepUtilities.GetChecksum(resource, parameters, scope); 1920section.Data[BicepProvisioner.DeploymentStateProvisioningStateKey] = BicepProvisioner.DeploymentStateProvisioningStateRunning;
AzureEnvironmentResourceExtensionsTests.cs (193)
76azure.Data["SubscriptionId"] = "12345678-1234-1234-1234-123456789012"; 77azure.Data["ResourceGroup"] = "test-rg"; 78azure.Data["Location"] = "westus2"; 81directoryState.Data["Id"] = "directory-deployment"; 82directoryState.Data["Outputs"] = """ 86var originalDirectoryState = directoryState.Data.ToJsonString(); 95storageState.Data["Id"] = "storage-deployment"; 118Assert.Equal(originalDirectoryState, (await deploymentState.AcquireSectionAsync("Azure:Deployments:directory", cts.Token)).Data.ToJsonString()); 125Assert.Empty((await deploymentState.AcquireSectionAsync("Azure:Deployments:storage", cts.Token)).Data); 139Assert.Equal("storage-deployment", (await deploymentState.AcquireSectionAsync("Azure:Deployments:storage", cts.Token)).Data["Id"]!.GetValue<string>()); 321Assert.Equal("dev-a", saved.Data["TenantResourceSuffix"]!.GetValue<string>()); 615azureSection.Data["SubscriptionId"] = "sub"; 616azureSection.Data["Location"] = "westus2"; 620storageSection.Data["Id"] = "/subscriptions/sub/resourceGroups/rg/providers/Microsoft.Resources/deployments/storage"; 621storageSection.Data["CheckSum"] = "checksum"; 669Assert.Empty(azureSection.Data); 672Assert.Empty(storageSection.Data); 911storageSection.Data["Outputs"] = """ 947storageSection.Data["Outputs"] = """{"id":{"value":"/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/rg/providers/Microsoft.Storage/storageAccounts/storage"}}"""; 1133azureSection.Data["SubscriptionId"] = subscriptionId; 1134azureSection.Data["Location"] = "westus2"; 1135azureSection.Data["ResourceGroup"] = resourceGroup; 1136azureSection.Data["TenantId"] = tenantId; 1140storageSection.Data["Id"] = deploymentId; 1141storageSection.Data["Parameters"] = """ 1148storageSection.Data["Outputs"] = $$""" 1160storageSection.Data["Scope"] = $$""" 1165storageSection.Data["CheckSum"] = "checksum"; 1166storageSection.Data[BicepProvisioner.DeploymentStateProvisioningStateKey] = BicepProvisioner.DeploymentStateProvisioningStateRunning; 1167storageSection.Data[AzureProvisioningController.LocationOverrideKey] = "westus3"; 1245storageSection.Data["Outputs"] = $$""" 1520storageSection.Data["Outputs"] = """{"blobEndpoint":{"value":"https://storage.blob.core.windows.net/"}}"""; 1578storageSection.Data["Outputs"] = $$""" 1639storageSection.Data["Outputs"] = $$""" 1701storageSection.Data["Id"] = deploymentId; 1702storageSection.Data[BicepProvisioner.DeploymentStateProvisioningStateKey] = BicepProvisioner.DeploymentStateProvisioningStateRunning; 1726Assert.Equal(BicepProvisioner.DeploymentStateProvisioningStateCanceled, storageSection.Data[BicepProvisioner.DeploymentStateProvisioningStateKey]?.GetValue<string>()); 1829storageSection.Data[BicepUtilities.DeploymentStateIdKey] = deploymentId; 1830storageSection.Data[BicepProvisioner.DeploymentStateProvisioningStateKey] = BicepProvisioner.DeploymentStateProvisioningStateRunning; 1860Assert.Equal(BicepProvisioner.DeploymentStateProvisioningStateCanceled, storageSection.Data[BicepProvisioner.DeploymentStateProvisioningStateKey]?.GetValue<string>()); 2005storageSection.Data["Id"] = "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/test-rg/providers/Microsoft.Resources/deployments/storage"; 2006storageSection.Data[BicepProvisioner.DeploymentStateProvisioningStateKey] = BicepProvisioner.DeploymentStateProvisioningStateSucceeded; 2043storageSection.Data["Id"] = deploymentId; 2044storageSection.Data[BicepProvisioner.DeploymentStateProvisioningStateKey] = BicepProvisioner.DeploymentStateProvisioningStateSucceeded; 2064Assert.Equal(BicepProvisioner.DeploymentStateProvisioningStateSucceeded, storageSection.Data[BicepProvisioner.DeploymentStateProvisioningStateKey]?.GetValue<string>()); 2110storageSection.Data["Id"] = deploymentId; 2111storageSection.Data["Outputs"] = new JsonObject 2119storageSection.Data[AzureProvisioningController.LocationOverrideKey] = "westus3"; 2120storageSection.Data[BicepProvisioner.DeploymentStateProvisioningStateKey] = BicepProvisioner.DeploymentStateProvisioningStateRunning; 2124storage2Section.Data["Id"] = "storage2-deployment"; 2159Assert.Equal("westus3", storageSection.Data[AzureProvisioningController.LocationOverrideKey]?.GetValue<string>()); 2160Assert.False(storageSection.Data.ContainsKey("Id")); 2161Assert.False(storageSection.Data.ContainsKey("Outputs")); 2164Assert.Equal("storage2-deployment", storage2Section.Data["Id"]?.GetValue<string>()); 2213keyVaultSection.Data["Id"] = deploymentId; 2214keyVaultSection.Data["Outputs"] = new JsonObject 2222keyVaultSection.Data[BicepProvisioner.DeploymentStateProvisioningStateKey] = BicepProvisioner.DeploymentStateProvisioningStateRunning; 2248Assert.False(keyVaultSection.Data.ContainsKey("Id")); 2249Assert.False(keyVaultSection.Data.ContainsKey("Outputs")); 2285storageSection.Data["Outputs"] = $$""" 2364storageSection.Data["Outputs"] = $$""" 2431storageSection.Data["Id"] = "storage-deployment"; 2435storage2Section.Data["Id"] = "storage2-deployment"; 2470Assert.Empty(storageSection.Data); 2473Assert.Equal("storage2-deployment", storage2Section.Data["Id"]?.GetValue<string>()); 2509storageSection.Data["Id"] = "storage-deployment"; 2513storage2Section.Data["Id"] = "storage2-deployment"; 2535Assert.Empty(storageSection.Data); 2538Assert.Equal("storage2-deployment", storage2Section.Data["Id"]?.GetValue<string>()); 3147Assert.Equal("westus2", storageSection.Data[AzureProvisioningController.LocationOverrideKey]?.GetValue<string>()); 3194Assert.Equal("westus3", storageSection.Data[AzureProvisioningController.LocationOverrideKey]?.GetValue<string>()); 3252Assert.Equal("westus3", bicepSection.Data[AzureProvisioningController.LocationOverrideKey]?.GetValue<string>()); 3255Assert.False(visibleSection.Data.ContainsKey(AzureProvisioningController.LocationOverrideKey)); 3281azureSection.Data["SubscriptionId"] = "12345678-1234-1234-1234-123456789012"; 3282azureSection.Data["Location"] = "eastus"; 3283azureSection.Data["ResourceGroup"] = "test-rg"; 3287storageSection.Data[AzureProvisioningController.LocationOverrideKey] = "westus3"; 3353storageSection.Data["Outputs"] = new JsonObject 3388Assert.False(storageSection.Data.ContainsKey(AzureProvisioningController.LocationOverrideKey)); 3420storageSection.Data["Outputs"] = """{"id":{"value":"/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/test-rg/providers/Microsoft.Storage/storageAccounts/storage26wmkwq4f4li52"}}"""; 3479storageSection.Data["Parameters"] = """ 3487storageSection.Data["Outputs"] = $$""" 3545storageSection.Data["LocationOverride"] = "westus2"; 3546storageSection.Data["Outputs"] = """{"id":{"value":"/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/test-rg/providers/Microsoft.Storage/storageAccounts/storage26wmkwq4f4li52"}}"""; 3578Assert.Equal("westus3", storageSection.Data[AzureProvisioningController.LocationOverrideKey]?.GetValue<string>()); 3609storageSection.Data["Outputs"] = """{"id":{"value":"/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/test-rg/providers/Microsoft.Storage/storageAccounts/storage26wmkwq4f4li52"}}"""; 3640Assert.Equal("westus3", storageSection.Data[AzureProvisioningController.LocationOverrideKey]?.GetValue<string>()); 3674storageSection.Data["Outputs"] = new JsonObject 3705Assert.Equal("westus3", storageSection.Data[AzureProvisioningController.LocationOverrideKey]?.GetValue<string>()); 3727azureSection.Data["SubscriptionId"] = "12345678-1234-1234-1234-123456789012"; 3728azureSection.Data["Location"] = "westus2"; 3729azureSection.Data["ResourceGroup"] = "test-rg"; 3730azureSection.Data["TenantId"] = "87654321-4321-4321-4321-210987654321"; 3734storageSection.Data["Id"] = "storage-deployment"; 3738storage2Section.Data["Id"] = "storage2-deployment"; 3759Assert.Equal("12345678-1234-1234-1234-123456789012", azureSection.Data["SubscriptionId"]?.GetValue<string>()); 3760Assert.Equal("westus2", azureSection.Data["Location"]?.GetValue<string>()); 3761Assert.Equal("test-rg", azureSection.Data["ResourceGroup"]?.GetValue<string>()); 3762Assert.Equal("87654321-4321-4321-4321-210987654321", azureSection.Data["TenantId"]?.GetValue<string>()); 3805Assert.Equal("12345678-1234-1234-1234-123456789012", azureSection.Data["SubscriptionId"]?.GetValue<string>()); 3806Assert.Equal("westus3", azureSection.Data["Location"]?.GetValue<string>()); 3807Assert.Equal("cli-rg-é", azureSection.Data["ResourceGroup"]?.GetValue<string>()); 3808Assert.Equal("87654321-4321-4321-4321-210987654321", azureSection.Data["TenantId"]?.GetValue<string>()); 3852azureSection.Data["SubscriptionId"] = "12345678-1234-1234-1234-123456789012"; 3853azureSection.Data["Location"] = "westus2"; 3854azureSection.Data["ResourceGroup"] = "test-rg"; 3855azureSection.Data["TenantId"] = "87654321-4321-4321-4321-210987654321"; 3875Assert.False(azureSection.Data.ContainsKey("TenantId")); 3901azureSection.Data["SubscriptionId"] = "12345678-1234-1234-1234-123456789012"; 3902azureSection.Data["Location"] = "westus2"; 3903azureSection.Data["ResourceGroup"] = "test-rg"; 3926Assert.Equal("westus2", azureSection.Data["Location"]?.GetValue<string>()); 3947azureSection.Data["SubscriptionId"] = "12345678-1234-1234-1234-123456789012"; 3948azureSection.Data["Location"] = "westus2"; 3949azureSection.Data["ResourceGroup"] = "test-rg"; 3953storageSection.Data["Parameters"] = """{"location":{"value":"westus2"}}"""; 3980Assert.False(storageSection.Data.ContainsKey(AzureProvisioningController.LocationOverrideKey)); 4007azureSection.Data["SubscriptionId"] = "12345678-1234-1234-1234-123456789012"; 4008azureSection.Data["Location"] = "westus2"; 4009azureSection.Data["ResourceGroup"] = "test-rg"; 4013storage2Section.Data[AzureProvisioningController.LocationOverrideKey] = "West US 3"; 4021Assert.Equal("westus3", storage2Section.Data[AzureProvisioningController.LocationOverrideKey]?.GetValue<string>()); 4048azureSection.Data["SubscriptionId"] = "12345678-1234-1234-1234-123456789012"; 4049azureSection.Data["Location"] = "westus2"; 4050azureSection.Data["ResourceGroup"] = "test-rg"; 4054storage2Section.Data["Parameters"] = """ 4067Assert.Equal("westus3", storage2Section.Data[AzureProvisioningController.LocationOverrideKey]?.GetValue<string>()); 4093azureSection.Data["SubscriptionId"] = "12345678-1234-1234-1234-123456789012"; 4094azureSection.Data["Location"] = "westus2"; 4095azureSection.Data["ResourceGroup"] = "test-rg"; 4126Assert.Equal("westus3", storage2Section.Data[AzureProvisioningController.LocationOverrideKey]?.GetValue<string>()); 4153storageSection.Data["Id"] = "storage-deployment"; 4154storageSection.Data[AzureProvisioningController.LocationOverrideKey] = "westus3"; 4164Assert.Empty(storageSection.Data); 4255keyVaultSection.Data[AzureProvisioningController.LocationOverrideKey] = "ukwest"; 4335keyVaultSection.Data[AzureProvisioningController.LocationOverrideKey] = "ukwest"; 4659azureSection.Data["SubscriptionId"] = "12345678-1234-1234-1234-123456789012"; 4660azureSection.Data["Location"] = "westus2"; 4661azureSection.Data["ResourceGroup"] = "test-rg"; 4662azureSection.Data["TenantId"] = "87654321-4321-4321-4321-210987654321"; 4663azureSection.Data["Tenant"] = "testdomain.onmicrosoft.com"; 4667storageSection.Data["Outputs"] = """{"id":{"value":"/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/test-rg/providers/Microsoft.Storage/storageAccounts/storage"}}"""; 4708azureSection.Data["SubscriptionId"] = "12345678-1234-1234-1234-123456789012"; 4709azureSection.Data["Location"] = "westus2"; 4710azureSection.Data["ResourceGroup"] = "test-rg"; 4714storageSection.Data["Outputs"] = $$""" 4756azureSection.Data["SubscriptionId"] = "12345678-1234-1234-1234-123456789012"; 4757azureSection.Data["Location"] = "westus2"; 4758azureSection.Data["ResourceGroup"] = "test-rg"; 4762storageSection.Data["Outputs"] = $$""" 4772storage2Section.Data["Outputs"] = $$""" 4816azureSection.Data["SubscriptionId"] = "12345678-1234-1234-1234-123456789012"; 4817azureSection.Data["Location"] = "westus2"; 4818azureSection.Data["ResourceGroup"] = "test-rg"; 4822storageSection.Data["Outputs"] = """{"blobEndpoint":{"value":"https://storage.blob.core.windows.net/"}}"""; 4855azureSection.Data["SubscriptionId"] = "12345678-1234-1234-1234-123456789012"; 4856azureSection.Data["Location"] = "westus2"; 4857azureSection.Data["ResourceGroup"] = "test-rg"; 4858azureSection.Data["TenantId"] = "87654321-4321-4321-4321-210987654321"; 4862storageSection.Data["Id"] = "storage-deployment"; 4882Assert.Equal("12345678-1234-1234-1234-123456789012", azureSection.Data["SubscriptionId"]?.GetValue<string>()); 4883Assert.Equal("westus2", azureSection.Data["Location"]?.GetValue<string>()); 4884Assert.Equal("test-rg", azureSection.Data["ResourceGroup"]?.GetValue<string>()); 4885Assert.Equal("87654321-4321-4321-4321-210987654321", azureSection.Data["TenantId"]?.GetValue<string>()); 4888Assert.Empty(storageSection.Data); 4914storageSection.Data["Id"] = "storage-deployment"; 4934Assert.Empty(storageSection.Data); 4955azureSection.Data["SubscriptionId"] = "12345678-1234-1234-1234-123456789012"; 4956azureSection.Data["Location"] = "westus2"; 4957azureSection.Data["ResourceGroup"] = "missing-rg"; 4961storageSection.Data["Id"] = "storage-deployment"; 4980Assert.Empty(storageSection.Data); 5003azureSection.Data["SubscriptionId"] = "12345678-1234-1234-1234-123456789012"; 5004azureSection.Data["Location"] = "westus2"; 5005azureSection.Data["ResourceGroup"] = "test-rg"; 5009storageSection.Data["Id"] = "storage-deployment"; 5031Assert.Equal("storage-deployment", storageSection.Data["Id"]?.GetValue<string>()); 5140storageSection.Data[BicepUtilities.DeploymentStateIdKey] = deploymentId; 5141storageSection.Data[BicepProvisioner.DeploymentStateProvisioningStateKey] = BicepProvisioner.DeploymentStateProvisioningStateRunning; 5765_sections[section.SectionName] = section.Data.DeepClone().AsObject(); 5910azureSection.Data["SubscriptionId"]?.GetValue<string>(), 5911azureSection.Data["ResourceGroup"]?.GetValue<string>(), 5912azureSection.Data["Location"]?.GetValue<string>(), 5913azureSection.Data["TenantId"]?.GetValue<string>(), 5914azureSection.Data["TenantResourceSuffix"]?.GetValue<string>()); 5922azureSection.Data["SubscriptionId"] = options.SubscriptionId; 5923azureSection.Data["Location"] = options.Location; 5924azureSection.Data["ResourceGroup"] = options.ResourceGroup; 5927azureSection.Data["TenantResourceSuffix"] = options.TenantResourceSuffix; 5932azureSection.Data["TenantId"] = options.TenantId; 5936azureSection.Data.Remove("TenantId"); 5941azureSection.Data["TenantResourceSuffix"]?.GetValue<string>()); 6060section.Data[BicepProvisioner.DeploymentStateProvisioningStateKey] = BicepProvisioner.DeploymentStateProvisioningStateCanceled;
AzureSandboxesTests.cs (16)
47state.Data["Ports"] = new JsonArray(new JsonObject 1015previousState.Data["EndpointSecurityFingerprint"] = fingerprint; 1023previousState.Data["EndpointSecurityFingerprint"] = "legacy-endpoint-only-fingerprint"; 1025previousState.Data["EndpointSecurityFingerprint"] = fingerprint; 1026previousState.Data["PendingSecurityCleanup"] = true; 1028previousState.Data["PendingSecurityCleanup"] = false; 1040previousState.Data["HasRuntimeEnvironmentConfiguration"] = true; 1042previousState.Data["HasRuntimeEnvironmentConfiguration"] = false; 1048previousState.Data["HasRuntimeCommandConfiguration"] = true; 1050previousState.Data["HasRuntimeCommandConfiguration"] = false; 1186azureState.Data["SubscriptionId"] = "sub"; 1187azureState.Data["ResourceGroup"] = "rg"; 1188azureState.Data["Location"] = "westus3"; 2852state.Data["Ports"] = new JsonArray(new JsonObject 2985state.Data["Ports"] = new JsonArray 3271state.Data["Ports"] = new JsonArray(new JsonObject
BicepUtilitiesTests.cs (3)
190cached.Data[BicepUtilities.DeploymentStateParametersKey] = parameters.ToJsonString(); 196azureState.Data["TenantResourceSuffix"] = "dev-b"; 204azureState.Data["TenantResourceSuffix"] = string.Empty;
ProvisioningContextProviderTests.cs (6)
52Assert.Equal(selectedSuffix ?? string.Empty, saved.Data["TenantResourceSuffix"]!.GetValue<string>()); 177saved.Data["TenantResourceSuffix"]?.GetValue<string>()); 328azureSection.Data["SubscriptionId"] = "12345678-1234-1234-1234-123456789012"; 329azureSection.Data["Location"] = "westus3"; 330azureSection.Data["ResourceGroup"] = "rehydrated-rg"; 331azureSection.Data["AllowResourceGroupCreation"] = "true";
ProvisioningContextTests.cs (2)
203azureSection.Data["SubscriptionId"] = "test-id"; 210Assert.Equal("test-id", loadedSection.Data["SubscriptionId"]?.ToString());
ProvisioningTestHelpers.cs (1)
1070_state[section.SectionName] = section.Data;
tests\Shared\InMemoryDeploymentStateManager.cs (1)
37_sections[section.SectionName] = section.Data;
Aspire.Hosting.Docker (6)
DockerComposeEnvironmentResource.cs (6)
150var savedComposeFilePath = stateSection.Data["ComposeFilePath"]?.ToString(); 166var savedOutputPath = stateSection.Data["OutputPath"]?.ToString() ?? Path.GetDirectoryName(savedComposeFilePath)!; 167var savedProjectName = stateSection.Data["ProjectName"]?.ToString() ?? GetDockerComposeProjectName(ctx, this); 459stateSection.Data["OutputPath"] = outputPath; 460stateSection.Data["ProjectName"] = composeContext.ProjectName; 461stateSection.Data["ComposeFilePath"] = composeContext.ComposeFilePath;
Aspire.Hosting.Docker.Tests (3)
DockerComposeTests.cs (2)
1062Assert.NotNull(stateSection.Data["ComposeFilePath"]?.ToString()); 1063Assert.NotNull(stateSection.Data["ProjectName"]?.ToString());
tests\Shared\InMemoryDeploymentStateManager.cs (1)
37_sections[section.SectionName] = section.Data;
Aspire.Hosting.Kubernetes (8)
Deployment\HelmDeploymentEngine.cs (4)
201var savedReleaseName = stateSection.Data["ReleaseName"]?.ToString(); 202var savedNamespace = stateSection.Data["Namespace"]?.ToString(); 488stateSection.Data["ReleaseName"] = releaseName; 489stateSection.Data["Namespace"] = @namespace;
KubernetesHelmChartExtensions.cs (4)
370stateSection.Data["ReleaseName"] = releaseName; 371stateSection.Data["Namespace"] = @namespace; 402var savedReleaseName = stateSection.Data["ReleaseName"]?.ToString(); 403var savedNamespace = stateSection.Data["Namespace"]?.ToString();
Aspire.Hosting.Kubernetes.Tests (4)
KubernetesDeployTests.cs (3)
2031Assert.Equal("my-release", stateSection.Data["ReleaseName"]?.ToString()); 2077Assert.Empty(stateSection.Data); 2130Assert.Equal("podinfo", stateSection.Data["ReleaseName"]?.ToString());
tests\Shared\InMemoryDeploymentStateManager.cs (1)
37_sections[section.SectionName] = section.Data;
Aspire.Hosting.Tests (167)
DistributedApplicationBuilderTests.cs (12)
743Assert.Equal(42, section.Data["Count"]!.GetValue<int>()); 744Assert.True(section.Data["Enabled"]!.GetValue<bool>()); 745Assert.Equal(1.25, section.Data["Ratio"]!.GetValue<double>()); 746Assert.True(section.Data.ContainsKey("Missing")); 747Assert.Null(section.Data["Missing"]); 748Assert.Equal("value", section.Data["Text"]!.GetValue<string>()); 789Assert.Equal(42, section.Data["Count"]!.GetValue<int>()); 790Assert.True(section.Data["Enabled"]!.GetValue<bool>()); 791Assert.Equal(1.25, section.Data["Ratio"]!.GetValue<double>()); 792Assert.True(section.Data.ContainsKey("Missing")); 793Assert.Null(section.Data["Missing"]); 794Assert.Equal("value", section.Data["Text"]!.GetValue<string>());
Orchestrator\ParameterProcessorTests.cs (3)
2150Assert.Empty(section.Data); 2711Assert.Empty(section.Data); 2766_unflattenedState[section.SectionName] = section.Data.DeepClone().AsObject();
Publishing\DeploymentStateManagerTests.cs (152)
30Assert.NotNull(section.Data); 31Assert.Empty(section.Data); 41section1.Data["key1"] = "value1"; 48Assert.Equal("value1", section2.Data["key1"]?.GetValue<string>()); 57section.Data["NullValue"] = null; 63Assert.True(restartedSection.Data.ContainsKey("NullValue")); 64Assert.Null(restartedSection.Data["NullValue"]); 76section1.Data["key1"] = "value1"; 80oldSection = new DeploymentStateSection(section1.SectionName, section1.Data, oldVersion); 86section2.Data["key2"] = "value2"; 105parametersSection.Data["param1"] = "value1"; 106azureSection.Data["resource1"] = "azure-value1"; 117Assert.Equal("value1", parametersCheck.Data["param1"]?.GetValue<string>()); 118Assert.Equal("azure-value1", azureCheck.Data["resource1"]?.GetValue<string>()); 134section.Data[$"key{sectionIndex}"] = $"value{sectionIndex}"; 146Assert.Equal($"value{i}", section.Data[$"key{i}"]?.GetValue<string>()); 157section1.Data["key1"] = "value1"; 164Assert.NotNull(section2.Data); 165Assert.Equal("value1", section2.Data["key1"]?.GetValue<string>()); 178section1.Data["key1"] = "value1"; 186Assert.Equal("value1", section2.Data["key1"]?.GetValue<string>()); 191section2.Data["key2"] = "value2"; 199Assert.Equal("value1", section3.Data["key1"]?.GetValue<string>()); 200Assert.Equal("value2", section3.Data["key2"]?.GetValue<string>()); 238Assert.Equal("value1", parametersSection.Data["param1"]?.GetValue<string>()); 239Assert.Equal("azure-value1", azureSection.Data["resource1"]?.GetValue<string>()); 240Assert.Equal("value1", restartedParametersSection.Data["param1"]?.GetValue<string>()); 250section.Data["key1"] = "value1"; 257Assert.Equal("value1", retrievedSection.Data["key1"]?.GetValue<string>()); 267section.Data["nestedKey"] = "nestedValue"; 274Assert.Equal("nestedValue", verifySection.Data["nestedKey"]?.GetValue<string>()); 285section1.Data["key1"] = "value1"; 286section2.Data["key2"] = "value2"; 294Assert.Equal("value1", verify1.Data["key1"]?.GetValue<string>()); 295Assert.Equal("value2", verify2.Data["key2"]?.GetValue<string>()); 311Assert.Equal("value1", verify.Data[""]?.GetValue<string>()); 321section1.Data["key1"] = "value1"; 326var oldSection = new DeploymentStateSection(section1.SectionName, section1.Data, oldVersion); 330section2.Data["key2"] = "value2"; 350Assert.NotNull(section.Data); 351Assert.Empty(section.Data); 362topLevel.Data["topKey"] = "topValue"; 363nested.Data["nestedKey"] = "nestedValue"; 371Assert.Equal("topValue", verifyTop.Data["topKey"]?.GetValue<string>()); 372Assert.Equal("nestedValue", verifyNested.Data["nestedKey"]?.GetValue<string>()); 382section.Data["key"] = "value"; 473legacySection.Data["legacy"] = true; 478Assert.True(migratedSection.Data["legacy"]?.GetValue<bool>()); 480migratedSection.Data["current"] = true; 490Assert.True(currentSection.Data["legacy"]?.GetValue<bool>()); 491Assert.True(currentSection.Data["current"]?.GetValue<bool>()); 510legacySection.Data["Value"] = "legacy"; 514migratedSection.Data["Claimed"] = true; 526sameManagerLegacySection.Data["Value"] = "legacy"; 533Assert.Equal("legacy", legacyAfterRestart.Data["Value"]?.GetValue<string>()); 534Assert.Equal("current", replacementAfterRestart.Data["Value"]?.GetValue<string>()); 549section.Data["Value"] = "committed"; 556Assert.Equal("committed", restartedSection.Data["Value"]?.GetValue<string>()); 566legacySection.Data["Value"] = "legacy"; 576Assert.Empty((await restartedStateManager.AcquireSectionAsync("Parameters")).Data); 594Assert.Equal("legacy", parameterSection.Data[""]?.GetValue<string>()); 599Assert.Empty((await restartedStateManager.AcquireSectionAsync("Parameters:secret")).Data); 621Assert.Equal("existing", section.Data[""]?.GetValue<string>()); 627Assert.Equal("existing", restartedSection.Data[""]?.GetValue<string>()); 658Assert.Equal("updated", restartedSection.Data[""]?.GetValue<string>()); 675initialSection.Data["Leaf"] = "initial"; 682staleObjectSection.Data["Leaf"] = "updated"; 690Assert.Equal("updated", restartedSection.Data["Leaf"]?.GetValue<string>()); 691Assert.False(restartedSection.Data.ContainsKey(string.Empty)); 710firstSection.Data["Features"] = new JsonObject { ["A"] = true }; 711secondSection.Data["Features"] = new JsonObject { ["B"] = true }; 718var features = Assert.IsType<JsonObject>(restartedSection.Data["Features"]); 737firstLegacySection.Data["SandboxId"] = "first-sandbox"; 740secondLegacySection.Data["SandboxId"] = "second-sandbox"; 745Assert.Empty(currentParentSection.Data); 748firstSection.Data["Migrated"] = true; 754Assert.Equal("first-sandbox", migratedFirstSection.Data["SandboxId"]?.GetValue<string>()); 755Assert.True(migratedFirstSection.Data["Migrated"]?.GetValue<bool>()); 756Assert.Empty(inheritedSecondSection.Data); 759Assert.Equal(["first", "second"], migratedParentSection.Data.Select(static pair => pair.Key)); 761Assert.Equal(["first"], migratedCurrentParentSection.Data.Select(static pair => pair.Key)); 767Assert.True(restartedFirstSection.Data["Migrated"]?.GetValue<bool>()); 768Assert.Equal("second-sandbox", restartedSecondSection.Data["SandboxId"]?.GetValue<string>()); 769Assert.Equal(["first"], restartedCurrentParentSection.Data.Select(static pair => pair.Key)); 773Assert.Equal("second-sandbox", secondSection.Data["SandboxId"]?.GetValue<string>()); 783Assert.Equal("first-sandbox", clearedFirstLegacySection.Data["SandboxId"]?.GetValue<string>()); 784Assert.Equal("second-sandbox", preservedSecondLegacySection.Data["SandboxId"]?.GetValue<string>()); 794legacyAzureSection.Data["SubscriptionId"] = "legacy-subscription"; 795legacyAzureSection.Data["Sandboxes"] = new JsonObject 804azureSection.Data["SubscriptionId"] = "current-subscription"; 808Assert.Equal("current-subscription", currentAzureSection.Data["SubscriptionId"]?.GetValue<string>()); 809Assert.Null(currentAzureSection.Data["Sandboxes"]); 813Assert.Equal("current-subscription", restartedAzureSection.Data["SubscriptionId"]?.GetValue<string>()); 814Assert.Equal("first-sandbox", restartedAzureSection.Data["Sandboxes"]?["first"]?["SandboxId"]?.GetValue<string>()); 815Assert.Equal("second-sandbox", restartedAzureSection.Data["Sandboxes"]?["second"]?["SandboxId"]?.GetValue<string>()); 816Assert.Null((await restartedStateManager.AcquireCurrentSectionAsync("Azure")).Data["Sandboxes"]); 830legacyAzureSection.Data["SubscriptionId"] = "legacy-subscription"; 831legacyAzureSection.Data["Sandboxes"] = new JsonObject 841newSandboxSection.Data["SandboxId"] = "new-sandbox"; 847Assert.Null(restartedAzureSection.Data["SubscriptionId"]); 848Assert.Null(restartedAzureSection.Data["Sandboxes"]?["legacy"]); 851restartedAzureSection.Data["Sandboxes"]?["new"]?["SandboxId"]?.GetValue<string>()); 871legacySandboxesSection.Data["first"] = new JsonObject 876legacySandboxesSection.Data["second"] = new JsonObject 886newChildSection.Data["SandboxId"] = "new-sandbox"; 892Assert.Null(restartedSandboxesSection.Data["first"]?["SandboxId"]); 893Assert.Null(restartedSandboxesSection.Data["first"]?["LegacyOnly"]); 896restartedSandboxesSection.Data["first"]?["new"]?["SandboxId"]?.GetValue<string>()); 899restartedSandboxesSection.Data["second"]?["SandboxId"]?.GetValue<string>()); 915firstLegacySection.Data["SandboxId"] = "first-sandbox"; 918secondLegacySection.Data["SandboxId"] = "second-sandbox"; 925firstSection.Data["Updated"] = true; 926secondSection.Data["Updated"] = true; 935Assert.Equal("first-sandbox", restartedFirstSection.Data["SandboxId"]?.GetValue<string>()); 936Assert.True(restartedFirstSection.Data["Updated"]?.GetValue<bool>()); 937Assert.Equal("second-sandbox", restartedSecondSection.Data["SandboxId"]?.GetValue<string>()); 938Assert.True(restartedSecondSection.Data["Updated"]?.GetValue<bool>()); 941Assert.Equal(["first", "second"], currentParentSection.Data.Select(static pair => pair.Key)); 951legacyAzureSection.Data["SubscriptionId"] = "legacy-subscription"; 952legacyAzureSection.Data["Location"] = "legacy-location"; 959firstAzureSection.Data["SubscriptionId"] = "current-subscription"; 960secondAzureSection.Data["Location"] = "current-location"; 968Assert.Equal("current-subscription", restartedAzureSection.Data["SubscriptionId"]?.GetValue<string>()); 969Assert.Equal("current-location", restartedAzureSection.Data["Location"]?.GetValue<string>()); 972Assert.Equal("current-subscription", currentAzureSection.Data["SubscriptionId"]?.GetValue<string>()); 973Assert.Equal("current-location", currentAzureSection.Data["Location"]?.GetValue<string>()); 983legacySection.Data["SubscriptionId"] = "sub"; 1000Assert.Empty(suppressedLegacySection.Data); 1003Assert.Equal("sub", preservedLegacySection.Data["SubscriptionId"]?.GetValue<string>()); 1013currentSection.Data["SubscriptionId"] = "current-sub"; 1035Assert.Equal("current-sub", migratedSection.Data["SubscriptionId"]?.GetValue<string>()); 1044currentSection.Data["SubscriptionId"] = "current-sub"; 1059Assert.Equal("current-sub", restartedSection.Data["SubscriptionId"]?.GetValue<string>()); 1061restartedSection.Data["Location"] = "westus"; 1065Assert.Equal("current-sub", savedSection.Data["SubscriptionId"]?.GetValue<string>()); 1066Assert.Equal("westus", savedSection.Data["Location"]?.GetValue<string>()); 1074section.Data["SubscriptionId"] = "sub"; 1084Assert.Equal("sub", currentSection.Data["SubscriptionId"]?.GetValue<string>()); 1094legacySection.Data["SandboxId"] = "sandbox"; 1105Assert.Empty(restartedSection.Data); 1115firstLegacySection.Data["SandboxId"] = "first-sandbox"; 1118secondLegacySection.Data["SandboxId"] = "second-sandbox"; 1127azureSection.Data["SubscriptionId"] = "current-subscription"; 1131Assert.Empty((await restartedStateManager.AcquireSectionAsync("Azure:Sandboxes:first")).Data); 1135.Data["SandboxId"]?.GetValue<string>()); 1139.Data["SubscriptionId"]?.GetValue<string>()); 1150firstLegacySection.Data["SandboxId"] = "first"; 1153secondLegacySection.Data["SandboxId"] = "second"; 1168.AcquireSectionAsync("Azure:Sandboxes:first")).Data); 1170.AcquireSectionAsync("Azure:Sandboxes:second")).Data); 1176.Data["SandboxId"]?.GetValue<string>()); 1180.Data["SandboxId"]?.GetValue<string>());