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); })); }