public Task TestCurrentSessionToken()
        {
            var storageController = new Mock <IStorageController>();
            var mockedStorage     = new Mock <IStorageDictionary <string, object> >();
            var controller        = new AVCurrentUserController(storageController.Object);

            storageController.Setup(c => c.LoadAsync()).Returns(Task.FromResult(mockedStorage.Object));

            return(controller.GetCurrentSessionTokenAsync(CancellationToken.None).OnSuccess(t => {
                Assert.IsNull(t.Result);

                // We should probably mock this.
                var userState = new MutableObjectState {
                    ServerData = new Dictionary <string, object>()
                    {
                        { "sessionToken", "randomString" }
                    }
                };
                var user = AVObject.CreateWithoutData <AVUser>(null);
                user.HandleFetchResult(userState);

                return controller.SetAsync(user, CancellationToken.None);
            }).Unwrap()
                   .OnSuccess(_ => controller.GetCurrentSessionTokenAsync(CancellationToken.None)).Unwrap()
                   .OnSuccess(t => {
                Assert.AreEqual("randomString", t.Result);
            }));
        }