Пример #1
0
        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 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_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);
        }
Пример #4
0
        public async void Navigate_FromMasterDetailPage_ToTabbedPage_IsNotPresented()
        {
            var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade);
            var rootPage          = new MasterDetailPageMock();

            ((IPageAware)navigationService).Page = rootPage;
            rootPage.IsPresentedAfterNavigation  = false;

            Assert.IsType(typeof(ContentPageMock), rootPage.Detail);
            Assert.False(rootPage.IsPresented);

            await navigationService.NavigateAsync("TabbedPage");

            Assert.IsType(typeof(TabbedPageMock), rootPage.Detail);

            Assert.False(rootPage.IsPresented);
        }
Пример #5
0
        public void MasterDetailPage()
        {
            var eventRecoder     = new EventRecorder();
            var contentPageMock1 = new ContentPageMock(eventRecoder)
            {
                Title = "contentPageMock1"
            };
            var contentPageMock2 = new ContentPageMock(eventRecoder)
            {
                Title = "contentPageMock2"
            };
            var viewModelMock        = new ViewModelMock(eventRecoder);
            var masterDetailPageMock = new MasterDetailPageMock(eventRecoder)
            {
                Master         = contentPageMock1,
                Detail         = contentPageMock2,
                BindingContext = viewModelMock
            };

            LifecycleNoticeService.OnResume(new ApplicationMock {
                MainPage = masterDetailPageMock
            });

            Assert.Equal(4, eventRecoder.Count);

            Assert.NotNull(eventRecoder[0]);
            Assert.Equal(masterDetailPageMock, 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);
        }
Пример #6
0
        public void MasterDetailPage()
        {
            var eventRecoder     = new EventRecorder();
            var contentPageMock1 = new ContentPageMock(eventRecoder)
            {
                Title = "contentPageMock1"
            };
            var contentPageMock2 = new ContentPageMock(eventRecoder)
            {
                Title = "contentPageMock2"
            };
            var viewModelMock        = new ViewModelMock(eventRecoder);
            var masterDetailPageMock = new MasterDetailPageMock(eventRecoder)
            {
                Master         = contentPageMock1,
                Detail         = contentPageMock2,
                BindingContext = viewModelMock
            };
            var parameter = "Hello, Parameter!";

            LifecycleNoticeService.OnInitialize(masterDetailPageMock, parameter);

            Assert.Equal(4, eventRecoder.Count);

            Assert.NotNull(eventRecoder[0]);
            Assert.Equal(masterDetailPageMock, 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);
        }
Пример #7
0
        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);
        }
Пример #8
0
        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);
        }