public static async Task <TestDurableClient> StartOrchestratorAsync(
            this JobHost host,
            string functionName,
            object input,
            ITestOutputHelper output,
            string instanceId = null,
            bool useTaskHubFromAppSettings = false)
        {
            var startFunction = useTaskHubFromAppSettings ?
                                typeof(ClientFunctions).GetMethod(nameof(ClientFunctions.StartFunctionWithTaskHub)) :
                                typeof(ClientFunctions).GetMethod(nameof(ClientFunctions.StartFunction));
            var clientRef = new TestDurableClient[1];
            var args      = new Dictionary <string, object>
            {
                { "functionName", functionName },
                { "instanceId", instanceId },
                { "input", input },
                { "clientRef", clientRef },
            };

            await host.CallAsync(startFunction, args);

            TestDurableClient client = clientRef[0];

            output.WriteLine($"Started {functionName}, Instance ID = {client.InstanceId}");
            return(client);
        }
        public static async Task StartFunctionWithTaskHub(
            [DurableClient(TaskHub = "%TestTaskHub%")] IDurableClient client,
            string functionName,
            string instanceId,
            object input,
            TestDurableClient[] clientRef)
        {
            DateTime instanceCreationTime = DateTime.UtcNow;

            instanceId = await client.StartNewAsync(functionName, instanceId, input);

            clientRef[0] = new TestDurableClient(
                client,
                functionName,
                instanceId,
                instanceCreationTime);
        }