public void TestListViewMenuOnItemSelectedNavigatesToNewPage([Values] MenuItemType start, [Values] MenuItemType end) { SelectedItemChangedEventArgs arg = new SelectedItemChangedEventArgs(new HomeMenuItem { Id = end, Title = "Title" }, 0); MainPage mainPage = new MainPageForTest(null); Page startPage = null; Type expected = null; switch (start) { case MenuItemType.Tests: startPage = new TestsPage(null, null, false); expected = typeof(TestsPage); break; case MenuItemType.About: startPage = new AboutPage(false); expected = typeof(AboutPage); break; default: Assert.Fail($" MenuItemType {start} is not supported by this test."); break; } switch (end) { case MenuItemType.Tests: expected = typeof(TestsPage); break; case MenuItemType.About: expected = typeof(AboutPage); break; default: Assert.Fail($" MenuItemType {end} is not supported by this test."); break; } mainPage.Detail = new NavigationPage(startPage); MenuPageForTest page = new MenuPageForTest(mainPage); Task task = page.InvokeListViewMenuOnItemSelected(this, arg); Assert.IsNotNull(task); task.Wait(); Page navPage = (mainPage.Detail as NavigationPage)?.RootPage; Assert.IsNotNull(navPage); Assert.AreEqual(expected, navPage.GetType()); }
public void TestListViewMenuOnItemSelectedWithRootPageNullReturnsImmediately() { SelectedItemChangedEventArgs arg = new SelectedItemChangedEventArgs(new HomeMenuItem { Id = MenuItemType.About, Title = "Title" }, 0); MenuPageForTest page = new MenuPageForTest(null); Task task = page.InvokeListViewMenuOnItemSelected(this, arg); Assert.IsNotNull(task); task.Wait(); }
public void TestListViewMenuOnItemSelectedWithArgsNotHomeMenuItemReturnsImmediately() { SelectedItemChangedEventArgs arg = new SelectedItemChangedEventArgs("Title", 0); MainPage mainPage = new MainPage(null, false); Page currentDetail = mainPage.Detail; Page navPage = (currentDetail as NavigationPage)?.RootPage; Assert.IsNotNull(navPage); Assert.IsTrue(navPage is TestsPage); MenuPageForTest page = new MenuPageForTest(mainPage); Task task = page.InvokeListViewMenuOnItemSelected(this, arg); Assert.IsNotNull(task); task.Wait(); Assert.AreSame(currentDetail, mainPage.Detail); }