public async void Navigate_ToContentPage_ByName() { var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); var rootPage = new Xamarin.Forms.ContentPage(); ((IPageAware)navigationService).Page = rootPage; await navigationService.NavigateAsync("ContentPage"); Assert.True(rootPage.Navigation.ModalStack.Count == 1); Assert.IsType(typeof(ContentPageMock), rootPage.Navigation.ModalStack[0]); }
public void Navigate_ToUnregisteredPage_ByName() { Assert.ThrowsAsync<NullReferenceException>(async () => { var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); var rootPage = new Xamarin.Forms.ContentPage(); ((IPageAware)navigationService).Page = rootPage; await navigationService.NavigateAsync("UnregisteredPage"); Assert.True(rootPage.Navigation.ModalStack.Count == 0); }); }
public async void Navigate_FromMasterDetailPage_ToTabbedPage_IsNotPresented_FromViewModel() { var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); var rootPage = new MasterDetailPageEmptyMock(); ((IPageAware)navigationService).Page = rootPage; ((MasterDetailPageEmptyMockViewModel)rootPage.BindingContext).IsPresentedAfterNavigation = false; Assert.Null(rootPage.Detail); Assert.False(rootPage.IsPresented); await navigationService.NavigateAsync("TabbedPage"); Assert.IsType(typeof(TabbedPageMock), rootPage.Detail); Assert.False(rootPage.IsPresented); }
public async void Navigate_FromMasterDetailPage_ToTabbedPage_IsPresented() { var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); var rootPage = new MasterDetailPageMock(); ((IPageAware)navigationService).Page = rootPage; rootPage.IsPresentedAfterNavigation = true; Assert.IsType(typeof(ContentPageMock), rootPage.Detail); Assert.False(rootPage.IsPresented); await navigationService.NavigateAsync("TabbedPage"); Assert.IsType(typeof(TabbedPageMock), rootPage.Detail); Assert.True(rootPage.IsPresented); }
public async void DeepNavigate_ToMasterDetailPage_ToSamePage_ToTabbedPage() { var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); var rootPage = new Xamarin.Forms.ContentPage(); ((IPageAware)navigationService).Page = rootPage; await navigationService.NavigateAsync("MasterDetailPage/ContentPage/TabbedPage"); var masterDetail = rootPage.Navigation.ModalStack[0] as MasterDetailPageMock; Assert.NotNull(masterDetail); Assert.NotNull(masterDetail.Detail); Assert.IsType(typeof(ContentPageMock), masterDetail.Detail); var tabbedPage = masterDetail.Navigation.ModalStack[0] as TabbedPageMock; Assert.NotNull(tabbedPage); }
public async void Navigate_FromMasterDetailPage_ToSamePage() { var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); var rootPage = new MasterDetailPageMock(); ((IPageAware)navigationService).Page = rootPage; Assert.IsType(typeof(ContentPageMock), rootPage.Detail); await navigationService.NavigateAsync("TabbedPage"); var firstDetailPage = rootPage.Detail; Assert.IsType(typeof(TabbedPageMock), firstDetailPage); await navigationService.NavigateAsync("TabbedPage"); Assert.Equal(firstDetailPage, rootPage.Detail); }
public async void DeepNavigate_From_ContentPage_To_MasterDetailPage() { var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); var rootPage = new Xamarin.Forms.ContentPage(); ((IPageAware)navigationService).Page = rootPage; await navigationService.NavigateAsync("ContentPage/MasterDetailPage"); Assert.True(rootPage.Navigation.ModalStack.Count == 1); Assert.True(rootPage.Navigation.ModalStack[0].Navigation.ModalStack.Count == 1); }
public async void NavigateAsync_ToContentPage_ThenGoBack() { var pageMock = new ContentPageMock(); var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); ((IPageAware)navigationService).Page = pageMock; var rootPage = new NavigationPage(pageMock); Assert.IsType(typeof(ContentPageMock), rootPage.CurrentPage); await navigationService.NavigateAsync("TabbedPage"); Assert.True(rootPage.Navigation.NavigationStack.Count == 2); Assert.IsType(typeof(TabbedPageMock), rootPage.CurrentPage); await navigationService.GoBackAsync(); Assert.True(rootPage.Navigation.NavigationStack.Count == 1); Assert.IsType(typeof(ContentPageMock), rootPage.CurrentPage); }
public async void Navigate_ToCarouselPage_ByName_ViewModelHasINavigationAware() { var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); var rootPage = new Xamarin.Forms.ContentPage(); ((IPageAware)navigationService).Page = rootPage; await navigationService.NavigateAsync("CarouselPage"); Assert.True(rootPage.Navigation.ModalStack.Count == 1); var cPage = rootPage.Navigation.ModalStack[0] as CarouselPageMock; Assert.NotNull(cPage); var viewModel = cPage.BindingContext as CarouselPageMockViewModel; Assert.NotNull(viewModel); Assert.True(viewModel.OnNavigatedToCalled); }
public async void Navigate_ToContentPage_ViewModelHasIConfirmNavigation_False() { var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); var rootPage = new ContentPage() { BindingContext = new ContentPageMockViewModel() }; ((IPageAware)navigationService).Page = rootPage; var viewModel = rootPage.BindingContext as ContentPageMockViewModel; Assert.False(viewModel.OnConfirmNavigationCalled); var navParams = new NavigationParameters(); navParams.Add("canNavigate", false); await navigationService.NavigateAsync("ContentPage", navParams); Assert.True(viewModel.OnConfirmNavigationCalled); Assert.True(rootPage.Navigation.ModalStack.Count == 0); }
public async void Navigate_ToContentPage_ViewModelHasIConfirmNavigation_True() { var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); var rootPage = new Xamarin.Forms.ContentPage() { BindingContext = new ContentPageMockViewModel() }; ((IPageAware)navigationService).Page = rootPage; var viewModel = rootPage.BindingContext as ContentPageMockViewModel; Assert.False(viewModel.OnConfirmNavigationCalled); await navigationService.NavigateAsync("ContentPage"); Assert.True(rootPage.Navigation.ModalStack.Count == 1); Assert.NotNull(viewModel); Assert.True(viewModel.OnConfirmNavigationCalled); }
public async void Navigate_ToContentPage_PageHasIConfirmNavigation_True() { var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); var rootPage = new ContentPageMock(); ((IPageAware)navigationService).Page = rootPage; Assert.False(rootPage.OnConfirmNavigationCalled); await navigationService.NavigateAsync("ContentPage"); Assert.True(rootPage.OnConfirmNavigationCalled); Assert.True(rootPage.Navigation.ModalStack.Count == 1); }
public async void Navigate_ToContentPage_PageHasINavigationAware() { var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); var rootPage = new Xamarin.Forms.ContentPage(); ((IPageAware)navigationService).Page = rootPage; await navigationService.NavigateAsync("ContentPage"); Assert.True(rootPage.Navigation.ModalStack.Count == 1); var contentPage = rootPage.Navigation.ModalStack[0] as ContentPageMock; Assert.NotNull(contentPage); Assert.True(contentPage.OnNavigatedToCalled); var nextPageNavService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); ((IPageAware)nextPageNavService).Page = contentPage; await nextPageNavService.NavigateAsync("NavigationPage"); Assert.True(contentPage.OnNavigatedFromCalled); Assert.True(contentPage.Navigation.ModalStack.Count == 1); }
public async void Navigate_ToContentPage_ViewModelHasINavigationAware() { var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); var rootPage = new Xamarin.Forms.ContentPage(); ((IPageAware)navigationService).Page = rootPage; await navigationService.NavigateAsync("ContentPage"); Assert.True(rootPage.Navigation.ModalStack.Count == 1); Assert.IsType(typeof(ContentPageMock), rootPage.Navigation.ModalStack[0]); var viewModel = rootPage.Navigation.ModalStack[0].BindingContext as ContentPageMockViewModel; Assert.NotNull(viewModel); Assert.True(viewModel.OnNavigatedToCalled); var nextPageNavService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); ((IPageAware)nextPageNavService).Page = rootPage.Navigation.ModalStack[0]; await nextPageNavService.NavigateAsync("NavigationPage"); Assert.True(viewModel.OnNavigatedFromCalled); }
public async void DeepNavigate_ToCarouselPage_ToContentPage() { var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); var rootPage = new Xamarin.Forms.ContentPage(); ((IPageAware)navigationService).Page = rootPage; await navigationService.NavigateAsync("CarouselPage/ContentPage"); var tabbedPage = rootPage.Navigation.ModalStack[0] as CarouselPageMock; Assert.NotNull(tabbedPage); Assert.NotNull(tabbedPage.CurrentPage); Assert.IsType(typeof(ContentPageMock), tabbedPage.CurrentPage); }
public async void DeepNavigate_From_ContentPage_To_NavigationPageWithDifferentNavigationStack_ToContentPage() { var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); var rootPage = new Xamarin.Forms.ContentPage(); ((IPageAware)navigationService).Page = rootPage; await navigationService.NavigateAsync("ContentPage/NavigationPageWithStackNoMatch/ContentPage"); var navPage = rootPage.Navigation.ModalStack[0].Navigation.ModalStack[0]; Assert.True(navPage.Navigation.NavigationStack.Count == 1); }
public async void Navigate_ToContentPage_ByName_WithNavigationParameters() { var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); var rootPage = new Xamarin.Forms.ContentPage(); ((IPageAware)navigationService).Page = rootPage; var navParameters = new NavigationParameters(); navParameters.Add("id", 3); await navigationService.NavigateAsync("ContentPage", navParameters); Assert.True(rootPage.Navigation.ModalStack.Count == 1); Assert.IsType(typeof(ContentPageMock), rootPage.Navigation.ModalStack[0]); var viewModel = rootPage.Navigation.ModalStack[0].BindingContext as ContentPageMockViewModel; Assert.NotNull(viewModel); Assert.NotNull(viewModel.NavigatedToParameters); Assert.True(viewModel.NavigatedToParameters.Count > 0); Assert.Equal(3, viewModel.NavigatedToParameters["id"]); }