public void TestCreate_CreatesNewTask() { Func <object, string> f = o => "new result"; Task <object> inputTask = Task.FromResult(new object()); AsyncProperty <string> result = AsyncProperty.Create(inputTask, f); Assert.AreNotEqual(inputTask, result.ActualTask); }
public async Task TestCreate_SetsResultantValue() { const string expectedResult = "Expected Result"; AsyncProperty <string> result = AsyncProperty.Create( Task.FromResult(new object()), o => expectedResult); await result.SafeTask; Assert.AreEqual(expectedResult, result.Value); }
public UserAccountViewModel(IUserAccount userAccount) { UserAccount = userAccount; AccountName = userAccount.AccountName; Task <Person> personTask; try { IDataSourceFactory dataSourceFactory = DataSourceFactory.Default; IGPlusDataSource dataSource = dataSourceFactory.CreatePlusDataSource(userAccount.GetGoogleCredential()); personTask = dataSource.GetProfileAsync(); } catch (Exception) { personTask = Task.FromResult <Person>(null); } // TODO: Show the default image while it is being loaded. ProfilePictureAsync = AsyncProperty.Create(personTask, x => x?.Image.Url); NameAsync = AsyncProperty.Create(personTask, x => x?.DisplayName, Resources.UiLoadingMessage); }