public Task TestCallFunctionWithComplexType()
        {
            var responseDict = new Dictionary <string, object>()
            {
                { "result", new Dictionary <string, object>()
                  {
                      { "fosco", "ben" },
                      { "list", new List <object> {
                            1, 2, 3
                        } }
                  } }
            };
            var response   = new Tuple <HttpStatusCode, IDictionary <string, object> >(HttpStatusCode.Accepted, responseDict);
            var mockRunner = CreateMockRunner(response);

            var controller = new AVCloudCodeController(mockRunner.Object);

            return(controller.CallFunctionAsync <IDictionary <string, object> >("someFunction", null, null, CancellationToken.None).ContinueWith(t =>
            {
                Assert.IsFalse(t.IsFaulted);
                Assert.IsFalse(t.IsCanceled);
                Assert.IsInstanceOf <IDictionary <string, object> >(t.Result);
                Assert.AreEqual("ben", t.Result["fosco"]);
                Assert.IsInstanceOf <IList <object> >(t.Result["list"]);
            }));
        }
        public Task TestEmptyCallFunction()
        {
            var response   = new Tuple <HttpStatusCode, IDictionary <string, object> >(HttpStatusCode.Accepted, null);
            var mockRunner = CreateMockRunner(response);

            var controller = new AVCloudCodeController(mockRunner.Object);

            return(controller.CallFunctionAsync <string>("someFunction", null, null, CancellationToken.None).ContinueWith(t =>
            {
                Assert.True(t.IsFaulted);
                Assert.IsFalse(t.IsCanceled);
            }));
        }
        public Task TestCallFunctionWithWrongType()
        {
            var responseDict = new Dictionary<string, object>() {
            { "result", "gogo" }
              };
              var response = new Tuple<HttpStatusCode, IDictionary<string, object>>(HttpStatusCode.Accepted, responseDict);
              var mockRunner = CreateMockRunner(response);

              var controller = new AVCloudCodeController(mockRunner.Object);
              return controller.CallFunctionAsync<int>("someFunction", null, null, CancellationToken.None).ContinueWith(t => {
            Assert.True(t.IsFaulted);
            Assert.IsFalse(t.IsCanceled);
              });
        }
        public Task TestCallFunctionWithComplexType()
        {
            var responseDict = new Dictionary<string, object>() {
            { "result", new Dictionary<string, object>() {
              { "fosco", "ben" },
              { "list", new List<object> { 1, 2, 3 } }
            }}
              };
              var response = new Tuple<HttpStatusCode, IDictionary<string, object>>(HttpStatusCode.Accepted, responseDict);
              var mockRunner = CreateMockRunner(response);

              var controller = new AVCloudCodeController(mockRunner.Object);
              return controller.CallFunctionAsync<IDictionary<string, object>>("someFunction", null, null, CancellationToken.None).ContinueWith(t => {
            Assert.IsFalse(t.IsFaulted);
            Assert.IsFalse(t.IsCanceled);
            Assert.IsInstanceOf<IDictionary<string, object>>(t.Result);
            Assert.AreEqual("ben", t.Result["fosco"]);
            Assert.IsInstanceOf<IList<object>>(t.Result["list"]);
              });
        }