237 references to Snapshot
Aspire.Hosting (51)
ApplicationModel\ResourceNotificationService.cs (16)
130re => re.Snapshot.State?.Text is { Length: > 0 } stateText && targetStates.Contains(stateText, StringComparers.ResourceState), 134var finalState = resourceEvent.Snapshot.State!.Text!; 150re => re.ResourceId == resourceId && re.Snapshot.HealthStatus == HealthStatus.Healthy, 159re => re.ResourceId == resourceId && re.Snapshot.ResourceReadyEvent is not null, 164await resourceEvent.Snapshot.ResourceReadyEvent!.EventTask.WaitAsync(cancellationToken).ConfigureAwait(false); 227re => ShouldYield(waitBehavior, re.Snapshot), 231if (resourceEvent.Snapshot.HealthStatus != HealthStatus.Healthy) 241re => re.ResourceId == resourceEvent.ResourceId && re.Snapshot.ResourceReadyEvent is not null, 246await resourceEvent.Snapshot.ResourceReadyEvent!.EventTask.WaitAsync(cancellationToken).ConfigureAwait(false); 288re => re.ResourceId == resourceId && IsKnownTerminalState(re.Snapshot), 291var snapshot = resourceEvent.Snapshot; 347re => re.ResourceId == resourceId && IsContinuableState(waitBehavior, re.Snapshot), 350var snapshot = resourceEvent.Snapshot; 591if (versionsSeen.TryGetValue(item.ResourceId, out var maxVersionSeen) && item.Snapshot.Version <= maxVersionSeen) 884if (TryGetCurrentState(resourceName, out var evt) && evt.Snapshot != null) 886var snapshot = evt.Snapshot;
Ats\NotificationExports.cs (4)
141State = resourceEvent.Snapshot.State?.Text, 142StateStyle = resourceEvent.Snapshot.State?.Style, 143HealthStatus = resourceEvent.Snapshot.HealthStatus?.ToString(), 144ExitCode = resourceEvent.Snapshot.ExitCode
Backchannel\AppHostRpcTarget.cs (4)
118var healthStatus = CustomResourceSnapshot.ComputeHealthStatus(resourceEvent.Snapshot.HealthReports, resourceEvent.Snapshot.State?.Text); 123Type = resourceEvent.Snapshot.ResourceType, 124State = resourceEvent.Snapshot.State?.Text ?? "Unknown",
Backchannel\AuxiliaryBackchannelRpcTarget.cs (12)
280State = resourceEvent.Snapshot.State?.Text, 281HealthStatus = resourceEvent.Snapshot.HealthStatus?.ToString() 289re => re.Snapshot.State?.Text == KnownResourceStates.Running || KnownResourceStates.TerminalStates.Contains(re.Snapshot.State?.Text) || re.Snapshot.ExitCode is not null, 292var state = resourceEvent.Snapshot.State?.Text; 299HealthStatus = resourceEvent.Snapshot.HealthStatus?.ToString(), 308re => KnownResourceStates.TerminalStates.Contains(re.Snapshot.State?.Text) || re.Snapshot.ExitCode is not null, 314State = resourceEvent.Snapshot.State?.Text, 315HealthStatus = resourceEvent.Snapshot.HealthStatus?.ToString() 507var snapshot = resourceEvent.Snapshot;
Dashboard\DashboardServiceData.cs (1)
72var snapshot = CreateResourceSnapshot(@event.Resource, @event.ResourceId, timestamp, @event.Snapshot);
Devcontainers\Codespaces\CodespacesResourceUrlRewriterService.cs (2)
32foreach (var originalUrlSnapshot in resourceEvent.Snapshot.Urls) 57var transformedUrls = from originalUrl in resourceEvent.Snapshot.Urls
DistributedApplication.cs (1)
617results.Add(new() { Resource = resource, Snapshot = resourceEvent?.Snapshot });
Exec\ExecResourceManager.cs (2)
133if ((exitCode = resourceEvent?.Snapshot?.ExitCode) is not null) 144if (resourceEvent?.Snapshot.State == KnownResourceStates.FailedToStart)
Health\ResourceHealthCheckService.cs (7)
42if (resourceEvent.Snapshot.State?.Text == KnownResourceStates.Running) 73else if (KnownResourceStates.TerminalStates.Contains(resourceEvent.Snapshot.State?.Text)) 179if (ContainsAnyHealthReportChange(report, currentEvent.Snapshot.HealthReports)) 381if (currentEvent.Snapshot.Version <= previousEvent.Snapshot.Version) 385if (currentEvent.Snapshot.State?.Text == previousEvent.Snapshot.State?.Text)
Orchestrator\ApplicationOrchestrator.cs (2)
108e => e.Snapshot.State?.Text != KnownResourceStates.Waiting, 497previousState = previousResourceEvent.Snapshot.State?.Text;
Aspire.Hosting.Azure.Tests (1)
AzureBicepProvisionerTests.cs (1)
73var parentProperty = resourceEvent.Snapshot.Properties.FirstOrDefault(x => x.Name == KnownProperties.Resource.ParentName)?.Value?.ToString();
Aspire.Hosting.Containers.Tests (2)
DockerSocketBindMountTests.cs (2)
42e => KnownResourceStates.TerminalStates.Contains(e.Snapshot.State?.Text), 45Assert.Equal(KnownResourceStates.Exited, state.Snapshot.State);
Aspire.Hosting.DotnetTool.Tests (2)
DotnetToolFunctionalTests.cs.cs (2)
29Assert.Equal(resourceState.Snapshot.ExitCode, 0); 51Assert.NotEqual(resourceState.Snapshot.ExitCode, 0);
Aspire.Hosting.MySql.Tests (2)
MySqlFunctionalTests.cs (2)
605return evt.Snapshot.Properties.FirstOrDefault(x => x.Name == "container.id")?.Value != null; 608return resourceEvent.Snapshot.Properties.FirstOrDefault(x => x.Name == "container.id")?.Value?.ToString();
Aspire.Hosting.PostgreSQL.Tests (2)
PostgresFunctionalTests.cs (2)
582return evt.Snapshot.Properties.FirstOrDefault(x => x.Name == "container.id")?.Value != null; 585return resourceEvent.Snapshot.Properties.FirstOrDefault(x => x.Name == "container.id")?.Value?.ToString();
Aspire.Hosting.Qdrant.Tests (1)
QdrantFunctionalTests.cs (1)
282await app.ResourceNotifications.WaitForResourceAsync(resource.Resource.Name, (re => re.Snapshot.HealthStatus == HealthStatus.Healthy), cts.Token);
Aspire.Hosting.Tests (172)
Codespaces\CodespacesUrlRewriterTests.cs (3)
83var match = re.Snapshot.Urls.Length > 0 && re.Snapshot.Urls[0].Url.Contains("app.github.dev"); 89resourceEvent.Snapshot.Urls,
DistributedApplicationTests.cs (46)
145var resourceEvent = await rns.WaitForResourceAsync(dependentResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.Waiting, token).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 149await rns.WaitForResourceAsync(dependentResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.Running, token).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 153await rns.WaitForResourceAsync(dependentResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.Finished, token).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 157await rns.WaitForResourceAsync(dependentResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.Waiting, token).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 161await rns.WaitForResourceAsync(dependentResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.Running, token).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 191var notStartedResourceEvent = await rns.WaitForResourceAsync(notStartedResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.NotStarted, token).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 192var dependentResourceEvent = await rns.WaitForResourceAsync(dependentResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.Waiting, token).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 195Assert.Contains("TestProject.ServiceA.csproj", notStartedResourceEvent.Snapshot.Properties.Single(p => p.Name == "project.path").Value?.ToString()); 196Assert.Contains("TestProject.ServiceB.csproj", dependentResourceEvent.Snapshot.Properties.Single(p => p.Name == "project.path").Value?.ToString()); 198Assert.Collection(notStartedResourceEvent.Snapshot.Urls, u => 204Assert.Collection(dependentResourceEvent.Snapshot.Urls, u => 213var runningResourceEvent = await rns.WaitForResourceAsync(notStartedResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.Running, token).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 214Assert.Collection(runningResourceEvent.Snapshot.Urls, u => 221var dependentResourceRunningEvent = await rns.WaitForResourceAsync(dependentResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.Running, token).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 222Assert.Collection(dependentResourceRunningEvent.Snapshot.Urls, u => 230await rns.WaitForResourceAsync(notStartedResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.Finished, token).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 234await rns.WaitForResourceAsync(notStartedResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.Running, token).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 285await rns.WaitForResourceAsync(normalResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.Running, token).DefaultTimeout(TestConstants.DefaultOrchestratorTestTimeout); 288await rns.WaitForResourceAsync(explicitStartResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.NotStarted, token).DefaultTimeout(TestConstants.DefaultOrchestratorTestTimeout); 328var notStartedResourceEvent = await rns.WaitForResourceAsync(explicitStartResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.NotStarted, token).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 337await rns.WaitForResourceAsync(explicitStartResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.Running, token).DefaultTimeout(TestConstants.DefaultOrchestratorTestTimeout); 400var notStartedResourceEvent = await rns.WaitForResourceAsync(notStartedResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.NotStarted, token).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 401var dependentResourceEvent = await rns.WaitForResourceAsync(dependentResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.Waiting, token).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 403Assert.Collection(notStartedResourceEvent.Snapshot.Urls, u => 408Assert.Collection(dependentResourceEvent.Snapshot.Urls, u => 416Assert.Equal(RedisImageSource, notStartedResourceEvent.Snapshot.Properties.Single(p => p.Name == "container.image").Value?.ToString()); 417Assert.Contains("TestProject.ServiceB.csproj", dependentResourceEvent.Snapshot.Properties.Single(p => p.Name == "project.path").Value?.ToString()); 421var runningResourceEvent = await rns.WaitForResourceAsync(notStartedResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.Running, token).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 422Assert.Collection(runningResourceEvent.Snapshot.Urls, u => 428var dependentRunningResourceEvent = await rns.WaitForResourceAsync(dependentResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.Running, token).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 429Assert.Collection(dependentRunningResourceEvent.Snapshot.Urls, u => 437await rns.WaitForResourceAsync(notStartedResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.Exited, token).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 441await rns.WaitForResourceAsync(notStartedResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.Running, token).DefaultTimeout(TestConstants.LongTimeoutTimeSpan); 483notStartedResourceEvent = await rns.WaitForResourceAsync(notStartedResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.NotStarted, token).DefaultTimeout(TestConstants.ExtraLongTimeoutTimeSpan); 484dependentResourceEvent = await rns.WaitForResourceAsync(dependentResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.Waiting, token).DefaultTimeout(TestConstants.ExtraLongTimeoutTimeSpan); 486Assert.Collection(notStartedResourceEvent.Snapshot.Urls, u => 491Assert.Collection(dependentResourceEvent.Snapshot.Urls, u => 499Assert.Equal(RedisImageSource, notStartedResourceEvent.Snapshot.Properties.Single(p => p.Name == "container.image").Value?.ToString()); 500Assert.Contains("TestProject.ServiceB.csproj", dependentResourceEvent.Snapshot.Properties.Single(p => p.Name == "project.path").Value?.ToString()); 506var runningResourceEvent = await rns.WaitForResourceAsync(notStartedResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.Running, token).DefaultTimeout(TestConstants.ExtraLongTimeoutTimeSpan); 507Assert.Collection(runningResourceEvent.Snapshot.Urls, u => 513var dependentRunningResourceEvent = await rns.WaitForResourceAsync(dependentResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.Running, token).DefaultTimeout(TestConstants.ExtraLongTimeoutTimeSpan); 514Assert.Collection(dependentRunningResourceEvent.Snapshot.Urls, u => 522await rns.WaitForResourceAsync(notStartedResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.Exited, token).DefaultTimeout(TestConstants.ExtraLongTimeoutTimeSpan); 529await rns.WaitForResourceAsync(notStartedResourceName, e => e.Snapshot.State?.Text == KnownResourceStates.Running, token).DefaultTimeout(TestConstants.ExtraLongTimeoutTimeSpan); 962var dependentRunningResourceEvent = await rns.WaitForResourceAsync(container.Resource.Name, e => e.Snapshot.State?.Text == KnownResourceStates.Running).DefaultTimeout(TestConstants.LongTimeoutTimeSpan);
ExternalServiceTests.cs (6)
323e => e.Snapshot.State?.Text == KnownResourceStates.FailedToStart 327Assert.Equal(KnownResourceStates.FailedToStart, resourceEvent.Snapshot.State?.Text); 350e => e.Snapshot.State?.Text == KnownResourceStates.FailedToStart 354Assert.Equal(KnownResourceStates.FailedToStart, resourceEvent.Snapshot.State?.Text); 377e => e.Snapshot.State?.Text == KnownResourceStates.Running 381Assert.Equal(KnownResourceStates.Running, resourceEvent.Snapshot.State?.Text);
Health\ResourceHealthCheckServiceTests.cs (24)
38var startingEvent = await app.ResourceNotifications.WaitForResourceAsync("resource", e => e.Snapshot.State?.Text == KnownResourceStates.Starting).DefaultTimeout(); 39Assert.Null(startingEvent.Snapshot.HealthStatus); 47Assert.Equal(HealthStatus.Healthy, healthyEvent.Snapshot.HealthStatus); 78var startingEvent = await app.ResourceNotifications.WaitForResourceAsync("resource", e => e.Snapshot.State?.Text == KnownResourceStates.Starting).DefaultTimeout(); 79Assert.Null(startingEvent.Snapshot.HealthStatus); 86var runningEvent = await app.ResourceNotifications.WaitForResourceAsync("resource", e => e.Snapshot.State?.Text == KnownResourceStates.Running).DefaultTimeout(); 88Assert.Equal(HealthStatus.Unhealthy, runningEvent.Snapshot.HealthStatus); 121var startingEvent = await app.ResourceNotifications.WaitForResourceAsync("resource", e => e.Snapshot.State?.Text == KnownResourceStates.Starting).DefaultTimeout(); 122Assert.Null(startingEvent.Snapshot.HealthStatus); 130e => e.Snapshot.State?.Text == KnownResourceStates.Running && e.Snapshot.HealthReports.Single().Status == HealthStatus.Unhealthy).DefaultTimeout(); 132Assert.Equal(HealthStatus.Unhealthy, runningEvent.Snapshot.HealthStatus); 133Assert.Equal("Error calling HealthCheckService.", runningEvent.Snapshot.HealthReports.Single().Description); 587var startingEvent = await app.ResourceNotifications.WaitForResourceAsync("resource", e => e.Snapshot.State?.Text == KnownResourceStates.Starting).DefaultTimeout(); 588Assert.Null(startingEvent.Snapshot.HealthStatus); 596var runningEvent = await app.ResourceNotifications.WaitForResourceAsync("resource", e => e.Snapshot.State?.Text == KnownResourceStates.Running).DefaultTimeout(); 597Assert.Equal(HealthStatus.Unhealthy, runningEvent.Snapshot.HealthStatus); 604Assert.Equal(HealthStatus.Healthy, healthyEvent.Snapshot.HealthStatus); 633var startingEvent = await app.ResourceNotifications.WaitForResourceAsync("resource", e => e.Snapshot.State?.Text == KnownResourceStates.Starting).DefaultTimeout(); 634Assert.Null(startingEvent.Snapshot.HealthStatus); 641var runningEvent = await app.ResourceNotifications.WaitForResourceAsync("resource", e => e.Snapshot.State?.Text == KnownResourceStates.Running).DefaultTimeout(); 643Assert.Equal(HealthStatus.Unhealthy, runningEvent.Snapshot.HealthStatus); 649var unhealthyEvent = await app.ResourceNotifications.WaitForResourceAsync("resource", e => e.Snapshot.HealthStatus == HealthStatus.Unhealthy).DefaultTimeout(); 650Assert.Equal(HealthStatus.Unhealthy, unhealthyEvent.Snapshot.HealthStatus);
Orchestrator\ApplicationOrchestratorTests.cs (19)
58childParentResourceId = item.Snapshot.Properties.SingleOrDefault(p => p.Name == KnownProperties.Resource.ParentName)?.Value?.ToString(); 106childParentResourceId = item.Snapshot.Properties.SingleOrDefault(p => p.Name == KnownProperties.Resource.ParentName)?.Value?.ToString(); 207childParentResourceId = item.Snapshot.Properties.SingleOrDefault(p => p.Name == KnownProperties.Resource.ParentName)?.Value?.ToString(); 211nestedChildParentResourceId = item.Snapshot.Properties.SingleOrDefault(p => p.Name == KnownProperties.Resource.ParentName)?.Value?.ToString(); 215child2ParentResourceId = item.Snapshot.Properties.SingleOrDefault(p => p.Name == KnownProperties.Resource.ParentName)?.Value?.ToString(); 276childParentResourceId = item.Snapshot.Properties.SingleOrDefault(p => p.Name == KnownProperties.Resource.ParentName)?.Value?.ToString(); 324projectBParentResourceId = item.Snapshot.Properties.SingleOrDefault(p => p.Name == KnownProperties.Resource.ParentName)?.Value?.ToString(); 437var connectionStringProp = item.Snapshot.Properties.SingleOrDefault(p => p.Name == KnownProperties.Resource.ConnectionString); 631var parentState = resourceNotificationService.TryGetCurrentState("parent-container-dcp", out var parentEvent) ? parentEvent.Snapshot.State?.Text : null; 632var childContainerState = resourceNotificationService.TryGetCurrentState(childContainer.Resource.Name, out var childContainerEvent) ? childContainerEvent.Snapshot.State?.Text : null; 633var customChildState = resourceNotificationService.TryGetCurrentState(customChild.Resource.Name, out var customChildEvent) ? customChildEvent.Snapshot.State?.Text : null; 678var parentState = resourceNotificationService.TryGetCurrentState("parent-container-dcp", out var parentEvent) ? parentEvent.Snapshot.State?.Text : null; 679var childProjectState = resourceNotificationService.TryGetCurrentState(childProject.Resource.Name, out var childProjectEvent) ? childProjectEvent.Snapshot.State?.Text : null; 680var customChildState = resourceNotificationService.TryGetCurrentState(customChild.Resource.Name, out var customChildEvent) ? customChildEvent.Snapshot.State?.Text : null; 727childParentResourceId = item.Snapshot.Properties.SingleOrDefault(p => p.Name == KnownProperties.Resource.ParentName)?.Value?.ToString(); 731child2ParentResourceId = item.Snapshot.Properties.SingleOrDefault(p => p.Name == KnownProperties.Resource.ParentName)?.Value?.ToString(); 784childParentResourceId = item.Snapshot.Properties.SingleOrDefault(p => p.Name == KnownProperties.Resource.ParentName)?.Value?.ToString(); 788child2ParentResourceId = item.Snapshot.Properties.SingleOrDefault(p => p.Name == KnownProperties.Resource.ParentName)?.Value?.ToString(); 838childProjectParentResourceId = item.Snapshot.Properties.SingleOrDefault(p => p.Name == KnownProperties.Resource.ParentName)?.Value?.ToString();
Orchestrator\ParameterProcessorTests.cs (8)
89updates.Add((resourceEvent.Resource, resourceEvent.Snapshot)); 261Assert.Equal(KnownResourceStates.Running, updates.Current.Snapshot.State?.Text); 262Assert.Equal("value1", updates.Current.Snapshot.Properties.FirstOrDefault(p => p.Name == KnownProperties.Parameter.Value)?.Value); 265Assert.Equal(KnownResourceStates.Running, updates.Current.Snapshot.State?.Text); 266Assert.Equal("value2", updates.Current.Snapshot.Properties.FirstOrDefault(p => p.Name == KnownProperties.Parameter.Value)?.Value); 269Assert.Equal(KnownResourceStates.Running, updates.Current.Snapshot.State?.Text); 270Assert.Equal("secretValue", updates.Current.Snapshot.Properties.FirstOrDefault(p => p.Name == KnownProperties.Parameter.Value)?.Value); 271Assert.True(updates.Current.Snapshot.Properties.FirstOrDefault(p => p.Name == KnownProperties.Parameter.Value)?.IsSensitive ?? false);
ResourceNotificationTests.cs (28)
85Assert.Equal(expectedResourceType, resourceEvent.Snapshot.ResourceType); 126Assert.Equal("CustomResource", c.Snapshot.ResourceType); 127Assert.Equal("value", c.Snapshot.Properties.Single(p => p.Name == "A").Value); 128Assert.Null(c.Snapshot.HealthStatus); 134Assert.Equal("CustomResource", c.Snapshot.ResourceType); 135Assert.Equal("value", c.Snapshot.Properties.Single(p => p.Name == "B").Value); 136Assert.Null(c.Snapshot.HealthStatus); 181Assert.Equal("CustomResource", c.Snapshot.ResourceType); 182Assert.Equal("value", c.Snapshot.Properties.Single(p => p.Name == "A").Value); 188Assert.Equal("CustomResource", c.Snapshot.ResourceType); 189Assert.Equal("value", c.Snapshot.Properties.Single(p => p.Name == "B").Value); 195Assert.Equal("CustomResource", c.Snapshot.ResourceType); 196Assert.Equal("value", c.Snapshot.Properties.Single(p => p.Name == "C").Value); 529Assert.Equal("ExistingIcon", firstEvent.Snapshot.IconName); 530Assert.Equal(IconVariant.Filled, firstEvent.Snapshot.IconVariant); 534Assert.Equal("ExistingIcon", secondEvent.Snapshot.IconName); 535Assert.Equal(IconVariant.Filled, secondEvent.Snapshot.IconVariant); 536Assert.Equal("Running", secondEvent.Snapshot.State?.Text); 571Assert.Equal("LastIcon", value.Snapshot.IconName); 572Assert.Equal(IconVariant.Regular, value.Snapshot.IconVariant); 573Assert.Equal("Starting", value.Snapshot.State?.Text); 607Assert.Equal("AnnotationIcon", value.Snapshot.IconName); 608Assert.Equal(IconVariant.Regular, value.Snapshot.IconVariant); 609Assert.Equal("Starting", value.Snapshot.State?.Text); 648Assert.Equal(Microsoft.Extensions.Diagnostics.HealthChecks.HealthStatus.Healthy, resourceEvent.Snapshot.HealthStatus); 649Assert.NotNull(resourceEvent.Snapshot.ResourceReadyEvent); 650Assert.True(resourceEvent.Snapshot.ResourceReadyEvent.EventTask.IsCompletedSuccessfully); 716Assert.Equal(Microsoft.Extensions.Diagnostics.HealthChecks.HealthStatus.Healthy, resourceEvent.Snapshot.HealthStatus);
WithHttpCommandTests.cs (12)
426e => e.Snapshot.State?.Text == KnownResourceStates.Starting).DefaultTimeout(); 428Assert.Equal(ResourceCommandState.Disabled, startingEvent.Snapshot.Commands.First(c => c.Name == "mycommand").State); 439e => e.Snapshot.State?.Text == KnownResourceStates.Running && 440e.Snapshot.Commands.First(c => c.Name == "mycommand").State == ResourceCommandState.Enabled).DefaultTimeout(); 442Assert.Equal(ResourceCommandState.Enabled, runningEvent.Snapshot.Commands.First(c => c.Name == "mycommand").State); 482e => e.Snapshot.State?.Text == KnownResourceStates.Running && 483e.Snapshot.Commands.First(c => c.Name == "mycommand").State == ResourceCommandState.Hidden).DefaultTimeout(); 485Assert.Equal(ResourceCommandState.Hidden, runningEvent.Snapshot.Commands.First(c => c.Name == "mycommand").State); 497e => e.Snapshot.Commands.First(c => c.Name == "mycommand").State == ResourceCommandState.Enabled).DefaultTimeout(); 500Assert.Equal(ResourceCommandState.Enabled, enabledEvent.Snapshot.Commands.First(c => c.Name == "mycommand").State); 538e => e.Snapshot.State?.Text == KnownResourceStates.Running && 539e.Snapshot.Commands.FirstOrDefault(c => c.Name == commandName)?.State == ResourceCommandState.Enabled).DefaultTimeout();
WithUrlsTests.cs (26)
388e => e.Snapshot.Urls.Length > 0, 393Assert.Single(resourceEvent.Snapshot.Urls, s => s.Name == httpEndpoint.EndpointName && s.IsInactive && s.Url == "https://example.com"); 415e => e.Snapshot.Urls.Length > 0, 420Assert.Collection(resourceEvent.Snapshot.Urls, 448e => e.Snapshot.State == KnownResourceStates.Running, 453Assert.Equal(2, resourceEvent.Snapshot.Urls.Length); 454Assert.Collection(resourceEvent.Snapshot.Urls, 482if (notification.Resource == servicea.Resource && notification.Snapshot.Urls.Length > 0) 484urlSnapshots.Add(notification.Snapshot.Urls.ToArray()); 485testOutputHelper.WriteLine($"Captured snapshot #{urlSnapshots.Count}: State={notification.Snapshot.State}, URLs: {FormatUrls(notification.Snapshot.Urls)}"); 488if (notification.Snapshot.State == KnownResourceStates.Running && 489notification.Snapshot.Urls.All(u => !u.IsInactive)) 600if (notification.Resource == custom.Resource && notification.Snapshot.Urls.Length > 0) 602urlSnapshots.Add(notification.Snapshot.Urls.ToArray()); 603testOutputHelper.WriteLine($"Captured snapshot #{urlSnapshots.Count}: State={notification.Snapshot.State}, URLs: {FormatUrls(notification.Snapshot.Urls)}"); 606if (notification.Snapshot.State == KnownResourceStates.Running && 607notification.Snapshot.Urls.All(u => !u.IsInactive)) 678e => e.Snapshot.State == KnownResourceStates.Running && e.Snapshot.Urls.Length > 1, 683Assert.Collection(resourceEvent.Snapshot.Urls, 980e => e.Snapshot.State == KnownResourceStates.Running 981&& e.Snapshot.Urls.Length == resourceB.Resource.GetEndpoints().ToArray().Length + 1 982&& e.Snapshot.Urls.All(u => !u.IsInactive), 988var crossResourceUrl = resourceEvent.Snapshot.Urls.FirstOrDefault(u => u.DisplayProperties.DisplayName == "API Docs");
Aspire.Playground.Tests (2)
Infrastructure\DistributedApplicationExtensions.cs (2)
107return Task.WhenAll(applicationModel.Resources.Select(r => app.ResourceNotifications.WaitForResourceAsync(r.Name, r => targetStates?.Contains(r.Snapshot.State?.Text, StringComparer.OrdinalIgnoreCase) is true || r.Snapshot.IsHidden, cancellationToken)));
Testing.Tests (2)
WaitFailures.cs (2)
156await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, x => x.Snapshot.HealthReports.All(x => x.Status.HasValue), cts.Token); 176await app.ResourceNotifications.WaitForResourceAsync(nginx.Resource.Name, x => x.Snapshot.HealthStatus == HealthStatus.Healthy, cts.Token);