/// <summary>
        /// Orchestrator function that runs a CNCF Serverless workflow.
        /// </summary>
        public static Task <JToken> DurableWorkflowRunner(IDurableOrchestrationContext context)
        {
            var args = context.GetInput <StartWorkflowArgs>();
            var host = new DurableFunctionsHost(context, args.TelemetryUri);

            return(StateMachineRunner.RunAsync(args.Definition, host, args.Input, args.Actions));
        }
        public async Task HelloWorld()
        {
            var definition = File.ReadAllText("ExampleWorkflows//helloworld.json");

            var workflow = JsonConvert.DeserializeObject <StateMachine>(definition);

            var json = await StateMachineRunner.RunAsync(workflow, TheHost);

            Assert.IsNotNull(json);
            Assert.AreEqual(JTokenType.Object, json.Type);
            Assert.IsTrue(((JObject)json).ContainsKey("result"));
            Assert.AreEqual("Hello World!", json["result"].Value <string>());
        }