Esempio n. 1
0
        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);
        }