public async Task NavigateToMainViewFromNoPage() { var fixture = CreateRoutedViewHost(initialViewModel: null); var viewModel = await _navigationViewModel.Navigate(nameof(MainViewModel)); Assert.NotNull(viewModel); var currentPage = fixture.CurrentPage; Assert.NotNull(currentPage); Assert.IsType <MainView>(currentPage); Assert.IsType <MainViewModel>(currentPage.BindingContext); Assert.Equal(viewModel, currentPage.BindingContext); Assert.Equal("Main view", currentPage.Title); Assert.Equal(1, fixture.StackDepth); }
public async Task BeforeResolveCommand_cancels_when_other_navigation_is_happening(bool sameRouteNavigation, string route) { var originalRoute = sameRouteNavigation ? route : $"different_{route}"; var expected = sameRouteNavigation ? BeforeRouterResult.Ok(_ExpectedNewViewModel) : BeforeRouterResult.Cancel(); SetupRoute(originalRoute); SetupRoute(route); _NavigationViewModel.Navigate(originalRoute).DoNotWait(); var res = await _NavigationViewModel.BeforeResolveCommand.Execute(route); res.Should().BeEquivalentTo(expected); }