public async Task Given_graph_When_running_it_Then_receive_trace() { var testHttpclient = SetupTestHostAndClient(); var graphQlClient = new PolicyExampleGraphQLClient(testHttpclient); var client = graphQlClient.Client; var createLogicGraphCommand = new CreateLogicGraphCommand() { Id = "abc", Name = "new graph", ProvidedContexts = new List <string> { "a", "b", "c" } }; var res = await graphQlClient.Execute(createLogicGraphCommand); var graphId = res.LogicGraphId; var createLogicNodeCommand = new CreateLogicNodeCommand() { Id = "2", Name = "root node", LogicGraphId = graphId }; var nodeResult = await graphQlClient.Execute(createLogicNodeCommand); var runGraphCommand = new RunLogicGraphCommand() { Id = "3", LogicGraphId = graphId }; var runResult = await graphQlClient.Execute(runGraphCommand); runResult.RunReport.Trace.Should().NotBeNullOrEmpty(); }
public async Task Given_complex_graph_When_running_it_with_jint_script_real() { var client = new PolicyExampleGraphQLClient(new HttpClient()); var createLogicGraphResult = await client.Execute( new CreateLogicGraphCommand() { Id = "abc", Name = "new graph for run", ProvidedContexts = new List <string> { "a", "b", "c" } } ); var graphId = createLogicGraphResult.LogicGraphId; var rootNode = await client.CreateNode(graphId, "root node"); var aNode = await client.CreateNode(graphId, "A", rootNode.LogicNodeId); var bNode = await client.CreateNode(graphId, "B", rootNode.LogicNodeId, script : "flow.RedirectToChild(1)"); var aaNode = await client.CreateNode(graphId, "AA", aNode.LogicNodeId); var abNode = await client.CreateNode(graphId, "AB", aNode.LogicNodeId); var baNode = await client.CreateNode(graphId, "BA", bNode.LogicNodeId); var bbNode = await client.CreateNode(graphId, "BB", bNode.LogicNodeId); var runResult = await client.Execute(new RunLogicGraphCommand() { Id = "3", LogicGraphId = graphId }); runResult.RunReport.Trace.Select(t => t.Node.Name) .Should().Equal("root node", "A", "AA", "AB", "B", "BB", "BA"); }
public static async Task <CreateLogicNodeResult> CreateNode(this PolicyExampleGraphQLClient client, string graphId, string nodeName, string?parentId = null, string?script = null) { CreateScriptParams?scriptParams = null; if (script != null) { scriptParams = new CreateScriptParams() { Body = script, Language = "JavaScript" }; } return(await client.Execute(new CreateLogicNodeCommand() { Id = Guid.NewGuid().ToString(), LogicGraphId = graphId, Script = scriptParams, ParentNodeId = parentId, Name = nodeName })); }