public TabbedPageMock(PageNavigationEventRecorder recorder) { ViewModelLocator.SetAutowireViewModel(this, true); Children.Add(new Tab1Mock(recorder) { Title = "Page 1" }); Children.Add(new Tab2Mock() { Title = "Page 2", BindingContext = null }); Children.Add(new Tab3Mock(recorder) { Title = "Page 3" }); Children.Add(new NavigationPageMock(recorder, new ContentPageMock(recorder)) { Title = "Page 4" }); Children.Add(new NavigationPageMock(recorder, new PageMock()) { Title = "Page 5" }); PageNavigationEventRecorder = recorder; var recordable = BindingContext as IPageNavigationEventRecordable; if (recordable != null) { recordable.PageNavigationEventRecorder = recorder; } }
public ContentPageMock(PageNavigationEventRecorder recorder) { ViewModelLocator.SetAutowireViewModel(this, true); PageNavigationEventRecorder = recorder; ((IPageNavigationEventRecordable)BindingContext).PageNavigationEventRecorder = recorder; }
public void DestoryMasterDetailPage() { var recorder = new PageNavigationEventRecorder(); var masterDetailPage = new MasterDetailPageMock(recorder); var masterDetailPageViewModel = masterDetailPage.BindingContext; var detailPage = masterDetailPage.Detail; var detailPageViewModel = detailPage.BindingContext; PageUtilities.DestroyPage(masterDetailPage); // masterDetailPage Assert.Equal(detailPage, recorder.Records[0].Sender); Assert.Null(detailPage.BindingContext); Assert.Equal(0, detailPage.Behaviors.Count); Assert.Equal(PageNavigationEvent.Destroy, recorder.Records[0].Event); Assert.Equal(detailPageViewModel, recorder.Records[1].Sender); Assert.Equal(PageNavigationEvent.Destroy, recorder.Records[1].Event); // detailPage Assert.Equal(masterDetailPage, recorder.Records[2].Sender); Assert.Null(masterDetailPage.BindingContext); Assert.Equal(0, masterDetailPage.Behaviors.Count); Assert.Equal(PageNavigationEvent.Destroy, recorder.Records[2].Event); Assert.Equal(masterDetailPageViewModel, recorder.Records[3].Sender); Assert.Equal(PageNavigationEvent.Destroy, recorder.Records[3].Event); Assert.Equal(4, recorder.Records.Count); }
public MasterDetailPageMock(PageNavigationEventRecorder recorder) { Detail = new ContentPageMock(recorder); ViewModelLocator.SetAutowireViewModel(this, true); PageNavigationEventRecorder = recorder; ((IPageNavigationEventRecordable)BindingContext).PageNavigationEventRecorder = recorder; }
public MasterDetailPageMock(PageNavigationEventRecorder recorder, Page masterPage, Page detailPage) { Master = masterPage; Detail = detailPage; ViewModelLocator.SetAutowireViewModel(this, true); PageNavigationEventRecorder = recorder; ((IPageNavigationEventRecordable)BindingContext).PageNavigationEventRecorder = recorder; }
public void DestoryMasterDetailPage() { var recorder = new PageNavigationEventRecorder(); var masterPage = new ContentPageMock(recorder) { Title = "Master" }; var masterPageViewModel = masterPage.BindingContext; var detailPage = new ContentPageMock(recorder) { Title = "Detail" }; var detailPageViewModel = detailPage.BindingContext; var masterDetailPage = new MasterDetailPageMock(recorder, masterPage, detailPage); var masterDetailPageViewModel = masterDetailPage.BindingContext; PageUtilities.DestroyPage(masterDetailPage); // MasterPage var record = recorder.TakeFirst(); Assert.Equal(masterPage, record.Sender); Assert.Null(masterPage.BindingContext); Assert.Equal(0, masterPage.Behaviors.Count); Assert.Equal(PageNavigationEvent.Destroy, record.Event); record = recorder.TakeFirst(); Assert.Equal(masterPageViewModel, record.Sender); Assert.Equal(PageNavigationEvent.Destroy, record.Event); // DetailPage record = recorder.TakeFirst(); Assert.Equal(detailPage, record.Sender); Assert.Null(detailPage.BindingContext); Assert.Equal(0, detailPage.Behaviors.Count); Assert.Equal(PageNavigationEvent.Destroy, record.Event); record = recorder.TakeFirst(); Assert.Equal(detailPageViewModel, record.Sender); Assert.Equal(PageNavigationEvent.Destroy, record.Event); // MasterDetailPage record = recorder.TakeFirst(); Assert.Equal(masterDetailPage, record.Sender); Assert.Null(masterDetailPage.BindingContext); Assert.Equal(0, masterDetailPage.Behaviors.Count); Assert.Equal(PageNavigationEvent.Destroy, record.Event); record = recorder.TakeFirst(); Assert.Equal(masterDetailPageViewModel, record.Sender); Assert.Equal(PageNavigationEvent.Destroy, record.Event); Assert.True(recorder.IsEmpty); }
public async void Navigate_ToContentPage_ByAbsoluteUri() { // Set up top page. var recorder = new PageNavigationEventRecorder();; var rootPage = new ContentPageMock(recorder); var rootPageViewModel = (ViewModelBase)rootPage.BindingContext; var applicationProvider = new ApplicationProviderMock(rootPage); var navigationService = new PageNavigationServiceMock(_container, applicationProvider, _loggerFacade, recorder); await navigationService.NavigateAsync(new Uri("http://localhost/ContentPage", UriKind.Absolute)); var navigatedPage = applicationProvider.MainPage; Assert.IsType(typeof(ContentPageMock), navigatedPage); Assert.NotEqual(rootPage, _applicationProvider.MainPage); var record = recorder.TakeFirst(); Assert.Equal(navigatedPage, record.Sender); Assert.Equal(PageNavigationEvent.OnNavigatingTo, record.Event); record = recorder.TakeFirst(); Assert.Equal(navigatedPage.BindingContext, record.Sender); Assert.Equal(PageNavigationEvent.OnNavigatingTo, record.Event); record = recorder.TakeFirst(); Assert.Equal(rootPage, record.Sender); Assert.Equal(PageNavigationEvent.OnNavigatedFrom, record.Event); record = recorder.TakeFirst(); Assert.Equal(rootPageViewModel, record.Sender); Assert.Equal(PageNavigationEvent.OnNavigatedFrom, record.Event); record = recorder.TakeFirst(); Assert.Equal(navigatedPage, record.Sender); Assert.Equal(PageNavigationEvent.OnNavigatedTo, record.Event); record = recorder.TakeFirst(); Assert.Equal(navigatedPage.BindingContext, record.Sender); Assert.Equal(PageNavigationEvent.OnNavigatedTo, record.Event); record = recorder.TakeFirst(); Assert.Equal(rootPage, record.Sender); Assert.Equal(PageNavigationEvent.Destroy, record.Event); record = recorder.TakeFirst(); Assert.Equal(rootPageViewModel, record.Sender); Assert.Equal(PageNavigationEvent.Destroy, record.Event); Assert.True(recorder.IsEmpty); }
public void DestroyTabbedPage() { var recorder = new PageNavigationEventRecorder(); var tabbedPage = new TabbedPageMock(recorder); var tabbedPageViewModel = tabbedPage.BindingContext; var childPage1 = tabbedPage.Children[0]; var childPage1ViewModel = childPage1.BindingContext; var childPage2 = tabbedPage.Children[1]; var childPage2ViewModel = childPage2.BindingContext; var childPage3 = tabbedPage.Children[2]; var childPage3ViewModel = childPage3.BindingContext; PageUtilities.DestroyPage(tabbedPage); Assert.Equal(7, recorder.Records.Count); // childPage3 Assert.Equal(childPage3, recorder.Records[0].Sender); Assert.Null(childPage3.BindingContext); Assert.Equal(0, childPage3.Behaviors.Count); Assert.Equal(PageNavigationEvent.Destroy, recorder.Records[0].Event); Assert.Equal(childPage3ViewModel, recorder.Records[1].Sender); Assert.Equal(PageNavigationEvent.Destroy, recorder.Records[1].Event); // childPage2 : This page is PageMock. Assert.Equal(childPage2ViewModel, recorder.Records[2].Sender); Assert.Equal(PageNavigationEvent.Destroy, recorder.Records[2].Event); // childPage1 Assert.Equal(childPage1, recorder.Records[3].Sender); Assert.Null(childPage1.BindingContext); Assert.Equal(0, childPage1.Behaviors.Count); Assert.Equal(PageNavigationEvent.Destroy, recorder.Records[3].Event); Assert.Equal(childPage1ViewModel, recorder.Records[4].Sender); Assert.Equal(PageNavigationEvent.Destroy, recorder.Records[4].Event); // tabbedPage Assert.Equal(tabbedPage, recorder.Records[5].Sender); Assert.Null(tabbedPage.BindingContext); Assert.Equal(0, tabbedPage.Behaviors.Count); Assert.Equal(PageNavigationEvent.Destroy, recorder.Records[5].Event); Assert.Equal(tabbedPageViewModel, recorder.Records[6].Sender); Assert.Equal(PageNavigationEvent.Destroy, recorder.Records[6].Event); }
public void DestroyContentPage() { var recorder = new PageNavigationEventRecorder(); var page = new ContentPageMock(recorder); var viewModel = (ViewModelBase)page.BindingContext; PageUtilities.DestroyPage(page); Assert.Equal(2, recorder.Records.Count); Assert.Equal(page, recorder.Records[0].Sender); Assert.Null(page.BindingContext); Assert.Equal(0, page.Behaviors.Count); Assert.Equal(PageNavigationEvent.Destroy, recorder.Records[0].Event); Assert.Equal(viewModel, recorder.Records[1].Sender); Assert.Equal(PageNavigationEvent.Destroy, recorder.Records[1].Event); }
public void DestroyNavigationPage() { var recorder = new PageNavigationEventRecorder(); var navigationPage = new NavigationPageMock(recorder); var navigationPageViewModel = navigationPage.BindingContext; var contentPage1 = navigationPage.CurrentPage; var contentPage1ViewModel = contentPage1.BindingContext; var contentPage2 = new ContentPageMock(recorder); var contentPage2ViewModel = contentPage2.BindingContext; contentPage1.Navigation.PushAsync(contentPage2); PageUtilities.DestroyPage(navigationPage); Assert.Equal(6, recorder.Records.Count); // contentPage2 Assert.Equal(contentPage2, recorder.Records[0].Sender); Assert.Null(contentPage2.BindingContext); Assert.Equal(0, contentPage2.Behaviors.Count); Assert.Equal(PageNavigationEvent.Destroy, recorder.Records[0].Event); Assert.Equal(contentPage2ViewModel, recorder.Records[1].Sender); Assert.Equal(PageNavigationEvent.Destroy, recorder.Records[1].Event); // contentPage1 Assert.Equal(contentPage1, recorder.Records[2].Sender); Assert.Null(contentPage1.BindingContext); Assert.Equal(0, contentPage1.Behaviors.Count); Assert.Equal(PageNavigationEvent.Destroy, recorder.Records[2].Event); Assert.Equal(contentPage1ViewModel, recorder.Records[3].Sender); Assert.Equal(PageNavigationEvent.Destroy, recorder.Records[3].Event); // navigationPage Assert.Equal(navigationPage, recorder.Records[4].Sender); Assert.Null(navigationPage.BindingContext); Assert.Equal(0, navigationPage.Behaviors.Count); Assert.Equal(PageNavigationEvent.Destroy, recorder.Records[4].Event); Assert.Equal(navigationPageViewModel, recorder.Records[5].Sender); Assert.Equal(PageNavigationEvent.Destroy, recorder.Records[5].Event); }
public void DestroyWithModalStack() { var recorder = new PageNavigationEventRecorder(); var contentPage1 = new ContentPageMock(recorder); var viewModel1 = contentPage1.BindingContext; var contentPage2 = new ContentPageMock(recorder); var viewModel2 = contentPage2.BindingContext; var contentPage3 = new ContentPageMock(recorder); var viewModel3 = contentPage3.BindingContext; var modalStack = new List <Page> { contentPage2, contentPage3 }; PageUtilities.DestroyWithModalStack(contentPage1, modalStack); var record = recorder.TakeFirst(); Assert.Equal(contentPage3, record.Sender); Assert.Equal(PageNavigationEvent.Destroy, record.Event); record = recorder.TakeFirst(); Assert.Equal(viewModel3, record.Sender); Assert.Equal(PageNavigationEvent.Destroy, record.Event); record = recorder.TakeFirst(); Assert.Equal(contentPage2, record.Sender); Assert.Equal(PageNavigationEvent.Destroy, record.Event); record = recorder.TakeFirst(); Assert.Equal(viewModel2, record.Sender); Assert.Equal(PageNavigationEvent.Destroy, record.Event); record = recorder.TakeFirst(); Assert.Equal(contentPage1, record.Sender); Assert.Equal(PageNavigationEvent.Destroy, record.Event); record = recorder.TakeFirst(); Assert.Equal(viewModel1, record.Sender); Assert.Equal(PageNavigationEvent.Destroy, record.Event); Assert.True(recorder.IsEmpty); }
public CarouselPageMock(PageNavigationEventRecorder recorder) { ViewModelLocator.SetAutowireViewModel(this, true); Children.Add(new ContentPage() { Title = "Page 1" }); Children.Add(new ContentPageMock(recorder) { Title = "Page 2" }); Children.Add(new ContentPage() { Title = "Page 3" }); PageNavigationEventRecorder = recorder; ((IPageNavigationEventRecordable)BindingContext).PageNavigationEventRecorder = recorder; }
public void DestroyCarouselPage() { var recorder = new PageNavigationEventRecorder(); var carouselPage = new CarouselPageMock(recorder); var carouselPageViewModel = carouselPage.BindingContext; var childPage2 = carouselPage.Children[1]; var childPage2ViewModel = childPage2.BindingContext; PageUtilities.DestroyPage(carouselPage); Assert.Equal(6, recorder.Records.Count); // childPage3 : This page is ContentPage. Assert.Equal(carouselPageViewModel, recorder.Records[0].Sender); Assert.Equal(PageNavigationEvent.Destroy, recorder.Records[0].Event); // childPage2 Assert.Equal(childPage2, recorder.Records[1].Sender); Assert.Null(childPage2.BindingContext); Assert.Equal(0, childPage2.Behaviors.Count); Assert.Equal(PageNavigationEvent.Destroy, recorder.Records[1].Event); Assert.Equal(childPage2ViewModel, recorder.Records[2].Sender); Assert.Equal(PageNavigationEvent.Destroy, recorder.Records[2].Event); // childPage1 : This page is ContentPage. Assert.Equal(carouselPageViewModel, recorder.Records[3].Sender); Assert.Equal(PageNavigationEvent.Destroy, recorder.Records[3].Event); // tabbedPage Assert.Equal(carouselPage, recorder.Records[4].Sender); Assert.Null(carouselPage.BindingContext); Assert.Equal(0, carouselPage.Behaviors.Count); Assert.Equal(PageNavigationEvent.Destroy, recorder.Records[4].Event); Assert.Equal(carouselPageViewModel, recorder.Records[5].Sender); Assert.Equal(PageNavigationEvent.Destroy, recorder.Records[5].Event); }
public Task InitializeAsync(INavigationParameters parameters) { InitializeAsyncCalled = true; PageNavigationEventRecorder?.Record(this, PageNavigationEvent.OnInitializedAsync); return(Task.CompletedTask); }
public PageMock(PageNavigationEventRecorder recorder) { PageNavigationEventRecorder = recorder; }
public void OnNavigatedFrom(INavigationParameters parameters) { OnNavigatedFromCalled = true; NavigatedFromParameters = parameters; PageNavigationEventRecorder?.Record(this, PageNavigationEvent.OnNavigatedFrom); }
public NavigationPageMock(PageNavigationEventRecorder recorder) : this(recorder, new ContentPageMock(recorder)) { }
public Tab2Mock(PageNavigationEventRecorder recorder) : base(recorder) { }
public void OnNavigatingTo(INavigationParameters parameters) { PageNavigationEventRecorder?.Record(this, PageNavigationEvent.OnNavigatingTo); }
public void DestroyTabbedPage() { var recorder = new PageNavigationEventRecorder(); var tabbedPage = new TabbedPageMock(recorder); var tabbedPageViewModel = tabbedPage.BindingContext; var tab1 = tabbedPage.Children[0]; var tab1ViewModel = tab1.BindingContext; var tab2 = tabbedPage.Children[1]; var tab2ViewModel = tab2.BindingContext; var tab3 = tabbedPage.Children[2]; var tab3ViewModel = tab3.BindingContext; var tab4 = tabbedPage.Children[3]; var tab4Child = ((NavigationPage)tab4).CurrentPage; var tab4ViewModel = tab4.BindingContext; var tab4ChildViewModel = tab4Child.BindingContext; var tab5 = tabbedPage.Children[4]; var tab5Child = ((NavigationPage)tab5).CurrentPage; var tab5ViewModel = tab5.BindingContext; var tab5ChildViewModel = tab5Child.BindingContext; PageUtilities.DestroyPage(tabbedPage); Assert.Equal(13, recorder.Records.Count); //tab 5 Assert.Equal(tab5ViewModel, recorder.Records[0].Sender); Assert.Equal(PageNavigationEvent.Destroy, recorder.Records[0].Event); Assert.Equal(tab5, recorder.Records[1].Sender); Assert.Equal(0, tab5.Behaviors.Count); Assert.Equal(PageNavigationEvent.Destroy, recorder.Records[1].Event); Assert.Equal(tab5ChildViewModel, recorder.Records[2].Sender); Assert.Equal(PageNavigationEvent.Destroy, recorder.Records[2].Event); //tab 4 Assert.Equal(tab4Child, recorder.Records[3].Sender); Assert.Equal(0, tab4Child.Behaviors.Count); Assert.Equal(PageNavigationEvent.Destroy, recorder.Records[3].Event); Assert.Equal(tab4ChildViewModel, recorder.Records[4].Sender); Assert.Equal(PageNavigationEvent.Destroy, recorder.Records[4].Event); Assert.Equal(tab4, recorder.Records[5].Sender); Assert.Equal(0, tab4.Behaviors.Count); Assert.Equal(PageNavigationEvent.Destroy, recorder.Records[5].Event); Assert.Equal(tab4ViewModel, recorder.Records[6].Sender); Assert.Equal(PageNavigationEvent.Destroy, recorder.Records[6].Event); //tab 3 Assert.Equal(tab3, recorder.Records[7].Sender); Assert.Null(tab3.BindingContext); Assert.Equal(0, tab3.Behaviors.Count); Assert.Equal(PageNavigationEvent.Destroy, recorder.Records[7].Event); Assert.Equal(tab3ViewModel, recorder.Records[8].Sender); Assert.Equal(PageNavigationEvent.Destroy, recorder.Records[8].Event); //tab 2 : PageMock has no binding context so it has no entries. //tab 1 Assert.Equal(tab1, recorder.Records[9].Sender); Assert.Null(tab1.BindingContext); Assert.Equal(0, tab1.Behaviors.Count); Assert.Equal(PageNavigationEvent.Destroy, recorder.Records[9].Event); Assert.Equal(tab1ViewModel, recorder.Records[10].Sender); Assert.Equal(PageNavigationEvent.Destroy, recorder.Records[10].Event); //TabbedPage Assert.Equal(tabbedPage, recorder.Records[11].Sender); Assert.Null(tabbedPage.BindingContext); Assert.Equal(0, tabbedPage.Behaviors.Count); Assert.Equal(PageNavigationEvent.Destroy, recorder.Records[11].Event); Assert.Equal(tabbedPageViewModel, recorder.Records[12].Sender); Assert.Equal(PageNavigationEvent.Destroy, recorder.Records[12].Event); }
public void Destroy() { PageNavigationEventRecorder.Record(this, PageNavigationEvent.Destroy); }
public void OnNavigatedTo(INavigationParameters parameters) { OnNavigatedToCalled = true; PageNavigationEventRecorder?.Record(this, PageNavigationEvent.OnNavigatedTo); }
public SecondContentPageMock(PageNavigationEventRecorder recorder) : base(recorder) { }
public void OnNavigatedFrom(NavigationParameters parameters) { PageNavigationEventRecorder?.Record(this, PageNavigationEvent.OnNavigatedFrom); }
public async Task GoBackToRootAsync_PopsToRoot_INavigationAware_Destroy() { var recorder = new PageNavigationEventRecorder(); var navigationService = new PageNavigationServiceMock(null, null, null); var rootPage = new Xamarin.Forms.NavigationPage(); ((IPageAware)navigationService).Page = rootPage; var page1 = new ContentPageMock(recorder) { Title = "Page 1" }; await rootPage.Navigation.PushAsync(page1); var page2 = new ContentPageMock(recorder) { Title = "Page 2" }; var page2ViewModel = page2.BindingContext; await rootPage.Navigation.PushAsync(page2); var page3 = new ContentPageMock(recorder) { Title = "Page 3" }; var page3ViewModel = page3.BindingContext; await rootPage.Navigation.PushAsync(page3); var page4 = new ContentPageMock(recorder) { Title = "Page 4" }; var page4ViewModel = page4.BindingContext; await rootPage.Navigation.PushAsync(page4); Assert.True(rootPage.Navigation.NavigationStack.Count == 4); await navigationService.GoBackToRootAsync(); Assert.Equal(1, rootPage.Navigation.NavigationStack.Count); Assert.Equal(page1, rootPage.Navigation.NavigationStack[0]); Assert.Equal(16, recorder.Records.Count); //root var record = recorder.TakeFirst(); Assert.Equal(page1, record.Sender); Assert.Equal(PageNavigationEvent.OnNavigatingTo, record.Event); record = recorder.TakeFirst(); Assert.Equal(page1.BindingContext, record.Sender); Assert.Equal(PageNavigationEvent.OnNavigatingTo, record.Event); //page 4 record = recorder.TakeFirst(); Assert.Equal(page4, record.Sender); Assert.Equal(PageNavigationEvent.OnNavigatedFrom, record.Event); record = recorder.TakeFirst(); Assert.Equal(page4ViewModel, record.Sender); Assert.Equal(PageNavigationEvent.OnNavigatedFrom, record.Event); record = recorder.TakeFirst(); Assert.Equal(page4, record.Sender); Assert.Equal(PageNavigationEvent.Destroy, record.Event); record = recorder.TakeFirst(); Assert.Equal(page4ViewModel, record.Sender); Assert.Equal(PageNavigationEvent.Destroy, record.Event); //page 3 record = recorder.TakeFirst(); Assert.Equal(page3, record.Sender); Assert.Equal(PageNavigationEvent.OnNavigatedFrom, record.Event); record = recorder.TakeFirst(); Assert.Equal(page3ViewModel, record.Sender); Assert.Equal(PageNavigationEvent.OnNavigatedFrom, record.Event); record = recorder.TakeFirst(); Assert.Equal(page3, record.Sender); Assert.Equal(PageNavigationEvent.Destroy, record.Event); record = recorder.TakeFirst(); Assert.Equal(page3ViewModel, record.Sender); Assert.Equal(PageNavigationEvent.Destroy, record.Event); //page 2 record = recorder.TakeFirst(); Assert.Equal(page2, record.Sender); Assert.Equal(PageNavigationEvent.OnNavigatedFrom, record.Event); record = recorder.TakeFirst(); Assert.Equal(page2ViewModel, record.Sender); Assert.Equal(PageNavigationEvent.OnNavigatedFrom, record.Event); record = recorder.TakeFirst(); Assert.Equal(page2, record.Sender); Assert.Equal(PageNavigationEvent.Destroy, record.Event); record = recorder.TakeFirst(); Assert.Equal(page2ViewModel, record.Sender); Assert.Equal(PageNavigationEvent.Destroy, record.Event); //root record = recorder.TakeFirst(); Assert.Equal(page1, record.Sender); Assert.Equal(PageNavigationEvent.OnNavigatedTo, record.Event); record = recorder.TakeFirst(); Assert.Equal(page1.BindingContext, record.Sender); Assert.Equal(PageNavigationEvent.OnNavigatedTo, record.Event); }
public void Initialize(INavigationParameters parameters) { InitializeCalled = true; PageNavigationEventRecorder?.Record(this, PageNavigationEvent.OnInitialized); }
public void Destroy() { DestroyCalled = true; PageNavigationEventRecorder?.Record(this, PageNavigationEvent.Destroy); }
public NavigationPageEmptyMock_Reused(PageNavigationEventRecorder recorder) : base(recorder) { }