public void Navigate_ToUnregisteredPage_ByName() { var navigationService = new PageNavigationServiceMock(_container); var rootPage = new Xamarin.Forms.Page(); ((IPageAware)navigationService).Page = rootPage; navigationService.Navigate("UnregisteredPage"); Assert.True(rootPage.Navigation.ModalStack.Count == 0); }
public void NavigateAsync_ToContentPage_ByName() { var navigationService = new PageNavigationServiceMock(_container); var rootPage = new Xamarin.Forms.NavigationPage(); ((IPageAware)navigationService).Page = rootPage; navigationService.Navigate("ContentPage", useModalNavigation: false); Assert.True(rootPage.Navigation.NavigationStack.Count == 1); Assert.IsType(typeof(ContentPageMock), rootPage.Navigation.NavigationStack[0]); }
public async void Navigate_ToContentPage_ByName() { var navigationService = new PageNavigationServiceMock(_container); var rootPage = new Xamarin.Forms.ContentPage(); ((IPageAware)navigationService).Page = rootPage; await navigationService.Navigate("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 void DeepNavigate_ToMasterDetailPage_ToSamePage_ToTabbedPage() { var navigationService = new PageNavigationServiceMock(_container); var rootPage = new Xamarin.Forms.Page(); ((IPageAware)navigationService).Page = rootPage; navigationService.Navigate("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 void Navigate_FromMasterDetailPage_ToSamePage() { var navigationService = new PageNavigationServiceMock(_container); var rootPage = new MasterDetailPageMock(); ((IPageAware)navigationService).Page = rootPage; Assert.IsType(typeof(ContentPageMock), rootPage.Detail); navigationService.Navigate("TabbedPage"); var firstDetailPage = rootPage.Detail; Assert.IsType(typeof(TabbedPageMock), firstDetailPage); navigationService.Navigate("TabbedPage"); Assert.Equal(firstDetailPage, rootPage.Detail); }
public void IPageAware_NullByDefault() { var navigationService = new PageNavigationServiceMock(_container); var page = ((IPageAware)navigationService).Page; Assert.Null(page); }
public void Navigate_ToMasterDetailPage_ViewModelHasINavigationAware() { var navigationService = new PageNavigationServiceMock(_container); var rootPage = new Xamarin.Forms.Page(); ((IPageAware)navigationService).Page = rootPage; navigationService.Navigate("MasterDetailPage"); Assert.True(rootPage.Navigation.ModalStack.Count == 1); var mdPage = rootPage.Navigation.ModalStack[0] as MasterDetailPage; Assert.NotNull(mdPage); var viewModel = mdPage.BindingContext as MasterDetailPageMockViewModel; Assert.NotNull(viewModel); Assert.True(viewModel.OnNavigatedToCalled); Assert.NotNull(mdPage.Detail); Assert.IsType(typeof(ContentPageMock), mdPage.Detail); var childViewModel = mdPage.Detail.BindingContext as ContentPageMockViewModel; Assert.NotNull(childViewModel); Assert.True(childViewModel.OnNavigatedToCalled); }
public async void DeepNavigate_ToTabbedPage_ToPage() { var navigationService = new PageNavigationServiceMock(_container); var rootPage = new Xamarin.Forms.ContentPage(); ((IPageAware)navigationService).Page = rootPage; await navigationService.Navigate("TabbedPage/PageMock"); var tabbedPage = rootPage.Navigation.ModalStack[0] as TabbedPageMock; Assert.NotNull(tabbedPage); Assert.NotNull(tabbedPage.CurrentPage); Assert.IsType(typeof(PageMock), tabbedPage.CurrentPage); }
public async void Navigate_FromMasterDetailPage() { var navigationService = new PageNavigationServiceMock(_container); var rootPage = new MasterDetailPageMock(); ((IPageAware)navigationService).Page = rootPage; Assert.IsType(typeof(ContentPageMock), rootPage.Detail); await navigationService.Navigate("TabbedPage"); Assert.IsType(typeof(TabbedPageMock), rootPage.Detail); await navigationService.Navigate("CarouselPage"); Assert.IsType(typeof(CarouselPageMock), rootPage.Detail); }
public async void DeepNavigate_From_ContentPage_To_EmptyNavigationPage_ToContentPage() { var navigationService = new PageNavigationServiceMock(_container); var rootPage = new Xamarin.Forms.ContentPage(); ((IPageAware)navigationService).Page = rootPage; await navigationService.Navigate("ContentPage/NavigationPage-Empty/ContentPage"); var navPage = rootPage.Navigation.ModalStack[0].Navigation.ModalStack[0]; Assert.True(navPage.Navigation.NavigationStack.Count == 1); }
public async void NavigateAsync_ToContentPage_ThenGoBack() { var pageMock = new ContentPageMock(); var navigationService = new PageNavigationServiceMock(_container); ((IPageAware)navigationService).Page = pageMock; var rootPage = new NavigationPage(pageMock); Assert.IsType(typeof(ContentPageMock), rootPage.CurrentPage); await navigationService.Navigate("TabbedPage"); Assert.True(rootPage.Navigation.NavigationStack.Count == 2); Assert.IsType(typeof(TabbedPageMock), rootPage.CurrentPage); await navigationService.GoBack(); Assert.True(rootPage.Navigation.NavigationStack.Count == 1); Assert.IsType(typeof(ContentPageMock), rootPage.CurrentPage); }
public async void Navigate_ToContentPage_ByRelativeUri() { var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); var rootPage = new Xamarin.Forms.ContentPage(); ((IPageAware)navigationService).Page = rootPage; await navigationService.NavigateAsync(new Uri("ContentPage", UriKind.Relative)); Assert.True(rootPage.Navigation.ModalStack.Count == 1); Assert.IsType(typeof(ContentPageMock), rootPage.Navigation.ModalStack[0]); }
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 void Navigate_ToContentPage_ViewModelHasIConfirmNavigation_True() { var navigationService = new PageNavigationServiceMock(_container); var rootPage = new Page() { BindingContext = new ContentPageMockViewModel() }; ((IPageAware)navigationService).Page = rootPage; var viewModel = rootPage.BindingContext as ContentPageMockViewModel; Assert.False(viewModel.OnConfirmNavigationCalled); navigationService.Navigate("ContentPage"); Assert.True(rootPage.Navigation.ModalStack.Count == 1); Assert.NotNull(viewModel); Assert.True(viewModel.OnConfirmNavigationCalled); }
public void Navigate_ToContentPage_ViewModelHasIConfirmNavigation_False() { var navigationService = new PageNavigationServiceMock(_container); var rootPage = new Page() { 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); navigationService.Navigate("ContentPage", navParams); Assert.True(viewModel.OnConfirmNavigationCalled); Assert.True(rootPage.Navigation.ModalStack.Count == 0); }
public void Navigate_ToContentPage_ByObject() { var navigationService = new PageNavigationServiceMock(_container); var rootPage = new Xamarin.Forms.Page(); ((IPageAware)navigationService).Page = rootPage; navigationService.Navigate<ContentPageMockViewModel>(); Assert.True(rootPage.Navigation.ModalStack.Count == 1); Assert.IsType(typeof(ContentPageMock), rootPage.Navigation.ModalStack[0]); }
public void Navigate_ToCarouselPage_ByName_ViewModelHasINavigationAware() { var navigationService = new PageNavigationServiceMock(_container); var rootPage = new Xamarin.Forms.Page(); ((IPageAware)navigationService).Page = rootPage; navigationService.Navigate("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 void Navigate_ToContentPage_ByName_WithNavigationParameters() { var navigationService = new PageNavigationServiceMock(_container); var rootPage = new Xamarin.Forms.Page(); ((IPageAware)navigationService).Page = rootPage; var navParameters = new NavigationParameters(); navParameters.Add("id", 3); navigationService.Navigate("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"]); }
public void DeepNavigate_From_ContentPage_To_NavigationPageWithDifferentNavigationStack_ToContentPage() { var navigationService = new PageNavigationServiceMock(_container); var rootPage = new Xamarin.Forms.Page(); ((IPageAware)navigationService).Page = rootPage; navigationService.Navigate("ContentPage/NavigationPageWithStackNoMatch/ContentPage"); var navPage = rootPage.Navigation.ModalStack[0].Navigation.ModalStack[0]; Assert.True(navPage.Navigation.NavigationStack.Count == 1); }
public void NavigateAsync_ToContentPage_ThenGoBack() { var navigationService = new PageNavigationServiceMock(_container); var rootPage = new NavigationPage(new PageMock()); ((IPageAware)navigationService).Page = rootPage; Assert.IsType(typeof(PageMock), rootPage.CurrentPage); navigationService.Navigate("ContentPage", useModalNavigation: false); Assert.True(rootPage.Navigation.NavigationStack.Count == 2); Assert.IsType(typeof(ContentPageMock), rootPage.CurrentPage); navigationService.GoBack(useModalNavigation: false); Assert.True(rootPage.Navigation.NavigationStack.Count == 1); Assert.IsType(typeof(PageMock), rootPage.CurrentPage); }
public void DeepNavigate_From_ContentPage_To_MasterDetailPage() { var navigationService = new PageNavigationServiceMock(_container); var rootPage = new Xamarin.Forms.Page(); ((IPageAware)navigationService).Page = rootPage; navigationService.Navigate("ContentPage/MasterDetailPage"); Assert.True(rootPage.Navigation.ModalStack.Count == 1); Assert.True(rootPage.Navigation.ModalStack[0].Navigation.ModalStack.Count == 1); }
public void Navigate_ToContentPage_ViewModelHasINavigationAware() { var navigationService = new PageNavigationServiceMock(_container); var rootPage = new Xamarin.Forms.Page(); ((IPageAware)navigationService).Page = rootPage; navigationService.Navigate("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); ((IPageAware)navigationService).Page = rootPage.Navigation.ModalStack[0]; navigationService.Navigate("NavigationPage"); Assert.True(viewModel.OnNavigatedFromCalled); }
public void DeepNavigate_ToEmptyMasterDetailPage_ToNavigationPage() { var navigationService = new PageNavigationServiceMock(_container); var rootPage = new Xamarin.Forms.Page(); ((IPageAware)navigationService).Page = rootPage; navigationService.Navigate("MasterDetailPage-Empty/NavigationPage"); var masterDetail = rootPage.Navigation.ModalStack[0] as MasterDetailPageEmptyMock; Assert.NotNull(masterDetail); Assert.NotNull(masterDetail.Detail); Assert.IsType(typeof(NavigationPageMock), masterDetail.Detail); }
public void Navigate_ToContentPage_PageHasINavigationAware() { var navigationService = new PageNavigationServiceMock(_container); var rootPage = new Xamarin.Forms.Page(); ((IPageAware)navigationService).Page = rootPage; navigationService.Navigate("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); ((IPageAware)navigationService).Page = contentPage; navigationService.Navigate("NavigationPage"); Assert.True(contentPage.OnNavigatedFromCalled); Assert.True(contentPage.Navigation.ModalStack.Count == 1); }
public void DeepNavigate_ToCarouselPage_ToContentPage() { var navigationService = new PageNavigationServiceMock(_container); var rootPage = new Xamarin.Forms.Page(); ((IPageAware)navigationService).Page = rootPage; navigationService.Navigate("CarouselPage/ContentPage"); var tabbedPage = rootPage.Navigation.ModalStack[0] as CarouselPageMock; Assert.NotNull(tabbedPage); Assert.NotNull(tabbedPage.CurrentPage); Assert.IsType(typeof(ContentPageMock), tabbedPage.CurrentPage); }
public void Navigate_ToContentPage_PageHasIConfirmNavigation_True() { var navigationService = new PageNavigationServiceMock(_container); var rootPage = new ContentPageMock(); ((IPageAware)navigationService).Page = rootPage; Assert.False(rootPage.OnConfirmNavigationCalled); navigationService.Navigate("ContentPage"); Assert.True(rootPage.OnConfirmNavigationCalled); Assert.True(rootPage.Navigation.ModalStack.Count == 1); }
public void Navigate_ToContentPage_ByAbsoluteUri() { var navigationService = new PageNavigationServiceMock(_container); var rootPage = new Xamarin.Forms.Page(); ((IPageAware)navigationService).Page = rootPage; navigationService.Navigate(new Uri("http://brianlagunas.com/ContentPage", UriKind.Absolute)); Assert.True(rootPage.Navigation.ModalStack.Count == 1); Assert.IsType(typeof(ContentPageMock), rootPage.Navigation.ModalStack[0]); }
public void Navigate_ToContentPage_PageHasIConfirmNavigation_False() { var navigationService = new PageNavigationServiceMock(_container); var rootPage = new ContentPageMock(); ((IPageAware)navigationService).Page = rootPage; Assert.False(rootPage.OnConfirmNavigationCalled); var navParams = new NavigationParameters(); navParams.Add("canNavigate", false); navigationService.Navigate("ContentPage", navParams); Assert.True(rootPage.OnConfirmNavigationCalled); Assert.True(rootPage.Navigation.ModalStack.Count == 0); }