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 ParseCloudCodeController(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 ParseCloudCodeController(mockRunner.Object);
      return controller.CallFunctionAsync<string>("someFunction", null, null, CancellationToken.None).ContinueWith(t => {
        Assert.True(t.IsFaulted);
        Assert.IsFalse(t.IsCanceled);
      });
    }
        public Task TestEmptyCallFunction()
        {
            var response   = new Tuple <HttpStatusCode, IDictionary <string, object> >(HttpStatusCode.Accepted, null);
            var mockRunner = CreateMockRunner(response);

            var controller = new ParseCloudCodeController(mockRunner.Object);

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

            ParseCloudCodeController controller = new ParseCloudCodeController(mockRunner.Object);

            return(controller.CallFunctionAsync <string>("someFunction", null, null, CancellationToken.None).ContinueWith(t =>
            {
                Assert.IsFalse(t.IsFaulted);
                Assert.IsFalse(t.IsCanceled);
                Assert.AreEqual("gogo", t.Result);
            }));
        }
    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 ParseCloudCodeController(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"]);
      });
    }