private static TResult CallQueueTrigger <TResult>(object message, Type programType,
                                                          Action <TaskCompletionSource <TResult> > setTaskSource)
        {
            var account = new XFakeStorageAccount();
            var method  = programType.GetMethod("Run");

            Assert.NotNull(method);

            var result = FunctionalTest.Call <TResult>(account, programType, method, new Dictionary <string, object>
            {
                { "message", message }
            }, setTaskSource);

            return(result);
        }
        public void CloudStorageAccount_CanCall()
        {
            // Arrange
            CloudStorageAccount realAccount = CloudStorageAccount.DevelopmentStorageAccount;

            StorageAccount account = StorageAccount.New(realAccount);

            // Act
            var t      = typeof(CloudStorageAccountProgram);
            var result = FunctionalTest.Call <CloudStorageAccount>(
                account,
                t,
                t.GetMethod(nameof(CloudStorageAccountProgram.BindToCloudStorageAccount)),
                null, // args
                (s) => CloudStorageAccountProgram.TaskSource = s);

            // Assert
            Assert.NotNull(result);
            Assert.Same(realAccount, result);
        }