public void ConstructorSetsCorrectData() { // Arrange Func <Task <IEnumerable <object> > > loadAction = () => Task.FromResult(Enumerable.Empty <object>()); // Act var page = new UserSubPage("TITLE", loadAction, 123); // Assert Assert.AreEqual(123, page.Count); Assert.AreEqual("TITLE", page.Title); }
public void NotifyPropertyChangedIsImplementedCorrectly() { // Arrange Func <Task <IEnumerable <object> > > loadAction = () => Task.FromResult(Enumerable.Empty <object>()); var page = new UserSubPage("", loadAction, 0); var tester = new PropertyChangedTester(page); // Act tester.Test(nameof(UserSubPage.Dispatcher)); // Assert tester.Verify(); }
public void AsyncLoadCallsFunction() { // Arrange bool called = false; Func <Task <IEnumerable <object> > > loadAction = () => { called = true; return(Task.FromResult(Enumerable.Range(1, 2).Cast <object>())); }; var waitHandle = new ManualResetEventSlim(false); int loadChanges = 0; var page = new UserSubPage("", loadAction, 2) { Dispatcher = new SyncDispatcher() }; page.PropertyChanged += (s, e) => { if (e.PropertyName == nameof(UserSubPage.IsLoading)) { loadChanges++; if (loadChanges == 2) { waitHandle.Set(); } } }; // Act var items = page.Items; var firstCount = items.Count; waitHandle.Wait(1000); // Assert Assert.IsNotNull(items); Assert.AreEqual(0, firstCount); Assert.IsTrue(called); Assert.AreEqual(2, loadChanges); Assert.AreEqual(2, items.Count); }