public void OnPagesChanged_WhenAddChild() { var eventRecoder = new EventRecorder(); var contentPageMock1 = new ContentPageMock(eventRecoder) { Title = "contentPageMock1" }; var tabbedPageMock = new TabbedPageMock(eventRecoder); tabbedPageMock.Children.Add(contentPageMock1); tabbedPageMock.Behaviors.Add(new MultiPageBehavior <Page>()); var contentPageMock2 = new ContentPageMock(eventRecoder) { Title = "contentPageMock2" }; tabbedPageMock.Children.Add(contentPageMock2); Assert.Equal(1, eventRecoder.Count); Assert.NotNull(eventRecoder[0]); Assert.Equal(contentPageMock2, eventRecoder[0].Sender); Assert.Equal("OnInitialize", eventRecoder[0].CallerMemberName); Assert.Null(eventRecoder[0].Parameter); }
public void OnCurrentPageChanged() { var eventRecoder = new EventRecorder(); var contentPageMock1 = new ContentPageMock(eventRecoder) { Title = "contentPageMock1" }; var contentPageMock2 = new ContentPageMock(eventRecoder) { Title = "contentPageMock2" }; var tabbedPageMock = new TabbedPageMock(eventRecoder); tabbedPageMock.Children.Add(contentPageMock1); tabbedPageMock.Children.Add(contentPageMock2); tabbedPageMock.Behaviors.Add(new MultiPageBehavior <Page>()); tabbedPageMock.CurrentPage = contentPageMock2; Assert.Equal(2, eventRecoder.Count); Assert.NotNull(eventRecoder[0]); Assert.Equal(contentPageMock2, eventRecoder[0].Sender); Assert.Equal("OnLoaded", eventRecoder[0].CallerMemberName); Assert.Null(eventRecoder[0].Parameter); Assert.NotNull(eventRecoder[1]); Assert.Equal(contentPageMock1, eventRecoder[1].Sender); Assert.Equal("OnUnloaded", eventRecoder[1].CallerMemberName); Assert.Null(eventRecoder[1].Parameter); }
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 TabbedPage() { var eventRecoder = new EventRecorder(); var contentPageMock1 = new ContentPageMock(eventRecoder) { Title = "contentPageMock1" }; var contentPageMock2 = new ContentPageMock(eventRecoder) { Title = "contentPageMock2" }; var viewModelMock = new ViewModelMock(eventRecoder); var tabbedPageMock = new TabbedPageMock(eventRecoder) { BindingContext = viewModelMock }; tabbedPageMock.Children.Add(contentPageMock1); tabbedPageMock.Children.Add(contentPageMock2); LifecycleNoticeService.OnResume(new ApplicationMock { MainPage = tabbedPageMock }); Assert.Equal(4, eventRecoder.Count); Assert.NotNull(eventRecoder[0]); Assert.Equal(tabbedPageMock, eventRecoder[0].Sender); Assert.Equal("OnResume", eventRecoder[0].CallerMemberName); Assert.Null(eventRecoder[0].Parameter); Assert.NotNull(eventRecoder[1]); Assert.Equal(viewModelMock, eventRecoder[1].Sender); Assert.Equal("OnResume", eventRecoder[1].CallerMemberName); Assert.Null(eventRecoder[1].Parameter); Assert.NotNull(eventRecoder[2]); Assert.Equal(contentPageMock1, eventRecoder[2].Sender); Assert.Equal("OnResume", eventRecoder[2].CallerMemberName); Assert.Null(eventRecoder[2].Parameter); Assert.NotNull(eventRecoder[3]); Assert.Equal(contentPageMock2, eventRecoder[3].Sender); Assert.Equal("OnResume", eventRecoder[3].CallerMemberName); Assert.Null(eventRecoder[3].Parameter); }
public void TabbedPage() { var eventRecoder = new EventRecorder(); var contentPageMock1 = new ContentPageMock(eventRecoder) { Title = "contentPageMock1" }; var contentPageMock2 = new ContentPageMock(eventRecoder) { Title = "contentPageMock2" }; var viewModelMock = new ViewModelMock(eventRecoder); var tabbedPageMock = new TabbedPageMock(eventRecoder) { BindingContext = viewModelMock }; tabbedPageMock.Children.Add(contentPageMock1); tabbedPageMock.Children.Add(contentPageMock2); var parameter = "Hello, Parameter!"; LifecycleNoticeService.OnInitialize(tabbedPageMock, parameter); Assert.Equal(4, eventRecoder.Count); Assert.NotNull(eventRecoder[0]); Assert.Equal(tabbedPageMock, eventRecoder[0].Sender); Assert.Equal("OnInitialize", eventRecoder[0].CallerMemberName); Assert.Equal(parameter, eventRecoder[0].Parameter); Assert.NotNull(eventRecoder[1]); Assert.Equal(viewModelMock, eventRecoder[1].Sender); Assert.Equal("OnInitialize", eventRecoder[1].CallerMemberName); Assert.Equal(parameter, eventRecoder[1].Parameter); Assert.NotNull(eventRecoder[2]); Assert.Equal(contentPageMock1, eventRecoder[2].Sender); Assert.Equal("OnInitialize", eventRecoder[2].CallerMemberName); Assert.Equal(parameter, eventRecoder[2].Parameter); Assert.NotNull(eventRecoder[3]); Assert.Equal(contentPageMock2, eventRecoder[3].Sender); Assert.Equal("OnInitialize", eventRecoder[3].CallerMemberName); Assert.Equal(parameter, eventRecoder[3].Parameter); }
public void TabbedPage() { var eventRecoder = new EventRecorder(); var contentPageMock1 = new ContentPageMock(eventRecoder) { Title = "contentPageMock1" }; var contentPageMock2 = new ContentPageMock(eventRecoder) { Title = "contentPageMock2" }; var viewModelMock = new ViewModelMock(eventRecoder); var tabbedPageMock = new TabbedPageMock(eventRecoder) { BindingContext = viewModelMock }; tabbedPageMock.Children.Add(contentPageMock1); tabbedPageMock.Children.Add(contentPageMock2); tabbedPageMock.CurrentPage = contentPageMock2; LifecycleNoticeService.OnUnloaded(tabbedPageMock); Assert.Equal(3, eventRecoder.Count); Assert.NotNull(eventRecoder[0]); Assert.Equal(contentPageMock2, eventRecoder[0].Sender); Assert.Equal("OnUnloaded", eventRecoder[0].CallerMemberName); Assert.Null(eventRecoder[0].Parameter); Assert.NotNull(eventRecoder[1]); Assert.Equal(viewModelMock, eventRecoder[1].Sender); Assert.Equal("OnUnloaded", eventRecoder[1].CallerMemberName); Assert.Null(eventRecoder[1].Parameter); Assert.NotNull(eventRecoder[2]); Assert.Equal(tabbedPageMock, eventRecoder[2].Sender); Assert.Equal("OnUnloaded", eventRecoder[2].CallerMemberName); Assert.Null(eventRecoder[2].Parameter); }
public void OnDetachingFrom() { var eventRecoder = new EventRecorder(); var contentPageMock1 = new ContentPageMock(eventRecoder) { Title = "contentPageMock1" }; var contentPageMock2 = new ContentPageMock(eventRecoder) { Title = "contentPageMock2" }; var tabbedPageMock = new TabbedPageMock(eventRecoder); tabbedPageMock.Children.Add(contentPageMock1); tabbedPageMock.Children.Add(contentPageMock2); tabbedPageMock.Behaviors.Add(new MultiPageBehavior <Page>()); tabbedPageMock.Behaviors.Clear(); tabbedPageMock.CurrentPage = contentPageMock2; Assert.Equal(0, eventRecoder.Count); }
public async void RecursiveInject() { var eventRecoder = new EventRecorder(); var carouselPageMock1 = new CarouselPageMock(eventRecoder); var tabbedPageMock1 = new TabbedPageMock(eventRecoder); tabbedPageMock1.Children.Add(new ContentPage()); tabbedPageMock1.Children.Add(carouselPageMock1); var navigationPage = new NavigationPageMock(tabbedPageMock1, eventRecoder); var carouselPageMock2 = new CarouselPageMock(eventRecoder); var tabbedPageMock2 = new TabbedPageMock(eventRecoder); tabbedPageMock2.Children.Add(new ContentPage()); tabbedPageMock2.Children.Add(carouselPageMock2); await tabbedPageMock1.Navigation.PushAsync(tabbedPageMock2); var actual = new BehaviorInjector(); actual.Inject(navigationPage); Assert.Equal(1, navigationPage.Behaviors.Count); Assert.IsType <NavigationPageBehavior>(navigationPage.Behaviors.Single()); Assert.Equal(1, tabbedPageMock1.Behaviors.Count); Assert.IsType <MultiPageBehavior <Page> >(tabbedPageMock1.Behaviors.Single()); Assert.Equal(1, tabbedPageMock2.Behaviors.Count); Assert.IsType <MultiPageBehavior <Page> >(tabbedPageMock2.Behaviors.Single()); Assert.Equal(1, carouselPageMock1.Behaviors.Count); Assert.IsType <MultiPageBehavior <ContentPage> >(carouselPageMock1.Behaviors.Single()); Assert.Equal(1, carouselPageMock2.Behaviors.Count); Assert.IsType <MultiPageBehavior <ContentPage> >(carouselPageMock2.Behaviors.Single()); }
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); }