public static OrchestrationInstance FunctionTest( ARMOrchestartionFixture fixture, string filename, Dictionary <string, string> result, string managementGroupId = null) { var(instance, taskResult) = FunctionTestNotCheckResult(fixture, filename, managementGroupId); var outputString = taskResult.Content; var templateString = TestHelper.GetFunctionInputContent(filename); using var templateDoc = JsonDocument.Parse(templateString); using var outputDoc = JsonDocument.Parse(outputString); var outputRoot = outputDoc.RootElement.GetProperty("properties").GetProperty("outputs"); if (templateDoc.RootElement.TryGetProperty("outputs", out JsonElement outputDefineElement)) { List <string> child = new List <string>(); foreach (var item in outputDefineElement.EnumerateObject()) { Assert.True(outputRoot.TryGetProperty(item.Name, out JsonElement o), $"cannot find {item.Name} in output"); Assert.True(o.TryGetProperty("type", out JsonElement _type)); Assert.True(o.TryGetProperty("value", out JsonElement v)); if (v.ValueKind == JsonValueKind.String) { Assert.True(result[item.Name] == v.GetString(), $"{item.Name} test fail, Expected:{result[item.Name]},Actual:{v.GetString()}"); } else { Assert.True(result[item.Name] == v.GetRawText(), $"{item.Name} test fail, Expected:{result[item.Name]},Actual:{v.GetRawText()}"); } } } return(instance); }
public static (OrchestrationInstance, TaskResult) FunctionTestNotCheckResult( ARMOrchestartionFixture fixture, string filename, string managementGroupId = null) { var templateString = TestHelper.GetFunctionInputContent(filename); var deployment = fixture.ARMOrchestrationClient.Run(new DeploymentOrchestrationInput() { TemplateContent = templateString, Parameters = string.Empty, CorrelationId = Guid.NewGuid().ToString("N"), DeploymentName = filename.Replace('/', '-'), SubscriptionId = string.IsNullOrEmpty(managementGroupId) ? TestHelper.SubscriptionId : null, ManagementGroupId = managementGroupId, ResourceGroup = TestHelper.ResourceGroup, GroupId = Guid.NewGuid().ToString("N"), GroupType = "ResourceGroup", HierarchyId = "001002003004005", CreateByUserId = TestHelper.CreateByUserId, ApiVersion = "1.0", TenantId = TestHelper.TenantId, DeploymentId = Guid.NewGuid().ToString("N") }).Result; var instance = new OrchestrationInstance() { InstanceId = deployment.InstanceId, ExecutionId = deployment.ExecutionId }; TaskCompletionSource <string> t = new TaskCompletionSource <string>(); fixture.OrchestrationWorker.RegistOrchestrationCompletedAction((args) => { if (!args.IsSubOrchestration && args.InstanceId == instance.InstanceId) { t.SetResult(args.Result); } }); t.Task.Wait(); var reslut = DataConverter.Deserialize <TaskResult>(t.Task.Result); return(instance, reslut); }
public ARMOrchestrationClientTest(ARMOrchestartionFixture fixture) { this._Fixture = fixture; this._Client = this._Fixture.ServiceProvider.GetService<ARMOrchestrationClient>(); }