1886 references to GetProperty
AnalyzeCiFailure.Tests (141)
AnalyzeCiFailureWorkflowTests.cs (121)
871var failedTest = analysis.RootElement.GetProperty("failed_tests")[0];
872Assert.Equal("Trusted\nerror", failedTest.GetProperty("error").GetString());
873Assert.Equal("trusted\nframe", failedTest.GetProperty("stack_trace").GetString());
876failedTest.GetProperty("standard_output").GetString());
879failedTest.GetProperty("standard_error").GetString());
939analysis.RootElement.GetProperty("failed_tests").EnumerateArray(),
942Assert.Equal("Linux tests", failedTest.GetProperty("job").GetString());
943Assert.Equal("linux failure", failedTest.GetProperty("error").GetString());
947Assert.Equal("Windows tests", failedTest.GetProperty("job").GetString());
948Assert.Equal("windows failure", failedTest.GetProperty("error").GetString());
1452var failedJob = sanitized.RootElement.GetProperty("failed_jobs")[0];
1453Assert.Equal(500, failedJob.GetProperty("reason").GetString()!.Length);
1454Assert.StartsWith("Job [link](https://evil.example)", failedJob.GetProperty("reason").GetString(), StringComparison.Ordinal);
1455var failedTest = sanitized.RootElement.GetProperty("failed_tests")[0];
1456Assert.Equal(500, failedTest.GetProperty("display_name").GetString()!.Length);
1457Assert.StartsWith("Tests.Flaky ", failedTest.GetProperty("display_name").GetString(), StringComparison.Ordinal);
1458Assert.Equal(1000, failedTest.GetProperty("error").GetString()!.Length);
1459Assert.StartsWith("Failure\n# heading\n```", failedTest.GetProperty("error").GetString(), StringComparison.Ordinal);
1460Assert.Equal(2000, failedTest.GetProperty("stack_trace").GetString()!.Length);
1461Assert.StartsWith("frame\n@reviewers", failedTest.GetProperty("stack_trace").GetString(), StringComparison.Ordinal);
1462Assert.Equal(500, failedTest.GetProperty("reason").GetString()!.Length);
1463Assert.StartsWith("Deterministic [details](https://evil.example)", failedTest.GetProperty("reason").GetString(), StringComparison.Ordinal);
1677Assert.Equal(expected, sanitizedCause.RootElement.GetProperty(field).GetString());
1735Assert.Equal("Injected title", cause.RootElement.GetProperty("title").GetString());
1736Assert.Equal("Injected pattern", cause.RootElement.GetProperty("error_pattern").GetString());
2294metadata.RootElement.GetProperty("title").GetString());
2295Assert.Equal("ci-failure-cause,main-ci-break", metadata.RootElement.GetProperty("labels").GetString());
2376metadata.RootElement.GetProperty("title").GetString());
2867Assert.Equal(10, selected.RootElement[0].GetProperty("id").GetInt32());
2868Assert.Equal("trx", selected.RootElement[0].GetProperty("format").GetString());
2869Assert.Equal("mocha", selected.RootElement[1].GetProperty("format").GetString());
3509Assert.Equal(20, output.RootElement.GetProperty("id").GetInt64());
3510Assert.Equal("latest", output.RootElement.GetProperty("head_sha").GetString());
3549Assert.Equal(24, output.RootElement.GetProperty("id").GetInt64());
3550Assert.Equal("earlier", output.RootElement.GetProperty("head_sha").GetString());
3579Assert.Equal(101, output.RootElement.GetProperty("id").GetInt64());
3615Assert.Equal(301, output.RootElement.GetProperty("id").GetInt64());
3688Assert.Equal(77, output.RootElement.GetProperty("id").GetInt64());
3722Assert.Equal(55, output.RootElement.GetProperty("id").GetInt64());
3760Assert.Equal("unavailable", status.RootElement.GetProperty("state").GetString());
3781Assert.Equal("unavailable", status.RootElement.GetProperty("state").GetString());
3826Assert.Equal("incomplete", status.RootElement.GetProperty("state").GetString());
3874Assert.Equal("associated", candidate.GetProperty("sha").GetString());
3875Assert.Equal(41, candidate.GetProperty("pull_request").GetProperty("number").GetInt32());
3877Assert.Equal("incomplete", status.RootElement.GetProperty("state").GetString());
3934Assert.Equal(41, candidate.GetProperty("pull_request").GetProperty("number").GetInt32());
3936Assert.Equal("available", status.RootElement.GetProperty("state").GetString());
3976Assert.Equal("incomplete", status.RootElement.GetProperty("state").GetString());
4020Assert.Equal("incomplete", status.RootElement.GetProperty("state").GetString());
4059Assert.Equal("associated", candidate.GetProperty("sha").GetString());
4061Assert.Equal("incomplete", status.RootElement.GetProperty("state").GetString());
4101Assert.Equal(123, root.GetProperty("run_id").GetInt64());
4102Assert.Equal(2, root.GetProperty("run_attempt").GetInt32());
4103Assert.Equal("https://github.com/microsoft/aspire/actions/runs/123", root.GetProperty("run_url").GetString());
4104Assert.Equal("main", root.GetProperty("run_scope").GetString());
4105Assert.Equal("2026-08-31T12:00:00Z", root.GetProperty("analyzed_at").GetString());
4106Assert.Equal(JsonValueKind.Null, root.GetProperty("pr").ValueKind);
4108var triggeringMerge = root.GetProperty("triggering_merge_pr");
4110Assert.Equal(42, triggeringMerge.GetProperty("number").GetInt32());
4111Assert.Equal("PrimaryKey=[REDACTED]", triggeringMerge.GetProperty("title").GetString());
4112Assert.Equal("https://github.com/microsoft/aspire/pull/42", triggeringMerge.GetProperty("url").GetString());
4114var mainContext = root.GetProperty("main_context");
4116Assert.Equal("trusted-failed", mainContext.GetProperty("failed_sha").GetString());
4117Assert.Equal("trusted-success", mainContext.GetProperty("last_successful_main_sha").GetString());
4118Assert.Equal("available", mainContext.GetProperty("candidate_merge_history_state").GetString());
4119Assert.Equal("trusted-candidate", mainContext.GetProperty("candidate_merges")[0].GetProperty("sha").GetString());
4122mainContext.GetProperty("candidate_merges")[0].GetProperty("message").GetString());
4125mainContext.GetProperty("candidate_merges")[0].GetProperty("pull_request").GetProperty("title").GetString());
4127var failedJob = root.GetProperty("failed_jobs")[0];
4129Assert.Equal("Build", failedJob.GetProperty("name").GetString());
4130Assert.Equal("main-repository-breakage", failedJob.GetProperty("classification").GetString());
4131Assert.Equal("compiler failed", failedJob.GetProperty("reason").GetString());
4132Assert.Equal("ConnectionStrings__step=[REDACTED]", failedJob.GetProperty("failed_steps")[0].GetString());
4158Assert.Equal(JsonValueKind.Null, root.GetProperty("triggering_merge_pr").ValueKind);
4159var mainContext = root.GetProperty("main_context");
4160Assert.Equal(historyState, mainContext.GetProperty("candidate_merge_history_state").GetString());
4161Assert.Equal(JsonValueKind.Null, mainContext.GetProperty("candidate_merges").ValueKind);
4200Assert.Equal(123, root.GetProperty("run_id").GetInt64());
4201Assert.Equal(2, root.GetProperty("run_attempt").GetInt32());
4202Assert.Equal("https://github.com/microsoft/aspire/actions/runs/123", root.GetProperty("run_url").GetString());
4203Assert.Equal("2026-08-31T12:00:00Z", root.GetProperty("analyzed_at").GetString());
4205var pr = root.GetProperty("pr");
4207Assert.Equal(42, pr.GetProperty("number").GetInt32());
4210pr.GetProperty("title").GetString());
4211Assert.Equal("ConnectionStrings__branch=[REDACTED]", pr.GetProperty("head_branch").GetString());
4212Assert.Equal("https://github.com/microsoft/aspire/pull/42", pr.GetProperty("url").GetString());
4213Assert.Equal("known flaky test", root.GetProperty("failed_jobs")[0].GetProperty("reason").GetString());
4214Assert.Equal("Tests.Flaky", root.GetProperty("failed_tests")[0].GetProperty("name").GetString());
4215Assert.Equal(JsonValueKind.Null, root.GetProperty("triggering_merge_pr").ValueKind);
4216Assert.Equal(JsonValueKind.Null, root.GetProperty("main_context").ValueKind);
4251Assert.Equal(expectedJob, document.RootElement.GetProperty("failed_tests")[0].GetProperty("job").GetString());
4283Assert.Equal("Tests Linux", document.RootElement.GetProperty("failed_jobs")[0].GetProperty("name").GetString());
4284Assert.Equal("Tests Linux", document.RootElement.GetProperty("failed_tests")[0].GetProperty("job").GetString());
4309Assert.Equal("Stored title", output.RootElement.GetProperty("title").GetString());
4310Assert.Equal(595, output.RootElement.GetProperty("error_pattern").GetString()!.Length);
4311Assert.Equal("https://github.com/microsoft/aspire/issues/1", output.RootElement.GetProperty("issue_url").GetString());
4314output.RootElement.GetProperty("occurrences").EnumerateArray().Select(item => item.GetProperty("run_id").GetInt32()));
4348Assert.StartsWith("Ignore ```markdown @reviewers", record.GetProperty("title").GetString(), StringComparison.Ordinal);
4349Assert.Equal(238, record.GetProperty("title").GetString()!.Length);
4350Assert.Equal(500, record.GetProperty("test_name").GetString()!.Length);
4351Assert.StartsWith("Failure\n# heading\n```\nIgnore prior instructions", record.GetProperty("error_pattern").GetString(), StringComparison.Ordinal);
4352Assert.Equal(500, record.GetProperty("error_pattern").GetString()!.Length);
4377Assert.Equal(500, rendered.RootElement.GetProperty("title").GetString()!.Length);
4378Assert.StartsWith("Candidate @reviewers", rendered.RootElement.GetProperty("title").GetString(), StringComparison.Ordinal);
4381rendered.RootElement.GetProperty("nested").GetProperty("branch").GetString());
4382Assert.Equal(41, rendered.RootElement.GetProperty("number").GetInt32());
4401var stackTrace = rendered.RootElement.GetProperty("stack_trace").GetString()!;
4993metadata.RootElement.GetProperty("title").GetString());
aspire (16)
Aspire.Acquisition.Tests (6)
Aspire.Cli.EndToEnd.Tests (68)
Aspire.Cli.Tests (440)
Commands\AgentMcpCommandTests.cs (22)
193Assert.Equal("object", schema.GetProperty("type").GetString());
195Assert.False(schema.GetProperty("additionalProperties").GetBoolean());
197var properties = schema.GetProperty("properties");
202var resourceNames = properties.GetProperty("resourceNames");
203Assert.Equal("array", resourceNames.GetProperty("type").GetString());
204Assert.Equal(100, resourceNames.GetProperty("maxItems").GetInt32());
205Assert.Equal("string", resourceNames.GetProperty("items").GetProperty("type").GetString());
206Assert.Equal(256, resourceNames.GetProperty("items").GetProperty("maxLength").GetInt32());
208var targetState = properties.GetProperty("targetState");
209Assert.Equal("string", targetState.GetProperty("type").GetString());
210Assert.Equal("healthy", targetState.GetProperty("default").GetString());
213targetState.GetProperty("enum").EnumerateArray().Select(static value => value.GetString()));
215var timeoutSeconds = properties.GetProperty("timeoutSeconds");
216Assert.Equal("integer", timeoutSeconds.GetProperty("type").GetString());
217Assert.Equal(120, timeoutSeconds.GetProperty("default").GetInt32());
218Assert.Equal(1, timeoutSeconds.GetProperty("minimum").GetInt32());
219Assert.Equal(3600, timeoutSeconds.GetProperty("maximum").GetInt32());
892firstListJson.RootElement[0].GetProperty("state").GetString());
893Assert.Equal("success", waitJson.RootElement.GetProperty("outcome").GetString());
896secondListJson.RootElement[0].GetProperty("state").GetString());
Commands\DoctorCommandTests.cs (96)
127Assert.Equal(EnvironmentCheckCategories.Aspire, cliVersionCheck.GetProperty("category").GetString());
128Assert.Equal("warning", cliVersionCheck.GetProperty("status").GetString());
129Assert.Contains("13.0.0", cliVersionCheck.GetProperty("message").GetString()!);
130Assert.Contains("13.1.0", cliVersionCheck.GetProperty("message").GetString()!);
131var cliVersionMetadata = cliVersionCheck.GetProperty("metadata");
132Assert.Equal("13.0.0", cliVersionMetadata.GetProperty("currentVersion").GetString());
133Assert.Equal("13.1.0", cliVersionMetadata.GetProperty("latestVersion").GetString());
134Assert.Equal("aspire update", cliVersionMetadata.GetProperty("updateCommand").GetString());
148Assert.Equal(EnvironmentCheckCategories.Environment, osCheck.GetProperty("category").GetString());
149Assert.Equal("pass", osCheck.GetProperty("status").GetString());
150Assert.StartsWith("Operating system: ", osCheck.GetProperty("message").GetString(), StringComparison.Ordinal);
151var metadata = osCheck.GetProperty("metadata");
175var metadata = osCheck.GetProperty("metadata");
178Assert.Equal("Linux", metadata.GetProperty("osType").GetString());
179Assert.Equal(expectedDisplayName, metadata.GetProperty("displayName").GetString());
183Assert.Equal(version, metadata.GetProperty("version").GetString());
184Assert.Equal($"Operating system: {expectedDisplayName} {version}", osCheck.GetProperty("message").GetString());
189Assert.Equal(prettyName, metadata.GetProperty("description").GetString());
256Assert.Equal(EnvironmentCheckCategories.AppHost, appHostVersionCheck.GetProperty("category").GetString());
257Assert.Equal("pass", appHostVersionCheck.GetProperty("status").GetString());
258Assert.Contains("13.0.0", appHostVersionCheck.GetProperty("message").GetString()!);
259Assert.Contains("AppHost.csproj", appHostVersionCheck.GetProperty("message").GetString()!);
260var appHostVersionMetadata = appHostVersionCheck.GetProperty("metadata");
261Assert.Equal("13.0.0", appHostVersionMetadata.GetProperty("version").GetString());
262Assert.Equal("AppHost.csproj", appHostVersionMetadata.GetProperty("appHostPath").GetString());
305Assert.Equal(EnvironmentCheckCategories.AppHost, appHostVersionCheck.GetProperty("category").GetString());
306Assert.Equal("pass", appHostVersionCheck.GetProperty("status").GetString());
307Assert.Contains("13.1.0", appHostVersionCheck.GetProperty("message").GetString()!);
308Assert.Contains("apphost.ts", appHostVersionCheck.GetProperty("message").GetString()!);
309var appHostVersionMetadata = appHostVersionCheck.GetProperty("metadata");
310Assert.Equal("13.1.0", appHostVersionMetadata.GetProperty("version").GetString());
311Assert.Equal("apphost.ts", appHostVersionMetadata.GetProperty("appHostPath").GetString());
337Assert.DoesNotContain(doc.RootElement.GetProperty("checks").EnumerateArray(),
338check => check.GetProperty("name").GetString() == AspireVersionCheck.AppHostVersionCheckName);
365Assert.DoesNotContain(doc.RootElement.GetProperty("checks").EnumerateArray(),
366check => check.GetProperty("name").GetString() == AspireVersionCheck.AppHostVersionCheckName);
391Assert.DoesNotContain(doc.RootElement.GetProperty("checks").EnumerateArray(),
392check => check.GetProperty("name").GetString() == AspireVersionCheck.AppHostVersionCheckName);
418Assert.DoesNotContain(doc.RootElement.GetProperty("checks").EnumerateArray(),
419check => check.GetProperty("name").GetString() == AspireVersionCheck.AppHostVersionCheckName);
445Assert.Equal("pass", cliVersionCheck.GetProperty("status").GetString());
446Assert.Equal("warning", appHostVersionCheck.GetProperty("status").GetString());
447Assert.Equal("invalid aspire.config.json", appHostVersionCheck.GetProperty("details").GetString());
450appHostVersionCheck.GetProperty("metadata").GetProperty("appHostPath").GetString());
471Assert.Equal("pass", cliVersionCheck.GetProperty("status").GetString());
472Assert.Equal("warning", appHostVersionCheck.GetProperty("status").GetString());
473Assert.Equal("settings lookup failed", appHostVersionCheck.GetProperty("details").GetString());
503Assert.Equal(EnvironmentCheckCategories.AppHost, appHostVersionCheck.GetProperty("category").GetString());
504Assert.Equal("pass", appHostVersionCheck.GetProperty("status").GetString());
505Assert.Contains("13.2.0", appHostVersionCheck.GetProperty("message").GetString()!);
506Assert.Contains("AppHost.csproj", appHostVersionCheck.GetProperty("message").GetString()!);
507var appHostVersionMetadata = appHostVersionCheck.GetProperty("metadata");
508Assert.Equal("13.2.0", appHostVersionMetadata.GetProperty("version").GetString());
511appHostVersionMetadata.GetProperty("appHostPath").GetString());
536var metadata = cliVersionCheck.GetProperty("metadata");
537Assert.Equal("staging", metadata.GetProperty("identityChannel").GetString());
538Assert.Contains("channel: staging", cliVersionCheck.GetProperty("message").GetString()!);
562var metadata = cliVersionCheck.GetProperty("metadata");
564Assert.DoesNotContain("channel:", cliVersionCheck.GetProperty("message").GetString()!);
592var metadata = appHostVersionCheck.GetProperty("metadata");
593Assert.Equal("daily", metadata.GetProperty("pinnedChannel").GetString());
594Assert.Contains("channel: daily", appHostVersionCheck.GetProperty("message").GetString()!);
626var metadata = appHostVersionCheck.GetProperty("metadata");
627Assert.Equal("daily", metadata.GetProperty("pinnedChannel").GetString());
628Assert.Contains("channel: daily", appHostVersionCheck.GetProperty("message").GetString()!);
629Assert.Equal(Path.Combine("src", "NestedAppHost", "AppHost.csproj"), metadata.GetProperty("appHostPath").GetString());
651var metadata = appHostVersionCheck.GetProperty("metadata");
653Assert.DoesNotContain("channel:", appHostVersionCheck.GetProperty("message").GetString()!);
686var metadata = cliVersionCheck.GetProperty("metadata");
687Assert.Equal("local", metadata.GetProperty("identityChannel").GetString());
688Assert.Equal("prerelease", metadata.GetProperty("latestVersionChannel").GetString());
693var message = cliVersionCheck.GetProperty("message").GetString()!;
736var installations = doc.RootElement.GetProperty("installations").EnumerateArray().ToArray();
740Assert.Equal("/home/test/.aspire/bin/aspire", self.GetProperty("path").GetString());
741Assert.Equal("stable", self.GetProperty("channel").GetString());
742Assert.Equal("script", self.GetProperty("route").GetString());
743Assert.Equal(InstallationPathStatus.Active, self.GetProperty("pathStatus").GetString());
746Assert.Equal("/home/test/.aspire/dogfood/pr-1234/bin/aspire", peer.GetProperty("path").GetString());
747Assert.Equal("pr-1234", peer.GetProperty("channel").GetString());
748Assert.Equal("pr", peer.GetProperty("route").GetString());
749Assert.Equal(InstallationPathStatus.Shadowed, peer.GetProperty("pathStatus").GetString());
968Assert.Empty(doc.RootElement.GetProperty("checks").EnumerateArray());
969var installations = doc.RootElement.GetProperty("installations").EnumerateArray().ToArray();
971Assert.Equal("/usr/local/bin/aspire", row.GetProperty("path").GetString());
972Assert.Equal("13.0.0", row.GetProperty("version").GetString());
973Assert.Equal("stable", row.GetProperty("channel").GetString());
974Assert.Equal("script", row.GetProperty("route").GetString());
975Assert.Equal(InstallationPathStatus.Active, row.GetProperty("pathStatus").GetString());
976Assert.Equal(InstallationInfoStatus.Ok, row.GetProperty("status").GetString());
997Assert.NotEmpty(doc.RootElement.GetProperty("checks").EnumerateArray());
998var row = Assert.Single(doc.RootElement.GetProperty("installations").EnumerateArray());
999Assert.Equal(InstallationInfoStatus.Failed, row.GetProperty("status").GetString());
1000Assert.Equal("Install discovery failed. See the Aspire CLI logs for details.", row.GetProperty("statusReason").GetString());
1108=> document.RootElement.GetProperty("checks").EnumerateArray()
1109.Single(check => check.GetProperty("name").GetString() == checkName);
Commands\LsCommandTests.cs (10)
323Assert.Equal(appHostPath1, firstCandidate.RootElement.GetProperty("path").GetString());
324Assert.Equal(KnownLanguageId.CSharp, firstCandidate.RootElement.GetProperty("language").GetString());
325Assert.Equal("buildable", firstCandidate.RootElement.GetProperty("status").GetString());
328Assert.Equal(appHostPath2, secondCandidate.RootElement.GetProperty("path").GetString());
329Assert.Equal(KnownLanguageId.TypeScript, secondCandidate.RootElement.GetProperty("language").GetString());
330Assert.Equal("possibly-unbuildable", secondCandidate.RootElement.GetProperty("status").GetString());
406Assert.Equal(appHostPathZ, first.RootElement.GetProperty("path").GetString());
407Assert.Equal(appHostPathA, second.RootElement.GetProperty("path").GetString());
408Assert.Equal(appHostPathM, third.RootElement.GetProperty("path").GetString());
449Assert.Equal(appHostPath, candidate.RootElement.GetProperty("path").GetString());
Mcp\ListResourcesToolTests.cs (55)
89Assert.Equal("ASP.NET Core", resource.GetProperty("resource_type_display_name").GetString());
90Assert.Equal("[]", resource.GetProperty("waiting_for").GetRawText());
91Assert.Equal("[]", resource.GetProperty("urls").GetRawText());
92Assert.Equal("[]", resource.GetProperty("relationships").GetRawText());
93Assert.Equal("{}", resource.GetProperty("commands").GetRawText());
154.GetProperty("relationships")
160relationship => Assert.Equal("Reference", relationship.GetProperty("type").GetString()));
163relationships.Select(relationship => relationship.GetProperty("resource_name").GetString()));
213.GetProperty("relationships")
215.Select(relationship => relationship.GetProperty("resource_name").GetString()));
220.Select(resource => resource.GetProperty("name").GetString()));
263.GetProperty("waiting_for")
270.Select(resource => resource.GetProperty("name").GetString()));
340Assert.Equal(["api-service", "postgres", "redis"], resources.EnumerateArray().Select(r => r.GetProperty("name").GetString()));
420var pageNames = resources.RootElement.EnumerateArray().Select(resource => resource.GetProperty("name").GetString()).ToArray();
423Assert.Equal(offset, pagination.RootElement.GetProperty("offset").GetInt32());
424Assert.Equal(64, pagination.RootElement.GetProperty("limit").GetInt32());
425Assert.Equal(names.Length, pagination.RootElement.GetProperty("total").GetInt32());
464resources.RootElement.EnumerateArray().Select(resource => resource.GetProperty("name").GetString()));
465Assert.Equal(3, pagination.RootElement.GetProperty("total").GetInt32());
567await Verify(json.RootElement[0].GetProperty("commands").GetRawText(), "json");
602var metadata = json.RootElement[0].GetProperty("commands");
604var command = metadata.GetProperty("command-039");
605Assert.Equal(new string('x', 255) + "\U0001F680", command.GetProperty("description").GetString());
606var arguments = command.GetProperty("argument_inputs");
608arguments.EnumerateArray().Select(input => input.GetProperty("name").GetString()));
610Assert.Equal(new string('x', 255) + "\U0001F680", argument.GetProperty("description").GetString());
611var options = argument.GetProperty("options");
657Assert.Equal(expectedState, resource.GetProperty("state").GetString());
703Assert.Equal(70, pagination.RootElement.GetProperty("total").GetInt32());
704Assert.Equal(64, pagination.RootElement.GetProperty("next_offset").GetInt32());
708var value = Assert.IsType<string>(firstResource.GetProperty(propertyName).GetString());
712Assert.Equal("unknown", firstResource.GetProperty("state").GetString());
713Assert.Equal(32, firstResource.GetProperty("waiting_for").GetArrayLength());
714Assert.Equal(16, firstResource.GetProperty("urls").GetArrayLength());
715Assert.Equal(32, firstResource.GetProperty("relationships").GetArrayLength());
752Assert.Equal("Api.csproj", resources[0].GetProperty("source").GetString());
753Assert.Equal("worker.exe", resources[1].GetProperty("source").GetString());
802Assert.Equal(["container", "executable", "project"], json.RootElement.EnumerateArray().Select(resource => resource.GetProperty("name").GetString()));
830var source = Assert.IsType<string>(json.RootElement[0].GetProperty("source").GetString());
865var urls = json.RootElement[0].GetProperty("urls");
876.Select(url => url.GetProperty("url").GetString()));
1024Assert.Equal(["Redis"], resource.GetProperty("waiting_for").EnumerateArray().Select(value => value.GetString()));
1025Assert.Equal("Api.csproj", resource.GetProperty("source").GetString());
1028resource.GetProperty("urls")[0].GetProperty("url").GetString());
1031resource.GetProperty("urls")[0].EnumerateObject().Select(p => p.Name));
1034resource.GetProperty("relationships")[0].EnumerateObject().Select(p => p.Name));
1035Assert.Equal("redis-instance", resource.GetProperty("relationships")[0].GetProperty("resource_name").GetString());
1038resource.GetProperty("dashboard_url").GetString());
1041Assert.Equal("redis:8", resources[3].GetProperty("source").GetString());
1042Assert.Equal("worker", resources[4].GetProperty("source").GetString());
1043await Verify(resource.GetProperty("commands").GetRawText(), "json");
1073Assert.Equal("Custom", json.RootElement[0].GetProperty("resource_type_display_name").GetString());
Mcp\WaitForResourcesToolTests.cs (32)
138Assert.Equal("success", json.RootElement.GetProperty("outcome").GetString());
139Assert.Equal("healthy", json.RootElement.GetProperty("target_state").GetString());
141var resource = Assert.Single(json.RootElement.GetProperty("resources").EnumerateArray());
145Assert.Equal("api", resource.GetProperty("name").GetString());
146Assert.Equal("Running", resource.GetProperty("state").GetString());
147Assert.Equal("Healthy", resource.GetProperty("health").GetString());
148Assert.Equal("success", resource.GetProperty("outcome").GetString());
209Assert.Equal("success", json.RootElement.GetProperty("outcome").GetString());
294Assert.Equal("failure", json.RootElement.GetProperty("outcome").GetString());
295Assert.Equal("healthy", json.RootElement.GetProperty("target_state").GetString());
298json.RootElement.GetProperty("error").GetString());
299Assert.Empty(json.RootElement.GetProperty("resources").EnumerateArray());
349Assert.Equal("up", json.RootElement.GetProperty("target_state").GetString());
352json.RootElement.GetProperty("resources")
354.Select(static resource => resource.GetProperty("name").GetString()));
415Assert.Equal("failure", json.RootElement.GetProperty("outcome").GetString());
416var resources = json.RootElement.GetProperty("resources").EnumerateArray().ToArray();
500Assert.Equal("failure", json.RootElement.GetProperty("outcome").GetString());
502json.RootElement.GetProperty("resources").EnumerateArray(),
555Assert.Equal("timeout", json.RootElement.GetProperty("outcome").GetString());
558json.RootElement.GetProperty("resources")
560.Select(static resource => resource.GetProperty("outcome").GetString()));
597json.RootElement.GetProperty("resources")
599.Select(static resource => resource.GetProperty("name").GetString()));
648Assert.Equal("success", json.RootElement.GetProperty("outcome").GetString());
714Assert.Equal("failure", json.RootElement.GetProperty("outcome").GetString());
716json.RootElement.GetProperty("resources").EnumerateArray(),
841Assert.Equal(name, resource.GetProperty("name").GetString());
844Assert.Equal("failure", resource.GetProperty("outcome").GetString());
845Assert.Equal(error, resource.GetProperty("error").GetString());
855Assert.Equal(name, resource.GetProperty("name").GetString());
857Assert.Equal(outcome, resource.GetProperty("outcome").GetString());
Telemetry\ReportedLogExportTests.cs (35)
62var records = exported.OrderBy(record => record.GetProperty("data").GetProperty("baseType").GetString(), StringComparer.Ordinal).ToArray();
64records.Select(record => record.GetProperty("data").GetProperty("baseType").GetString()).ToArray());
187records.Select(record => record.GetProperty("data").GetProperty("baseData").GetProperty("message").GetString()).ToArray());
190Assert.Equal("MessageData", record.GetProperty("data").GetProperty("baseType").GetString());
191Assert.Equal("aspire-cli", record.GetProperty("tags").GetProperty("ai.cloud.role").GetString());
192var properties = record.GetProperty("data").GetProperty("baseData").GetProperty("properties");
193Assert.Equal(AspireCliTelemetry.EventLogCategoryName, properties.GetProperty("CategoryName").GetString());
195Assert.Equal(activity.TraceId.ToHexString(), record.GetProperty("tags").GetProperty("ai.operation.id").GetString());
196Assert.Equal(activity.SpanId.ToHexString(), record.GetProperty("tags").GetProperty("ai.operation.parentId").GetString());
200Assert.Equal("test-event", records[0].GetProperty("tags").GetProperty("ai.operation.name").GetString());
201Assert.Equal("System.InvalidOperationException", records[1].GetProperty("data").GetProperty("baseData")
202.GetProperty("properties").GetProperty("exception.type").GetString());
256Assert.Equal("MessageData", record.GetProperty("data").GetProperty("baseType").GetString());
257var actual = record.GetProperty("data").GetProperty("baseData").GetProperty("properties")
258.GetProperty("test.collection").GetString();
260Assert.Equal("", record.GetProperty("data").GetProperty("baseData").GetProperty("properties").GetProperty("test.empty").GetString());
Aspire.Dashboard.Components.Tests (5)
Aspire.Dashboard.Playwright.Tests (43)
Integration\Playwright\ResourcePaneResponsiveTests.cs (17)
387Assert.InRange(idle.GetProperty("mutations").GetInt32(), 0, 2);
388Assert.InRange(refresh.GetProperty("mutations").GetInt32(), 1, 56 * 16);
389Assert.Equal(28, refresh.GetProperty("rows").GetArrayLength());
392Assert.Empty(sample.GetProperty("longTasks").EnumerateArray());
393Assert.Equal(0, sample.GetProperty("shifts").EnumerateArray().Sum(value => value.GetDouble()));
983var actual = sample.GetProperty("actual").EnumerateArray().Select(v => v.GetInt32()).ToArray();
984var expected = sample.GetProperty("expected").EnumerateArray().Select(v => v.GetInt32()).ToArray();
987Assert.Equal("0px", sample.GetProperty("border").GetString());
988Assert.Equal(sample.GetProperty("selected").GetBoolean() ? "3px" : "2px", sample.GetProperty("rail").GetString());
989Assert.Equal(!sample.GetProperty("selected").GetBoolean(),
990sample.GetProperty("railColor").GetString() == "rgba(0, 0, 0, 0)");
991Assert.True(sample.GetProperty("gap").GetDouble() >= 7);
994Assert.Equal("rgba(0, 0, 0, 0)", sample.GetProperty("background").GetString());
1297var errors = result.GetProperty("errors").EnumerateArray().Select(error => error.GetString()).ToArray();
1514Assert.All(contrast.EnumerateArray(), sample => Assert.True(sample.GetProperty("ratio").GetDouble() >= sample.GetProperty("minimum").GetDouble(),
Aspire.Dashboard.Tests (177)
Terminal\TerminalWebSocketTests.cs (164)
33Assert.Equal(101, initial.GetProperty("history").GetProperty("totalRows").GetInt32());
60frame.GetProperty("history").TryGetProperty("markers", out var marks) &&
61marks.EnumerateArray().Any(mark => mark.GetProperty("phase").GetString() == "executing"), timeout.Token);
62var mark = Assert.Single(initial.GetProperty("history").GetProperty("markers").EnumerateArray(),
63mark => mark.GetProperty("phase").GetString() == "executing");
64var id = mark.GetProperty("id").GetString();
66Assert.Equal("command", mark.GetProperty("source").GetString());
67Assert.Equal(0, mark.GetProperty("row").GetInt32());
73frame.GetProperty("history").GetProperty("markerResult") is { ValueKind: JsonValueKind.Object } result &&
74result.GetProperty("requestId").GetInt32() == 1, timeout.Token);
75var detailsResult = detailsFrame.GetProperty("history").GetProperty("markerResult");
76Assert.True(detailsResult.GetProperty("success").GetBoolean());
77Assert.Equal("executing", detailsResult.GetProperty("details").GetProperty("phase").GetString());
78Assert.Equal("cmdline_url=echo%20retained", detailsResult.GetProperty("details").GetProperty("rawParameters").GetString());
82frame.GetProperty("history").GetProperty("markerResult") is { ValueKind: JsonValueKind.Object } result &&
83result.GetProperty("requestId").GetInt32() == 2, timeout.Token);
84Assert.True(jumped.GetProperty("history").GetProperty("markerResult").GetProperty("success").GetBoolean());
85Assert.Equal(0, jumped.GetProperty("history").GetProperty("top").GetInt32());
101await ReadUntilAsync(browser, frame => frame.GetProperty("peer").GetProperty("isPrimary").GetBoolean(), timeout.Token);
106await ReadUntilAsync(browser, frame => frame.GetProperty("history").GetProperty("totalRows").GetInt32() >= 36, timeout.Token);
114var resized = await ReadUntilAsync(browser, frame => frame.GetProperty("columns").GetInt32() == width &&
115frame.GetProperty("history").GetProperty("totalRows").GetInt32() == expectedRows, timeout.Token);
116Assert.Equal(expectedRows, resized.GetProperty("history").GetProperty("totalRows").GetInt32());
125await ReadUntilAsync(browser, frame => frame.GetProperty("columns").GetInt32() == 20, timeout.Token);
142var initial = await ReadUntilAsync(first, frame => frame.GetProperty("peer").GetProperty("id").ValueKind == JsonValueKind.String, timeout.Token);
143Assert.Equal(100, initial.GetProperty("columns").GetInt32());
144Assert.Equal(30, initial.GetProperty("rows").GetInt32());
149var primary = await ReadUntilAsync(first, frame => frame.GetProperty("peer").GetProperty("isPrimary").GetBoolean(), timeout.Token);
150Assert.Equal(80, primary.GetProperty("columns").GetInt32());
151Assert.Equal(24, primary.GetProperty("rows").GetInt32());
152Assert.Equal(primary.GetProperty("peer").GetProperty("id").GetString(), host.Presentation.PrimaryPeerId);
155var viewer = await ReadUntilAsync(second, frame => frame.GetProperty("peer").GetProperty("id").ValueKind == JsonValueKind.String, timeout.Token);
156Assert.False(viewer.GetProperty("peer").GetProperty("isPrimary").GetBoolean());
157Assert.Equal(80, viewer.GetProperty("columns").GetInt32());
160await ReadUntilAsync(second, frame => frame.GetProperty("peer").GetProperty("primaryId").ValueKind == JsonValueKind.Null, timeout.Token);
162var takeover = await ReadUntilAsync(second, frame => frame.GetProperty("peer").GetProperty("isPrimary").GetBoolean(), timeout.Token);
163Assert.Equal(132, takeover.GetProperty("columns").GetInt32());
242var graphics = await ReadUntilAsync(browser, frame => frame.GetProperty("placements").GetArrayLength() > 0, timeout.Token);
243Assert.Single(graphics.GetProperty("placements").EnumerateArray());
244Assert.Single(graphics.GetProperty("images").EnumerateArray());
248var restored = await ReadUntilAsync(reconnected, frame => frame.GetProperty("placements").GetArrayLength() > 0, timeout.Token);
249Assert.Single(restored.GetProperty("placements").EnumerateArray());
250Assert.Single(restored.GetProperty("images").EnumerateArray());
286Assert.Equal(initial.GetProperty("placements")[0].GetProperty("x").GetDouble(),
287late.GetProperty("placements")[0].GetProperty("x").GetDouble());
291var originalX = initial.GetProperty("placements")[0].GetProperty("x").GetDouble();
295Assert.Equal(updates[0].GetProperty("placements")[0].GetProperty("x").GetDouble(),
296updates[1].GetProperty("placements")[0].GetProperty("x").GetDouble());
305static bool HasPlacement(JsonElement frame) => frame.GetProperty("placements").GetArrayLength() == 1;
308HasPlacement(frame) && frame.GetProperty("placements")[0].GetProperty("x").GetDouble() > originalX;
312var image = Assert.Single(frame.GetProperty("images").EnumerateArray());
313Assert.Equal(1, image.GetProperty("width").GetInt32());
314Assert.Equal(1, image.GetProperty("height").GetInt32());
315Assert.Equal(4, image.GetProperty("byteLength").GetInt32());
316Assert.Equal(image.GetProperty("key").GetString(), frame.GetProperty("placements")[0].GetProperty("key").GetString());
331var initial = await ReadUntilAsync(first, frame => frame.GetProperty("placements").GetArrayLength() == 1, timeout.Token);
332var originalX = initial.GetProperty("placements")[0].GetProperty("x").GetDouble();
343var original = await ReadUntilAsync(first, frame => frame.GetProperty("placements").GetArrayLength() == 1 &&
344frame.GetProperty("placements")[0].GetProperty("x").GetDouble() > originalX, timeout.Token);
345var restored = await ReadUntilAsync(late, frame => frame.GetProperty("placements").GetArrayLength() == 1, timeout.Token);
346var image = Assert.Single(restored.GetProperty("images").EnumerateArray());
347Assert.Equal(4, image.GetProperty("byteLength").GetInt32());
348Assert.Equal(original.GetProperty("placements")[0].GetProperty("x").GetDouble(),
349restored.GetProperty("placements")[0].GetProperty("x").GetDouble());
368var initial = await ReadUntilAsync(first, frame => frame.GetProperty("placements").GetArrayLength() == 1, timeout.Token);
369var originalX = initial.GetProperty("placements")[0].GetProperty("x").GetDouble();
384Assert.Equal(updates[0].GetProperty("placements")[0].GetProperty("x").GetDouble(),
385updates[1].GetProperty("placements")[0].GetProperty("x").GetDouble());
390frame.GetProperty("placements").GetArrayLength() == 1 &&
391frame.GetProperty("placements")[0].GetProperty("x").GetDouble() > originalX;
407var initial = await ReadUntilAsync(browser, frame => frame.GetProperty("hyperlinks").GetArrayLength() > 0, timeout.Token);
411var changed = await ReadUntilAsync(browser, frame => frame.GetProperty("hyperlinks").EnumerateArray()
412.Any(link => link.GetProperty("uri").GetString() == "https://example.com/second"), timeout.Token);
417var restored = await ReadUntilAsync(reconnected, frame => frame.GetProperty("hyperlinks").GetArrayLength() > 0, timeout.Token);
423var link = Assert.Single(frame.GetProperty("hyperlinks").EnumerateArray());
424Assert.Equal(uri, link.GetProperty("uri").GetString());
425Assert.Equal(0, link.GetProperty("row").GetInt32());
426Assert.Equal(0, link.GetProperty("startColumn").GetInt32());
427Assert.Equal(4, link.GetProperty("endColumn").GetInt32());
465await ReadUntilAsync(second, frame => frame.GetProperty("peer").GetProperty("id").ValueKind == JsonValueKind.String, timeout.Token);
508var readOnly = await ReadUntilAsync(browser, frame => frame.GetProperty("full").GetBoolean(), timeout.Token);
509Assert.Equal(100, readOnly.GetProperty("columns").GetInt32());
510Assert.Equal(30, readOnly.GetProperty("rows").GetInt32());
511Assert.False(readOnly.GetProperty("peer").GetProperty("isPrimary").GetBoolean());
515var primary = await ReadUntilAsync(browser, frame => frame.GetProperty("peer").GetProperty("isPrimary").GetBoolean(), timeout.Token);
516Assert.Equal(80, primary.GetProperty("columns").GetInt32());
517Assert.Equal(24, primary.GetProperty("rows").GetInt32());
550var primary = await ReadUntilAsync(interactive, frame => frame.GetProperty("peer").GetProperty("isPrimary").GetBoolean(), timeout.Token);
551var peerId = primary.GetProperty("peer").GetProperty("id").GetString();
552await ReadUntilAsync(readOnly, frame => frame.GetProperty("peer").GetProperty("primaryId").GetString() == peerId, timeout.Token);
556var unchanged = await ReadUntilAsync(readOnly, frame => frame.GetProperty("full").GetBoolean(), timeout.Token);
557Assert.Equal(80, unchanged.GetProperty("columns").GetInt32());
558Assert.Equal(24, unchanged.GetProperty("rows").GetInt32());
559Assert.False(unchanged.GetProperty("peer").GetProperty("isPrimary").GetBoolean());
738await SendAsync(browser, $$"""{"type":"ack","revision":{{initial.GetProperty("revision").GetUInt32()}}}""", timeout.Token);
739var final = await ReadUntilAsync(browser, frame => frame.GetProperty("title").GetString() == "Final screen", timeout.Token);
740Assert.Single(final.GetProperty("placements").EnumerateArray());
741var image = Assert.Single(final.GetProperty("images").EnumerateArray());
742Assert.Equal(4, image.GetProperty("byteLength").GetInt32());
743Assert.Equal(37, final.GetProperty("history").GetProperty("totalRows").GetInt32());
786frame => frame.GetProperty("history").GetProperty("requestId").GetInt32() == requestId, cancellationToken);
787Assert.Equal(0, frame.GetProperty("history").GetProperty("top").GetInt32());
788var history = frame.GetProperty("history");
797generation = history.GetProperty("generation").GetString(),
798rowId = history.GetProperty("rowIds")[0].GetString()
801frame => frame.GetProperty("history").GetProperty("selection").GetProperty("status").GetString() == "valid",
803var text = selection.GetProperty("history").GetProperty("selection").GetProperty("text").GetString();
806frame => frame.GetProperty("history").GetProperty("selection").GetProperty("status").GetString() != "valid",
810frame => frame.GetProperty("history").GetProperty("requestId").GetInt32() == requestId + 3, cancellationToken);
838await SendAsync(socket, $$"""{"type":"ack","revision":{{frame.GetProperty("revision").GetUInt32()}}}""", cancellationToken);
Aspire.Deployment.EndToEnd.Tests (190)
AcaExpressDeploymentTests.cs (41)
257var environment = Assert.Single(environmentDocument.RootElement.GetProperty("value").EnumerateArray());
258Assert.Equal("Express", environment.GetProperty("properties").GetProperty("environmentMode").GetString());
259var environmentId = environment.GetProperty("id").GetString();
263var apps = appsDocument.RootElement.GetProperty("value").EnumerateArray().ToArray();
268var properties = app.GetProperty("properties");
269Assert.Equal(environmentId, properties.GetProperty("environmentId").GetString(), ignoreCase: true);
270var configuration = properties.GetProperty("configuration");
271var ingress = configuration.GetProperty("ingress");
272Assert.True(ingress.GetProperty("external").GetBoolean());
273Assert.False(ingress.GetProperty("allowInsecure").GetBoolean());
274Assert.Equal(8080, ingress.GetProperty("targetPort").GetInt32());
275var hostname = ingress.GetProperty("fqdn").GetString();
277var template = properties.GetProperty("template");
278Assert.Equal(0, template.GetProperty("scale").GetProperty("minReplicas").GetInt32());
279var container = Assert.Single(template.GetProperty("containers").EnumerateArray());
280var name = container.GetProperty("name").GetString()!;
284var registry = Assert.Single(configuration.GetProperty("registries").EnumerateArray());
285var server = registry.GetProperty("server").GetString()!;
287Assert.StartsWith($"{server}/", container.GetProperty("image").GetString(), StringComparison.OrdinalIgnoreCase);
288var identity = registry.GetProperty("identity").GetString()!;
291Assert.Contains(app.GetProperty("identity").GetProperty("userAssignedIdentities").EnumerateObject(),
296var secretEnvironment = Assert.Single(container.GetProperty("env").EnumerateArray(),
297entry => entry.GetProperty("name").GetString() == "MANUAL_SECRET");
300var secretName = secretEnvironment.GetProperty("secretRef").GetString();
302var secret = Assert.Single(configuration.GetProperty("secrets").EnumerateArray(),
303entry => entry.GetProperty("name").GetString() == secretName);
309app.GetProperty("properties").GetProperty("template").GetProperty("containers")[0].GetProperty("name").GetString() == "frontend");
310var reference = Assert.Single(frontend.GetProperty("properties").GetProperty("template").GetProperty("containers")[0].GetProperty("env").EnumerateArray(),
311entry => entry.GetProperty("name").GetString() == "services__api__http__0");
312Assert.Equal(urls["api"].GetLeftPart(UriPartial.Authority), reference.GetProperty("value").GetString());
358if (result.GetProperty("message").GetString() == ApiMessage)
360Assert.Equal(urls["api"].GetLeftPart(UriPartial.Authority), result.GetProperty("backend").GetString());
AzureEntraIdAppRoleDeploymentTests.cs (35)
209resource => resource.GetProperty("appRoles").GetArrayLength() == 1, cancellationToken);
210var applicationId = application.GetProperty("appId").GetGuid();
211var role = Assert.Single(application.GetProperty("appRoles").EnumerateArray());
212Assert.Equal("Orders.Read", role.GetProperty("value").GetString());
213Assert.Equal(["Application"], role.GetProperty("allowedMemberTypes").EnumerateArray().Select(value => value.GetString()));
216$"https://graph.microsoft.com/v1.0/applications/{application.GetProperty("id").GetGuid():D}/federatedIdentityCredentials",
219Assert.Empty(federated.RootElement.GetProperty("value").EnumerateArray());
223resource => resource.GetProperty("appRoles").EnumerateArray().Any(r => r.GetProperty("id").GetGuid() == role.GetProperty("id").GetGuid()),
225var principalId = principal.GetProperty("id").GetGuid();
229resource => resource.GetProperty("value").GetArrayLength() == 2, cancellationToken);
238var container = Assert.Single(containerApp.RootElement.GetProperty("properties").GetProperty("template").GetProperty("containers").EnumerateArray());
239var clientId = Assert.Single(container.GetProperty("env").EnumerateArray(),
240variable => variable.GetProperty("name").GetString() == "AZURE_CLIENT_ID").GetProperty("value").GetString();
242var identity = Assert.Single(containerApp.RootElement.GetProperty("identity").GetProperty("userAssignedIdentities").EnumerateObject(),
243identity => identity.Value.GetProperty("clientId").GetString() == clientId).Value;
244var identityPrincipalId = identity.GetProperty("principalId").GetGuid();
245var matching = assignments.GetProperty("value").EnumerateArray()
246.Where(a => a.GetProperty("principalId").GetGuid() == identityPrincipalId).ToArray();
254Assert.Equal(role.GetProperty("id").GetGuid(), assignment.GetProperty("appRoleId").GetGuid());
255Assert.Equal(principalId, assignment.GetProperty("resourceId").GetGuid());
258var host = containerApp.RootElement.GetProperty("properties").GetProperty("configuration").GetProperty("ingress").GetProperty("fqdn").GetString();
265return assignments.GetProperty("value").EnumerateArray()
266.Select(a => $"{a.GetProperty("principalId").GetGuid():D}/{a.GetProperty("appRoleId").GetGuid():D}/{a.GetProperty("id").GetString()}")
AzureEntraIdStarterDeploymentTests.cs (50)
102resource => resource.GetProperty("identifierUris").GetArrayLength() == 1
103&& resource.GetProperty("api").GetProperty("oauth2PermissionScopes").GetArrayLength() == 1,
105var apiClientId = apiApplication.GetProperty("appId").GetGuid();
107Assert.Equal($"api://{apiClientId:D}", Assert.Single(apiApplication.GetProperty("identifierUris").EnumerateArray()).GetString());
108var scope = Assert.Single(apiApplication.GetProperty("api").GetProperty("oauth2PermissionScopes").EnumerateArray());
109Assert.Equal("access_as_user", scope.GetProperty("value").GetString());
110Assert.Equal("User", scope.GetProperty("type").GetString());
111Assert.True(scope.GetProperty("isEnabled").GetBoolean());
112var scopeId = scope.GetProperty("id").GetGuid();
113Assert.Equal(0, apiApplication.GetProperty("api").GetProperty("preAuthorizedApplications").GetArrayLength());
116Assert.Equal(0, apiApplication.GetProperty("web").GetProperty("redirectUris").GetArrayLength());
120resource => resource.GetProperty("web").GetProperty("redirectUris").GetArrayLength() == 2
121&& resource.GetProperty("requiredResourceAccess").GetArrayLength() == 1,
123var webClientId = webApplication.GetProperty("appId").GetGuid();
124var webObjectId = webApplication.GetProperty("id").GetGuid();
125Assert.Equal(webUniqueName, webApplication.GetProperty("displayName").GetString());
126Assert.Equal(0, webApplication.GetProperty("identifierUris").GetArrayLength());
129var required = Assert.Single(webApplication.GetProperty("requiredResourceAccess").EnumerateArray());
130Assert.Equal(apiClientId, required.GetProperty("resourceAppId").GetGuid());
131var access = Assert.Single(required.GetProperty("resourceAccess").EnumerateArray());
132Assert.Equal(scopeId, access.GetProperty("id").GetGuid());
133Assert.Equal("Scope", access.GetProperty("type").GetString());
139resource => resource.GetProperty("appId").GetGuid() == clientId
140&& resource.GetProperty("tags").EnumerateArray()
149var identity = Assert.Single(identities.RootElement.GetProperty("value").EnumerateArray(),
150entry => entry.GetProperty("name").GetString()!.StartsWith("webfrontend_identity", StringComparison.Ordinal));
151var identityClientId = identity.GetProperty("properties").GetProperty("clientId").GetGuid();
152var identityPrincipalId = identity.GetProperty("properties").GetProperty("principalId").GetGuid();
158var federated = Assert.Single(credentials.RootElement.GetProperty("value").EnumerateArray());
159Assert.Equal($"https://login.microsoftonline.com/{tenantId:D}/v2.0", federated.GetProperty("issuer").GetString());
160Assert.Equal(identityPrincipalId.ToString("D"), federated.GetProperty("subject").GetString());
161Assert.Equal("api://AzureADTokenExchange", Assert.Single(federated.GetProperty("audiences").EnumerateArray()).GetString());
167webApplication.GetProperty("web").GetProperty("redirectUris").EnumerateArray().Select(uri => uri.GetString()!).Order(StringComparer.Ordinal));
208var properties = app.RootElement.GetProperty("properties");
209var container = Assert.Single(properties.GetProperty("template").GetProperty("containers").EnumerateArray());
210var environment = container.GetProperty("env").EnumerateArray()
212.ToDictionary(entry => entry.GetProperty("name").GetString()!, entry => entry.GetProperty("value").GetString()!);
213return (properties.GetProperty("configuration").GetProperty("ingress").GetProperty("fqdn").GetString()!, environment);
FoundryHostedAgentDeploymentTests.cs (26)
237var resources = resourcesDocument.RootElement.GetProperty("value").EnumerateArray().ToArray();
240resource.GetProperty("type").GetString(),
243var projectId = project.GetProperty("id").GetString()
255.GetProperty("properties")
256.GetProperty("endpoints")
257.GetProperty("AI Foundry API")
269var searchConnection = connectionsDocument.RootElement.GetProperty("value")
271connection.GetProperty("properties").GetProperty("category").GetString() == "CognitiveSearch");
276searchConnection.GetProperty("id").GetString()
336tool.GetProperty("type").GetString() == "web_search");
337Assert.Equal("web-search", webSearch.GetProperty("name").GetString());
338Assert.Equal("Search the public web.", webSearch.GetProperty("description").GetString());
341tool.GetProperty("type").GetString() == "mcp");
342Assert.Equal("microsoft-learn", mcp.GetProperty("name").GetString());
343Assert.Equal("microsoft-learn", mcp.GetProperty("server_label").GetString());
346mcp.GetProperty("server_url").GetString());
347Assert.Equal("Search Microsoft Learn.", mcp.GetProperty("server_description").GetString());
348Assert.Equal("always", mcp.GetProperty("require_approval").GetString());
351tool.GetProperty("type").GetString() == "azure_ai_search");
352Assert.Equal("knowledge-base", search.GetProperty("name").GetString());
353Assert.Equal("Search the internal knowledge base.", search.GetProperty("description").GetString());
354var index = Assert.Single(search.GetProperty("azure_ai_search").GetProperty("indexes").EnumerateArray());
355Assert.Equal("docs", index.GetProperty("index_name").GetString());
356Assert.Equal(searchConnectionId, index.GetProperty("project_connection_id").GetString());
Aspire.Hosting (4)
Aspire.Hosting.Azure.Tests (58)
AzureSandboxesTests.cs (58)
535Assert.Equal("site-1234", root.GetProperty("name").GetString());
536Assert.Equal("site-container", root.GetProperty("labels").GetProperty("aspire-resource").GetString());
537var source = root.GetProperty("source");
538Assert.Equal("registry", source.GetProperty("kind").GetString());
539Assert.Equal("example.azurecr.io/site:tag", source.GetProperty("imageUrl").GetString());
540Assert.Equal("11111111-1111-1111-1111-111111111111", source.GetProperty("managedIdentityClientId").GetString());
584var source = document.RootElement.GetProperty("source");
585Assert.Equal("docker.io/library/nginx@sha256:abc123", source.GetProperty("imageUrl").GetString());
1776Assert.Equal("disk-1", root.GetProperty("sourcesRef").GetProperty("diskImage").GetProperty("id").GetString());
1777Assert.False(root.GetProperty("sourcesRef").GetProperty("diskImage").GetProperty("isPublic").GetBoolean());
1778Assert.Equal("2000m", root.GetProperty("resources").GetProperty("cpu").GetString());
1779Assert.Equal("4096Mi", root.GetProperty("resources").GetProperty("memory").GetString());
1780Assert.Equal("32768Mi", root.GetProperty("resources").GetProperty("disk").GetString());
1781Assert.Equal("dotnet", root.GetProperty("entrypoint")[0].GetString());
1782Assert.Equal("/app/app.dll", root.GetProperty("entrypoint")[1].GetString());
1783Assert.Equal("--urls", root.GetProperty("cmd")[0].GetString());
1784Assert.Equal("/app", root.GetProperty("workingDirectory").GetString());
1785Assert.Equal("http://+:5000", root.GetProperty("environment").GetProperty("ASPNETCORE_URLS").GetString());
1846Assert.False(root.GetProperty("autoSuspendPolicy").GetProperty("enabled").GetBoolean());
1847Assert.Equal(300, root.GetProperty("autoSuspendPolicy").GetProperty("interval").GetInt32());
1848Assert.Equal("Disk", root.GetProperty("autoSuspendPolicy").GetProperty("mode").GetString());
1849Assert.True(root.GetProperty("autoDeletePolicy").GetProperty("enabled").GetBoolean());
1850Assert.Equal(3600, root.GetProperty("autoDeletePolicy").GetProperty("deleteIntervalInSeconds").GetInt64());
1851Assert.Equal("AfterSuspend", root.GetProperty("autoDeletePolicy").GetProperty("trigger").GetString());
1899Assert.Equal(80, root.GetProperty("port").GetInt32());
1900Assert.True(root.GetProperty("auth").GetProperty("anonymous").GetBoolean());
1901Assert.Equal("Http", root.GetProperty("protocol").GetString());
1939Assert.Equal("webhook", root.GetProperty("name").GetString());
1940Assert.Equal(8080, root.GetProperty("port").GetInt32());
1941Assert.Equal("OnDemand", root.GetProperty("activationMode").GetString());
1942Assert.Equal("Http", root.GetProperty("protocol").GetString());
1944var auth = root.GetProperty("auth");
1946Assert.False(auth.GetProperty("anonymous").GetBoolean());
1947var entraId = auth.GetProperty("entraId");
1948Assert.True(entraId.GetProperty("enabled").GetBoolean());
1951entraId.GetProperty("objectIds").EnumerateArray().Select(static item => item.GetString()!).ToArray());
1954entraId.GetProperty("tenantIds").EnumerateArray().Select(static item => item.GetString()!).ToArray());
2001var auth = document.RootElement.GetProperty("auth");
2003var entraId = auth.GetProperty("entraId");
2004Assert.True(entraId.GetProperty("enabled").GetBoolean());
2005Assert.Empty(entraId.GetProperty("objectIds").EnumerateArray());
2006Assert.Empty(entraId.GetProperty("tenantIds").EnumerateArray());
Aspire.Hosting.Blazor.Tests (4)
Aspire.Hosting.Browsers.Tests (24)
BrowserLogsBuilderExtensionsTests.cs (20)
803Assert.Equal("web-browser-logs", document.RootElement.GetProperty("resourceName").GetString());
804Assert.Equal("session-0002", document.RootElement.GetProperty("sessionId").GetString());
805Assert.Equal("msedge", document.RootElement.GetProperty("browser").GetString());
806Assert.Equal(@"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe", document.RootElement.GetProperty("browserExecutable").GetString());
807Assert.Equal("Adopted", document.RootElement.GetProperty("browserHostOwnership").GetString());
808Assert.Equal(4242, document.RootElement.GetProperty("processId").GetInt32());
809Assert.Equal("target-0002", document.RootElement.GetProperty("targetId").GetString());
810Assert.Equal("https://localhost:8443/", document.RootElement.GetProperty("targetUrl").GetString());
811Assert.EndsWith("screenshot.png", document.RootElement.GetProperty("path").GetString(), StringComparison.Ordinal);
812Assert.Equal("image/png", document.RootElement.GetProperty("mimeType").GetString());
813Assert.Equal(1234, document.RootElement.GetProperty("sizeBytes").GetInt32());
892var path = document.RootElement.GetProperty("path").GetString();
897Assert.Equal("session-0001", document.RootElement.GetProperty("sessionId").GetString());
898Assert.Equal("chrome", document.RootElement.GetProperty("browser").GetString());
899Assert.Equal("/fake/browser-1", document.RootElement.GetProperty("browserExecutable").GetString());
900Assert.Equal("Owned", document.RootElement.GetProperty("browserHostOwnership").GetString());
901Assert.Equal(1001, document.RootElement.GetProperty("processId").GetInt32());
902Assert.Equal("target-1", document.RootElement.GetProperty("targetId").GetString());
903Assert.Equal("http://localhost:8080/", document.RootElement.GetProperty("targetUrl").GetString());
904Assert.Equal(session.ScreenshotBytes.Length, document.RootElement.GetProperty("sizeBytes").GetInt32());
Aspire.Hosting.CodeGeneration.TypeScript.Tests (29)
Aspire.Hosting.Dotnet (6)
Aspire.Hosting.Dotnet.Tests (2)
Aspire.Hosting.Foundry (3)
Aspire.Hosting.Foundry.Tests (6)
Aspire.Hosting.Go (1)
Aspire.Hosting.Go.Tests (7)
Aspire.Hosting.Java.Tests (3)
Aspire.Hosting.JavaScript.Tests (1)
Aspire.Hosting.Kubernetes (9)
Aspire.Hosting.Kubernetes.Tests (2)
Aspire.Hosting.Maui (1)
Aspire.Hosting.Native.Client (2)
Aspire.Hosting.Native.Core.Tests (42)
NativeProviderClientTests.cs (18)
32.GetProperty("capabilities").GetArrayLength());
43.GetProperty("capabilities").GetArrayLength());
73Assert.Equal(0, capabilities.GetProperty("capabilities").GetArrayLength());
163Assert.Equal(2, discovery.GetProperty("protocolVersion").GetInt32());
164Assert.Equal(3, discovery.GetProperty("capabilities").GetArrayLength());
272return await context.InvokeGuestCallbackAsync(args.GetProperty("callback").GetString()!,
278args.GetProperty("p0").GetString() + " guest\"").RootElement.Clone()));
304callbackId = args.GetProperty("callback").GetString()!;
305if (args.GetProperty("value").GetString() == "fail")
311new() { ["p0"] = args.GetProperty("value") });
315app.RegisterCallback("transform", args => Task.FromResult(args.GetProperty("p0")));
368callbackId = args.GetProperty("callback").GetString()!;
373var composition = new Composition(context.Client, args.GetProperty("composition"));
380app.RegisterCallback("transform", args => Task.FromResult(args.GetProperty("p0")));
514arguments.GetProperty("callback").GetString()!, new Dictionary<string, JsonElement> { ["p0"] = arguments.GetProperty("declaration") }));
522Assert.Equal(resource.Handle.GetRawText(), arguments.GetProperty("p0").GetRawText());
523var original = new DeclaredResource(app, arguments.GetProperty("p0"));
Aspire.Hosting.Native.Server (3)
Aspire.Hosting.PostgreSQL.Tests (33)
AddPostgresTests.cs (33)
532var servers = document.RootElement.GetProperty("Servers");
535Assert.Equal(pg1.Resource.Name, servers.GetProperty("1").GetProperty("Name").GetString());
536Assert.Equal("Servers", servers.GetProperty("1").GetProperty("Group").GetString());
537Assert.Equal("mypostgres1", servers.GetProperty("1").GetProperty("Host").GetString());
538Assert.Equal(5432, servers.GetProperty("1").GetProperty("Port").GetInt32());
539Assert.Equal("postgres", servers.GetProperty("1").GetProperty("Username").GetString());
540Assert.Equal("prefer", servers.GetProperty("1").GetProperty("SSLMode").GetString());
541Assert.Equal("postgres", servers.GetProperty("1").GetProperty("MaintenanceDB").GetString());
543Assert.Equal($"echo '{pg1.Resource.PasswordParameter.Value}'", servers.GetProperty("1").GetProperty("PasswordExecCommand").GetString());
547Assert.Equal(pg2.Resource.Name, servers.GetProperty("2").GetProperty("Name").GetString());
548Assert.Equal("Servers", servers.GetProperty("2").GetProperty("Group").GetString());
549Assert.Equal("mypostgres2", servers.GetProperty("2").GetProperty("Host").GetString());
550Assert.Equal(5432, servers.GetProperty("2").GetProperty("Port").GetInt32());
551Assert.Equal("myuser", servers.GetProperty("2").GetProperty("Username").GetString());
552Assert.Equal("prefer", servers.GetProperty("2").GetProperty("SSLMode").GetString());
553Assert.Equal("postgres", servers.GetProperty("2").GetProperty("MaintenanceDB").GetString());
555Assert.Equal($"echo '{pg2.Resource.PasswordParameter.Value}'", servers.GetProperty("2").GetProperty("PasswordExecCommand").GetString());
Aspire.Hosting.Radius.Tests (5)
Aspire.Hosting.RemoteHost.Tests (48)
CodeGeneration\ApiReferenceExportTests.cs (46)
37Assert.Equal(1, export.GetProperty("schemaVersion").GetInt32());
38Assert.Equal("typescript", export.GetProperty("language").GetString());
39Assert.Equal("Aspire.Hosting", export.GetProperty("package").GetProperty("name").GetString());
40Assert.Equal("13.5.0", export.GetProperty("package").GetProperty("version").GetString());
42var modules = export.GetProperty("modules").EnumerateArray().ToList();
45var items = modules.SelectMany(module => module.GetProperty("items").EnumerateArray()).ToList();
51$@"^(export (interface|enum|namespace) |function ){Regex.Escape(item.GetProperty("name").GetString()!)}\b",
52item.GetProperty("declaration").GetString()!));
54Assert.NotEmpty(export.GetProperty("declarations").EnumerateArray());
66var declarationOwners = export.GetProperty("declarations").EnumerateArray()
67.Select(declaration => declaration.GetProperty("owningAssembly").GetString())
70var items = export.GetProperty("modules").EnumerateArray()
71.SelectMany(module => module.GetProperty("items").EnumerateArray())
78.Where(item => item.GetProperty("kind").GetString() != "augmentation")
79.Select(item => item.GetProperty("owningAssembly").GetString())
85items.Where(item => item.GetProperty("kind").GetString() == "augmentation"),
88Assert.StartsWith("augmentation:", item.GetProperty("id").GetString(), StringComparison.Ordinal);
89Assert.NotEqual("Aspire.Hosting", item.GetProperty("owningAssembly").GetString());
147Assert.Equal("Contoso.Aspire.MetaPackage", export.GetProperty("package").GetProperty("name").GetString());
149var ownedItemOwners = export.GetProperty("modules").EnumerateArray()
150.SelectMany(module => module.GetProperty("items").EnumerateArray())
151.Where(item => item.GetProperty("kind").GetString() != "augmentation")
152.Select(item => item.GetProperty("owningAssembly").GetString())
180Assert.Equal(1, export.GetProperty("schemaVersion").GetInt32());
181Assert.Equal("go", export.GetProperty("language").GetString());
182Assert.Equal("Aspire.Hosting", export.GetProperty("package").GetProperty("name").GetString());
183Assert.Equal("13.5.0", export.GetProperty("package").GetProperty("version").GetString());
185var items = export.GetProperty("modules").EnumerateArray()
186.SelectMany(module => module.GetProperty("items").EnumerateArray())
193$@"^(type|var|func) {Regex.Escape(item.GetProperty("name").GetString()!)}\b",
194item.GetProperty("declaration").GetString()!));
198var builder = Assert.Single(items, item => item.GetProperty("id").GetString() == "interface:DistributedApplicationBuilder");
200builder.GetProperty("members").EnumerateArray(),
201member => member.GetProperty("declaration").GetString() == "Build() (DistributedApplication, error)");
203Assert.NotEmpty(export.GetProperty("declarations").EnumerateArray());
213var items = export.GetProperty("modules").EnumerateArray()
214.SelectMany(module => module.GetProperty("items").EnumerateArray())
218items.Where(item => item.GetProperty("kind").GetString() != "augmentation"),
219item => Assert.Equal("Aspire.Hosting", item.GetProperty("owningAssembly").GetString()));
221items.Where(item => item.GetProperty("kind").GetString() == "augmentation"),
222item => Assert.StartsWith("augmentation:", item.GetProperty("id").GetString(), StringComparison.Ordinal));
Aspire.Hosting.Sdk.Tests (7)
Aspire.Hosting.Seq.Tests (4)
Aspire.Hosting.Tests (90)
WithTerminalTests.cs (14)
535Assert.Equal(TerminalHostMetadata.CurrentSchemaVersion, root.GetProperty("schemaVersion").GetInt32());
536Assert.Equal(host.Layout.ReplicaId, root.GetProperty("replicaId").GetString());
537Assert.Equal("myapp", root.GetProperty("resourceName").GetString());
538Assert.Equal(0, root.GetProperty("replicaIndex").GetInt32());
539Assert.Equal(Environment.ProcessId, root.GetProperty("appHostPid").GetInt32());
542root.GetProperty("appHostProcessIdentity").GetInt64());
545root.GetProperty("appHostProcessScopeId").GetString());
548root.GetProperty("appHostBootId").GetString());
549Assert.Equal(137, root.GetProperty("columns").GetInt32());
550Assert.Equal(41, root.GetProperty("rows").GetInt32());
551Assert.Equal(host.Layout.ControlUdsPath, root.GetProperty("controlSocketPath").GetString());
552Assert.Equal(host.Layout.ConsumerUdsPath, root.GetProperty("consumerSocketPath").GetString());
553Assert.False(string.IsNullOrEmpty(root.GetProperty("appHostPath").GetString()));
554Assert.NotEqual(default, root.GetProperty("createdAtUtc").GetDateTime());
Aspire.Templates.Tests (1)
Aspire.TerminalHost.Tests (4)
Aspire.TestTools (17)
Aspire.Tray.Tests (1)
dotnet-aot (7)
dotnet-openapi (1)
GenerateTemplateManifest (10)
Infrastructure.Tests (244)
ResourceGeneratorMetadataTests.cs (21)
101var items = document.RootElement.GetProperty("Items");
102var resources = items.GetProperty("EmbeddedResource").EnumerateArray().ToArray();
103Assert.Equal(neutralResources.Concat(otherResources), resources.Select(item => item.GetProperty("Identity").GetString()));
106var name = Path.GetFileNameWithoutExtension(resource.GetProperty("Identity").GetString()!);
107Assert.Equal(generator, resource.GetProperty("Generator").GetString());
108Assert.Equal($"{name}.Designer.cs", resource.GetProperty("LastGenOutput").GetString());
109Assert.Equal("Designer", resource.GetProperty("SubType").GetString());
110Assert.Equal("Resx", resource.GetProperty("XlfSourceFormat").GetString());
111Assert.Equal("EmbeddedResource", resource.GetProperty("XlfOutputItem").GetString());
119Assert.Equal(Path.Combine(resourceDirectory, "Linked.resx"), resources[^1].GetProperty("Link").GetString());
120Assert.Equal("Shared.Linked.resources", resources[^1].GetProperty("LogicalName").GetString());
122var compileItems = items.GetProperty("Compile").EnumerateArray().ToArray();
123Assert.Equal(designers.Concat(otherSources), compileItems.Select(item => item.GetProperty("Identity").GetString()));
126var name = Path.GetFileNameWithoutExtension(Path.GetFileNameWithoutExtension(designer.GetProperty("Identity").GetString()!));
127Assert.Equal($"{name}.resx", designer.GetProperty("DependentUpon").GetString());
128Assert.Equal("True", designer.GetProperty("DesignTime").GetString());
129Assert.Equal("True", designer.GetProperty("AutoGen").GetString());
133if (sourceItem.GetProperty("Identity").GetString() == settingsDesignerPath)
135Assert.Equal("Settings.settings", sourceItem.GetProperty("DependentUpon").GetString());
136Assert.Equal("True", sourceItem.GetProperty("DesignTime").GetString());
137Assert.Equal("True", sourceItem.GetProperty("AutoGen").GetString());
WorkflowScripts\AutoRerunTransientCiFailuresTests.cs (139)
83JsonElement analysis = result.GetProperty("analysis");
84Assert.Equal("pull-request", analysis.GetProperty("policy").GetString());
85Assert.False(analysis.GetProperty("forceRerunAll").GetBoolean());
86Assert.True(analysis.GetProperty("executionEligible").GetBoolean());
88analysis.GetProperty("retryableJobs").EnumerateArray(),
89job => Assert.Equal("Build packages", job.GetProperty("name").GetString()),
90job => Assert.Equal("Build packages 2", job.GetProperty("name").GetString()));
92result.GetProperty("requests").EnumerateArray(),
93r => Assert.Equal("GET /repos/{owner}/{repo}/issues/{issue_number}", r.GetProperty("route").GetString()),
94r => Assert.Equal("GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs", r.GetProperty("route").GetString()),
95r => Assert.Equal("GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs", r.GetProperty("route").GetString()),
96r => Assert.Equal("GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations", r.GetProperty("route").GetString()),
97r => Assert.Equal("GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations", r.GetProperty("route").GetString()));
124Assert.False(result.GetProperty("analysis").GetProperty("executionEligible").GetBoolean());
125Assert.Empty(result.GetProperty("requests").EnumerateArray());
127result.GetProperty("messages").EnumerateArray(),
130result.GetProperty("events").EnumerateArray(),
131e => e.GetProperty("type").GetString() == "raw" &&
132e.GetProperty("text").GetString()?.Contains("attempt", StringComparison.OrdinalIgnoreCase) is true);
170Assert.Equal("pull-request", result.GetProperty("analysis").GetProperty("policy").GetString());
171Assert.Equal(expectedExecution, result.GetProperty("analysis").GetProperty("executionEligible").GetBoolean());
173result.GetProperty("analysisRequests").EnumerateArray(),
174request => Assert.Equal("getWorkflowRun", request.GetProperty("route").GetString()),
175request => Assert.Equal("GET /repos/{owner}/{repo}/issues/{issue_number}", request.GetProperty("route").GetString()));
178result.GetProperty("requests").EnumerateArray().Count(r =>
179r.GetProperty("route").GetString() == "POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs"));
210Assert.False(result.GetProperty("analysis").GetProperty("executionEligible").GetBoolean());
212result.GetProperty("requests").EnumerateArray(),
213request => request.GetProperty("route").GetString() ==
216result.GetProperty("events").EnumerateArray(),
217e => e.GetProperty("type").GetString() == "heading" &&
218e.GetProperty("text").GetString() == "Rerun skipped");
220result.GetProperty("events").EnumerateArray(),
221e => e.GetProperty("type").GetString() == "raw" &&
222e.GetProperty("text").GetString()?.Contains(
269JsonElement analysis = result.GetProperty("analysis");
270Assert.Equal("main", analysis.GetProperty("policy").GetString());
271Assert.False(analysis.GetProperty("forceRerunAll").GetBoolean());
272Assert.True(analysis.GetProperty("executionEligible").GetBoolean());
274result.GetProperty("analysisRequests").EnumerateArray(),
275r => Assert.Equal("GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs", r.GetProperty("route").GetString()),
276r => Assert.Equal("GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations", r.GetProperty("route").GetString()));
278result.GetProperty("requests").EnumerateArray().Skip(2),
279r => Assert.Equal("GET /repos/{owner}/{repo}/actions/runs/{run_id}", r.GetProperty("route").GetString()),
280r => Assert.Equal("GET /repos/{owner}/{repo}/git/ref/{ref}", r.GetProperty("route").GetString()),
281r => Assert.Equal("GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs", r.GetProperty("route").GetString()),
282r => Assert.Equal("GET /repos/{owner}/{repo}/git/ref/{ref}", r.GetProperty("route").GetString()),
283r => Assert.Equal("GET /repos/{owner}/{repo}/actions/runs/{run_id}", r.GetProperty("route").GetString()),
284r => Assert.Equal("POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs", r.GetProperty("route").GetString()));
324Assert.False(result.GetProperty("analysis").GetProperty("executionEligible").GetBoolean());
326result.GetProperty("messages").EnumerateArray(),
331result.GetProperty("messages").EnumerateArray(),
334result.GetProperty("events").EnumerateArray(),
335e => e.GetProperty("type").GetString() == "heading" &&
336e.GetProperty("text").GetString() == "Rerun skipped");
396Assert.Equal("false", result.GetProperty("outputs").GetProperty("rerun_execution_eligible").GetString());
398result.GetProperty("requests").EnumerateArray(),
399request => Assert.Equal("getWorkflowRun", request.GetProperty("route").GetString()));
401result.GetProperty("events").EnumerateArray(),
402e => e.GetProperty("type").GetString() == "raw" &&
403e.GetProperty("text").GetString()?.Contains("completed failed CI run", StringComparison.Ordinal) is true);
437Assert.True(result.GetProperty("analysis").GetProperty("executionEligible").GetBoolean());
439result.GetProperty("requests").EnumerateArray(),
440request => Assert.Equal("GET /repos/{owner}/{repo}/issues/{issue_number}", request.GetProperty("route").GetString()),
441request => Assert.Equal("GET /repos/{owner}/{repo}/issues/{issue_number}", request.GetProperty("route").GetString()),
442request => Assert.Equal("GET /repos/{owner}/{repo}/actions/runs/{run_id}", request.GetProperty("route").GetString()),
443request => Assert.Equal("GET /repos/{owner}/{repo}/pulls/{pull_number}", request.GetProperty("route").GetString()));
445result.GetProperty("messages").EnumerateArray(),
448result.GetProperty("events").EnumerateArray(),
449e => e.GetProperty("type").GetString() == "raw" &&
450e.GetProperty("text").GetString() == "The associated pull request is closed or no longer points to the failed commit. No jobs were rerun.");
498Assert.Equal(15110, headRequest.Payload.GetProperty("pull_number").GetInt32());
549result.GetProperty("requests").EnumerateArray(),
550request => request.GetProperty("route").GetString() ==
553result.GetProperty("events").EnumerateArray(),
554e => e.GetProperty("type").GetString() == "raw" &&
555e.GetProperty("text").GetString()?.Contains("advanced from attempt 3 to attempt 4", StringComparison.Ordinal) is true);
557result.GetProperty("messages").EnumerateArray(),
591Assert.False(result.GetProperty("analysis").GetProperty("executionEligible").GetBoolean());
593result.GetProperty("requests").EnumerateArray(),
594request => request.GetProperty("route").GetString() ==
597result.GetProperty("events").EnumerateArray(),
598e => e.GetProperty("type").GetString() == "raw" &&
599e.GetProperty("text").GetString()?.Contains("No associated pull request", StringComparison.Ordinal) is true);
1245JsonElement analysis = result.GetProperty("analysis");
1246Assert.Equal("main", analysis.GetProperty("policy").GetString());
1247Assert.False(analysis.GetProperty("executionEligible").GetBoolean());
1248Assert.Empty(analysis.GetProperty("retryableJobs").EnumerateArray());
1250result.GetProperty("analysisRequests").GetArrayLength(),
1251result.GetProperty("requests").GetArrayLength());
1622Assert.Equal("radical:conditional-test-runs", request.Payload.GetProperty("head").GetString());
1623Assert.Equal("all", request.Payload.GetProperty("state").GetString());
1692Assert.Equal(1, result.Requests[0].Payload.GetProperty("page").GetInt32());
1693Assert.Equal(2, result.Requests[1].Payload.GetProperty("page").GetInt32());
1998string commentBody = commentRequest.Payload.GetProperty("body").GetString()!;
2150Assert.Equal("dotnet", request.Payload.GetProperty("owner").GetString());
2151Assert.Equal("aspire", request.Payload.GetProperty("repo").GetString());
2152Assert.Equal(15110, request.Payload.GetProperty("issue_number").GetInt32());
2157Assert.Equal(123, request.Payload.GetProperty("run_id").GetInt32());
2162Assert.Equal(15110, request.Payload.GetProperty("pull_number").GetInt32());
2167Assert.Equal(123, request.Payload.GetProperty("run_id").GetInt32());
2172Assert.Equal(123, request.Payload.GetProperty("run_id").GetInt32());
2177Assert.Equal(15110, request.Payload.GetProperty("issue_number").GetInt32());
2180request.Payload.GetProperty("body").GetString());
2202Assert.Equal("Job", tableEvent.Rows[0][0].GetProperty("data").GetString());
2203Assert.Equal("Reason", tableEvent.Rows[0][1].GetProperty("data").GetString());
2242Assert.Equal(15110, request.Payload.GetProperty("issue_number").GetInt32());
2301Assert.Equal("not-requested", result.ReturnValue.GetProperty("outcome").GetString());
2302Assert.Equal("main-sha-changed", result.ReturnValue.GetProperty("reason").GetString());
2317Assert.Equal("superseded", result.ReturnValue.GetProperty("reason").GetString());
2350Assert.Equal("not-requested", result.ReturnValue.GetProperty("outcome").GetString());
2351Assert.Equal("invalid-main-run-list", result.ReturnValue.GetProperty("reason").GetString());
2364Assert.Equal("attempt-changed", result.ReturnValue.GetProperty("reason").GetString());
2383Assert.Equal("attempt-cap-reached", result.ReturnValue.GetProperty("reason").GetString());
2399Assert.Equal("requested", result.ReturnValue.GetProperty("outcome").GetString());
2400Assert.Equal("eligible", result.ReturnValue.GetProperty("reason").GetString());
2416Assert.Equal("not-requested", result.ReturnValue.GetProperty("outcome").GetString());
2417Assert.Equal("main-sha-changed", result.ReturnValue.GetProperty("reason").GetString());
2438Assert.Equal("not-requested", result.ReturnValue.GetProperty("outcome").GetString());
2439Assert.Equal("attempt-changed", result.ReturnValue.GetProperty("reason").GetString());
2455Assert.Equal("not-requested", result.ReturnValue.GetProperty("outcome").GetString());
2456Assert.Equal("invalid-live-run", result.ReturnValue.GetProperty("reason").GetString());
2478Assert.Equal("requested", result.ReturnValue.GetProperty("outcome").GetString());
2508Assert.Equal(expectedReasons[i], result.ReturnValue.GetProperty("reason").GetString());
2528Assert.Equal("failed", result.ReturnValue.GetProperty("outcome").GetString());
2529Assert.Equal("request-failed", result.ReturnValue.GetProperty("reason").GetString());
2550Assert.Equal("invalid-live-run", result.ReturnValue.GetProperty("reason").GetString());
2637foreach (JsonElement rule in root.GetProperty("testFailurePatterns").EnumerateArray())
2642foreach (JsonElement rule in root.GetProperty("jobFailurePatterns").EnumerateArray())
2671ExtractRegexPatterns(root.GetProperty("testFailurePatterns"), regexPatterns);
2672ExtractRegexPatterns(root.GetProperty("jobFailurePatterns"), regexPatterns);
Microsoft.AspNetCore.Components.Endpoints (3)
Microsoft.Build (3)
Microsoft.CodeAnalysis.Workspaces.MSBuild (3)
Microsoft.Deployment.DotNet.Releases (6)
Microsoft.DotNet.ProjectTools (1)
Microsoft.Extensions.AI.Abstractions.Tests (24)
Microsoft.Extensions.AI.Evaluation.Reporting.Tests (10)
Microsoft.Extensions.AI.Evaluation.Safety (5)
Microsoft.Extensions.AI.OpenAI.Tests (10)
Microsoft.Extensions.AI.Tests (16)
Microsoft.Extensions.Documents.Abstractions.Tests (7)
Microsoft.ML.Tokenizers.Tests (2)
Microsoft.TestPlatform.CommunicationUtilities (7)
NativeIntegrations.Contracts (6)
NativeIntegrations.Redis.Contracts (18)
artifacts\obj\NativeIntegrations.Redis.Contracts\Debug\provider-contract\ProviderContract.g.cs (18)
17var result = await global::NativeIntegrations.Redis.RedisExtensions.AddRedis(new global::Aspire.Hosting.Native.Client.Composition(context.Client, args.GetProperty("composition")), args.GetProperty("name").GetString()!, new global::Aspire.Hosting.Native.Client.DeclaredValue(context.Client, args.GetProperty("password")), context.CancellationToken).ConfigureAwait(false);
22var result = context.ReadResource<global::NativeIntegrations.Redis.RedisResource>(args.GetProperty("context")).GetDeclaration();
27var result = context.ReadResource<global::NativeIntegrations.Redis.RedisResource>(args.GetProperty("context")).GetConnection();
32await context.ReadResource<global::NativeIntegrations.Redis.RedisResource>(args.GetProperty("context")).Initialize(new global::Aspire.Hosting.Native.Client.ResourceLifecycleScope(context.Client, args.GetProperty("scope")), context.CancellationToken).ConfigureAwait(false);
37await context.ReadResource<global::NativeIntegrations.Redis.RedisResource>(args.GetProperty("context")).Allocated(new global::Aspire.Hosting.Native.Client.ResourceLifecycleScope(context.Client, args.GetProperty("scope")), context.CancellationToken).ConfigureAwait(false);
42await context.ReadResource<global::NativeIntegrations.Redis.RedisResource>(args.GetProperty("context")).Ready(new global::Aspire.Hosting.Native.Client.ResourceLifecycleScope(context.Client, args.GetProperty("scope")), context.CancellationToken).ConfigureAwait(false);
47await context.ReadResource<global::NativeIntegrations.Redis.RedisResource>(args.GetProperty("context")).Retiring(new global::Aspire.Hosting.Native.Client.ResourceLifecycleScope(context.Client, args.GetProperty("scope")), context.CancellationToken).ConfigureAwait(false);
52var result = await context.ReadResource<global::NativeIntegrations.Redis.RedisResource>(args.GetProperty("context")).WithDataVolume(args.GetProperty("name").GetString()!).ConfigureAwait(false);
57var result = await context.ReadResource<global::NativeIntegrations.Redis.RedisResource>(args.GetProperty("context")).WithReference(new global::Aspire.Hosting.Native.Client.DeclaredResource(context.Client, args.GetProperty("consumer")), args.GetProperty("environmentName").GetString()!).ConfigureAwait(false);