From 1a355bef226fa9368e196e9121a165bf58594fd8 Mon Sep 17 00:00:00 2001 From: Dan Siegel Date: Fri, 21 Aug 2020 15:12:58 -0700 Subject: [PATCH 1/2] Remove ILoggerFacade from PageNavigationService --- .../Navigation/PageNavigationService.cs | 48 ++--- tests/Forms/MockApp/MockPrismApp.cs | 2 +- .../Navigation/CustomNavigationServiceMock.cs | 4 +- .../Mocks/PageNavigationServiceMock.cs | 4 +- .../Mocks/Views/NavigationPagePathPageMock.cs | 4 +- .../PageNavigationServiceFixture.cs | 180 +++++++++--------- 6 files changed, 115 insertions(+), 127 deletions(-) diff --git a/src/Forms/Prism.Forms/Navigation/PageNavigationService.cs b/src/Forms/Prism.Forms/Navigation/PageNavigationService.cs index 8f2afe8ad6..2fb9daafec 100644 --- a/src/Forms/Prism.Forms/Navigation/PageNavigationService.cs +++ b/src/Forms/Prism.Forms/Navigation/PageNavigationService.cs @@ -1,7 +1,6 @@ -using Prism.Behaviors; +using Prism.Behaviors; using Prism.Common; using Prism.Ioc; -using Prism.Logging; using System; using System.Collections.Generic; using System.Linq; @@ -25,7 +24,6 @@ public class PageNavigationService : INavigationService, IPlatformNavigationServ private readonly IContainerProvider _container; protected readonly IApplicationProvider _applicationProvider; protected readonly IPageBehaviorFactory _pageBehaviorFactory; - protected readonly ILoggerFacade _logger; protected Page _page; Page IPageAware.Page @@ -34,12 +32,17 @@ Page IPageAware.Page set { _page = value; } } - public PageNavigationService(IContainerProvider container, IApplicationProvider applicationProvider, IPageBehaviorFactory pageBehaviorFactory, ILoggerFacade logger) + /// + /// Constructs a new instance of the . + /// + /// The that will be used to resolve pages for navigation. + /// The that will let us ensure the Application.MainPage is set. + /// The that will apply base and custom behaviors to pages created in the . + public PageNavigationService(IContainerProvider container, IApplicationProvider applicationProvider, IPageBehaviorFactory pageBehaviorFactory) { _container = container; _applicationProvider = applicationProvider; _pageBehaviorFactory = pageBehaviorFactory; - _logger = logger; } /// @@ -108,7 +111,6 @@ protected async virtual Task GoBackInternal(INavigationParame } catch (Exception ex) { - _logger.Log(ex.ToString(), Category.Exception, Priority.High); result.Exception = ex; return result; } @@ -325,7 +327,6 @@ protected async virtual Task NavigateInternal(Uri uri, INavig } catch (Exception ex) { - _logger.Log(ex.ToString(), Category.Exception, Priority.High); result.Exception = ex; return result; } @@ -800,32 +801,19 @@ protected virtual Page CreatePage(string segmentName) protected virtual Page CreatePageFromSegment(string segment) { - string segmentName = null; - try + string segmentName = UriParsingHelper.GetSegmentName(segment); + var page = CreatePage(segmentName); + if (page == null) { - segmentName = UriParsingHelper.GetSegmentName(segment); - var page = CreatePage(segmentName); - if (page == null) - { - var innerException = new NullReferenceException(string.Format("{0} could not be created. Please make sure you have registered {0} for navigation.", segmentName)); - throw new NavigationException(NavigationException.NoPageIsRegistered, _page, innerException); - } + var innerException = new NullReferenceException(string.Format("{0} could not be created. Please make sure you have registered {0} for navigation.", segmentName)); + throw new NavigationException(NavigationException.NoPageIsRegistered, _page, innerException); + } - PageUtilities.SetAutowireViewModelOnPage(page); - _pageBehaviorFactory.ApplyPageBehaviors(page); - ConfigurePages(page, segment); + PageUtilities.SetAutowireViewModelOnPage(page); + _pageBehaviorFactory.ApplyPageBehaviors(page); + ConfigurePages(page, segment); - return page; - } - catch(NavigationException) - { - throw; - } - catch (Exception e) - { - _logger.Log(e.ToString(), Category.Exception, Priority.High); - throw; - } + return page; } private Page SetNavigationServiceForPage(Page page) diff --git a/tests/Forms/MockApp/MockPrismApp.cs b/tests/Forms/MockApp/MockPrismApp.cs index 6a01824edd..550dd07feb 100644 --- a/tests/Forms/MockApp/MockPrismApp.cs +++ b/tests/Forms/MockApp/MockPrismApp.cs @@ -24,7 +24,7 @@ protected override void Initialize() MockContainer.Setup(x => x.Resolve(typeof(IModuleCatalog))) .Returns(new ModuleCatalog()); MockContainer.Setup(x => x.Resolve(typeof(INavigationService), NavigationServiceName)) - .Returns(new PageNavigationService(MockContainer.Object, this, new PageBehaviorFactory(), new EmptyLogger())); + .Returns(new PageNavigationService(MockContainer.Object, this, new PageBehaviorFactory())); base.Initialize(); } diff --git a/tests/Forms/Prism.DI.Forms.Tests/Mocks/Navigation/CustomNavigationServiceMock.cs b/tests/Forms/Prism.DI.Forms.Tests/Mocks/Navigation/CustomNavigationServiceMock.cs index bbf4d66215..c3821cd647 100644 --- a/tests/Forms/Prism.DI.Forms.Tests/Mocks/Navigation/CustomNavigationServiceMock.cs +++ b/tests/Forms/Prism.DI.Forms.Tests/Mocks/Navigation/CustomNavigationServiceMock.cs @@ -9,8 +9,8 @@ namespace Prism.DI.Forms.Tests.Navigation { public class CustomNavigationServiceMock : PageNavigationService { - public CustomNavigationServiceMock(IContainerExtension container, IApplicationProvider applicationProvider, IPageBehaviorFactory pageBehaviorFactory, ILoggerFacade logger) - : base(container, applicationProvider, pageBehaviorFactory, logger) + public CustomNavigationServiceMock(IContainerExtension container, IApplicationProvider applicationProvider, IPageBehaviorFactory pageBehaviorFactory) + : base(container, applicationProvider, pageBehaviorFactory) { } } diff --git a/tests/Forms/Prism.Forms.Tests/Mocks/PageNavigationServiceMock.cs b/tests/Forms/Prism.Forms.Tests/Mocks/PageNavigationServiceMock.cs index 91d071a58f..1ee7b0f80a 100644 --- a/tests/Forms/Prism.Forms.Tests/Mocks/PageNavigationServiceMock.cs +++ b/tests/Forms/Prism.Forms.Tests/Mocks/PageNavigationServiceMock.cs @@ -12,8 +12,8 @@ public class PageNavigationServiceMock : PageNavigationService IContainerExtension _containerMock; PageNavigationEventRecorder _recorder; - public PageNavigationServiceMock(IContainerExtension containerMock, IApplicationProvider applicationProviderMock, ILoggerFacade loggerFacadeMock, PageNavigationEventRecorder recorder = null) - : base(containerMock, applicationProviderMock, new PageBehaviorFactory(), loggerFacadeMock) + public PageNavigationServiceMock(IContainerExtension containerMock, IApplicationProvider applicationProviderMock, PageNavigationEventRecorder recorder = null) + : base(containerMock, applicationProviderMock, new PageBehaviorFactory()) { _containerMock = containerMock; _recorder = recorder; diff --git a/tests/Forms/Prism.Forms.Tests/Navigation/Mocks/Views/NavigationPagePathPageMock.cs b/tests/Forms/Prism.Forms.Tests/Navigation/Mocks/Views/NavigationPagePathPageMock.cs index 7a863a63bf..daa55312e6 100644 --- a/tests/Forms/Prism.Forms.Tests/Navigation/Mocks/Views/NavigationPagePathPageMock.cs +++ b/tests/Forms/Prism.Forms.Tests/Navigation/Mocks/Views/NavigationPagePathPageMock.cs @@ -10,7 +10,7 @@ public class NavigationPathPageMock : ContentPage public NavigationPathPageMockViewModel ViewModel { get; } public NavigationPathPageMock() { - var navService = new PageNavigationServiceMock(null, new ApplicationProviderMock(), null, null); + var navService = new PageNavigationServiceMock(null, new ApplicationProviderMock(), null); ((IPageAware)navService).Page = this; BindingContext = ViewModel = new NavigationPathPageMockViewModel(navService); @@ -47,7 +47,7 @@ public class NavigationPathTabbedPageMock : TabbedPage public NavigationPathTabbedPageMock() { - var navService = new PageNavigationServiceMock(null, new ApplicationProviderMock(), null, null); + var navService = new PageNavigationServiceMock(null, new ApplicationProviderMock(), null); ((IPageAware)navService).Page = this; BindingContext = ViewModel = new NavigationPathPageMockViewModel(navService); diff --git a/tests/Forms/Prism.Forms.Tests/Navigation/PageNavigationServiceFixture.cs b/tests/Forms/Prism.Forms.Tests/Navigation/PageNavigationServiceFixture.cs index 6e2e231695..078bc90521 100644 --- a/tests/Forms/Prism.Forms.Tests/Navigation/PageNavigationServiceFixture.cs +++ b/tests/Forms/Prism.Forms.Tests/Navigation/PageNavigationServiceFixture.cs @@ -64,7 +64,7 @@ public PageNavigationServiceFixture() [Fact] public void IPageAware_NullByDefault() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var page = ((IPageAware)navigationService).Page; Assert.Null(page); } @@ -74,7 +74,7 @@ public void Navigate_ToUnregisteredPage_ByName() { Assert.ThrowsAsync(async () => { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage(); ((IPageAware)navigationService).Page = rootPage; @@ -87,7 +87,7 @@ public void Navigate_ToUnregisteredPage_ByName() [Fact] public async void Navigate_ToContentPage_ByName() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage(); ((IPageAware)navigationService).Page = rootPage; @@ -100,7 +100,7 @@ public async void Navigate_ToContentPage_ByName() [Fact] public async void Navigate_ToContentPage_ByRelativeUri() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage(); ((IPageAware)navigationService).Page = rootPage; @@ -118,7 +118,7 @@ public async void Navigate_ToContentPage_ByAbsoluteName() var rootPage = new ContentPageMock(recorder); var rootPageViewModel = (ViewModelBase)rootPage.BindingContext; var applicationProvider = new ApplicationProviderMock(rootPage); - var navigationService = new PageNavigationServiceMock(_container, applicationProvider, _loggerFacade, recorder); + var navigationService = new PageNavigationServiceMock(_container, applicationProvider, recorder); await navigationService.NavigateAsync("/ContentPage"); @@ -177,7 +177,7 @@ public async void Navigate_ToContentPage_ByAbsoluteUri() var rootPage = new ContentPageMock(recorder); var rootPageViewModel = (ViewModelBase)rootPage.BindingContext; var applicationProvider = new ApplicationProviderMock(rootPage); - var navigationService = new PageNavigationServiceMock(_container, applicationProvider, _loggerFacade, recorder); + var navigationService = new PageNavigationServiceMock(_container, applicationProvider, recorder); await navigationService.NavigateAsync(new Uri("http://localhost/ContentPage", UriKind.Absolute)); @@ -233,7 +233,7 @@ record = recorder.TakeFirst(); [Fact] public async void Navigate_ToContentPage_ByName_WithNavigationParameters() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage(); ((IPageAware)navigationService).Page = rootPage; @@ -256,7 +256,7 @@ public async void Navigate_ToContentPage_ByName_WithNavigationParameters() [Fact] public async void Navigate_ToContentPage_ThenGoBack() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage(); ((IPageAware)navigationService).Page = rootPage; @@ -275,7 +275,7 @@ public async void Navigate_ToContentPage_ThenGoBack() public async void NavigateAsync_ToContentPage_ThenGoBack() { var pageMock = new ContentPageMock(); - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); ((IPageAware)navigationService).Page = pageMock; var rootPage = new NavigationPage(pageMock); @@ -303,7 +303,7 @@ public async void NavigateAsync_ToContentPage_ThenGoBack() [Fact] public async void Navigate_ToContentPage_ViewModelHasINavigationAware() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage(); ((IPageAware)navigationService).Page = rootPage; @@ -316,7 +316,7 @@ public async void Navigate_ToContentPage_ViewModelHasINavigationAware() Assert.NotNull(viewModel); Assert.True(viewModel.OnNavigatedToCalled); - var nextPageNavService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var nextPageNavService = new PageNavigationServiceMock(_container, _applicationProvider); ((IPageAware)nextPageNavService).Page = rootPage.Navigation.ModalStack[0]; await nextPageNavService.NavigateAsync("NavigationPage"); @@ -326,7 +326,7 @@ public async void Navigate_ToContentPage_ViewModelHasINavigationAware() [Fact] public async void Navigate_ToContentPage_PageHasINavigationAware() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage(); ((IPageAware)navigationService).Page = rootPage; @@ -338,7 +338,7 @@ public async void Navigate_ToContentPage_PageHasINavigationAware() Assert.NotNull(contentPage); Assert.True(contentPage.OnNavigatedToCalled); - var nextPageNavService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var nextPageNavService = new PageNavigationServiceMock(_container, _applicationProvider); ((IPageAware)nextPageNavService).Page = contentPage; await nextPageNavService.NavigateAsync("NavigationPage"); @@ -350,7 +350,7 @@ public async void Navigate_ToContentPage_PageHasINavigationAware() [Fact] public async void Navigate_ToContentPage_PageHasIConfirmNavigation_True() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPageMock(); ((IPageAware)navigationService).Page = rootPage; @@ -365,7 +365,7 @@ public async void Navigate_ToContentPage_PageHasIConfirmNavigation_True() [Fact] public async void Navigate_ToContentPage_PageHasIConfirmNavigation_False() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPageMock(); ((IPageAware)navigationService).Page = rootPage; @@ -383,7 +383,7 @@ public async void Navigate_ToContentPage_PageHasIConfirmNavigation_False() [Fact] public async void Navigate_ToContentPage_ViewModelHasIConfirmNavigation_True() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage() { BindingContext = new ContentPageMockViewModel() }; ((IPageAware)navigationService).Page = rootPage; @@ -400,7 +400,7 @@ public async void Navigate_ToContentPage_ViewModelHasIConfirmNavigation_True() [Fact] public async void Navigate_ToContentPage_ViewModelHasIConfirmNavigation_False() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage() { BindingContext = new ContentPageMockViewModel() }; ((IPageAware)navigationService).Page = rootPage; @@ -419,7 +419,7 @@ public async void Navigate_ToContentPage_ViewModelHasIConfirmNavigation_False() [Fact] public async void GoBack_ViewModelWithIConfirmNavigationFalse_ResultException() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage() {BindingContext = new ContentPageMockViewModel()}; ((IPageAware) navigationService).Page = rootPage; @@ -440,7 +440,7 @@ public async void GoBack_ViewModelWithIConfirmNavigationFalse_ResultException() [Fact] public async void GoBackToRoot_ViewModelWithIConfirmNavigationFalse_ResultException() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage() {BindingContext = new ContentPageMockViewModel()}; ((IPageAware) navigationService).Page = rootPage; @@ -461,7 +461,7 @@ public async void GoBackToRoot_ViewModelWithIConfirmNavigationFalse_ResultExcept [Fact] public async void NavigateAsync_ViewModelWithIConfirmNavigationFalse_ResultException() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage() {BindingContext = new ContentPageMockViewModel()}; ((IPageAware) navigationService).Page = rootPage; @@ -482,7 +482,7 @@ public async void NavigateAsync_ViewModelWithIConfirmNavigationFalse_ResultExcep [Fact] public async void Navigate_ToNavigatonPage_ViewModelHasINavigationAware() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage(); ((IPageAware)navigationService).Page = rootPage; @@ -499,7 +499,7 @@ public async void Navigate_ToNavigatonPage_ViewModelHasINavigationAware() [Fact] public async void Navigate_ToMasterDetailPage_ViewModelHasINavigationAware() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage(); ((IPageAware)navigationService).Page = rootPage; @@ -518,7 +518,7 @@ public async void Navigate_ToMasterDetailPage_ViewModelHasINavigationAware() [Fact] public async void Navigate_ToTabbedPage_ByName_ViewModelHasINavigationAware() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage(); ((IPageAware)navigationService).Page = rootPage; @@ -537,7 +537,7 @@ public async void Navigate_ToTabbedPage_ByName_ViewModelHasINavigationAware() [Fact] public async void Navigate_ToCarouselPage_ByName_ViewModelHasINavigationAware() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage(); ((IPageAware)navigationService).Page = rootPage; @@ -556,7 +556,7 @@ public async void Navigate_ToCarouselPage_ByName_ViewModelHasINavigationAware() [Fact] public async void Navigate_FromNavigationPage_ToContentPage_ByName() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new Xamarin.Forms.NavigationPage(); ((IPageAware)navigationService).Page = rootPage; @@ -571,7 +571,7 @@ public async void Navigate_FromNavigationPage_ToContentPage_ByName() public async Task Navigate_FromNavigationPage_WithoutChildPage_ToContentPage() { var recorder = new PageNavigationEventRecorder(); - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade, recorder); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, recorder); var navigationPage = new NavigationPageEmptyMock(recorder); ((IPageAware)navigationService).Page = navigationPage; @@ -621,7 +621,7 @@ record = recorder.TakeFirst(); public async Task NavigateAsync_From_ChildPageOfNavigationPage() { var recorder = new PageNavigationEventRecorder(); ; - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade, recorder); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, recorder); var contentPageMock = new ContentPageMock(recorder); var navigationPage = new NavigationPageMock(recorder, contentPageMock); @@ -676,7 +676,7 @@ record = recorder.TakeFirst(); public async Task NavigateAsync_From_NavigationPage_With_ChildPage_And_DoesNotReplaseRootPage() { var recorder = new PageNavigationEventRecorder(); ; - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade, recorder); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, recorder); var contentPageMock = new ContentPageMock(recorder); var contentPageMockViewModel = contentPageMock.BindingContext; var navigationPage = new NavigationPageMock(recorder, contentPageMock); @@ -747,7 +747,7 @@ record = recorder.TakeFirst(); //public async Task NavigateAsync_From_NavigationPage_With_ChildPage_And_ReplaseRootPage() //{ // var recorder = new PageNavigationEventRecorder(); ; - // var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade, recorder); + // var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, recorder); // var secondContentPageMock = new SecondContentPageMock(recorder); // var secondContentPageMockViewModel = secondContentPageMock.BindingContext; // var navigationPage = new NavigationPageMock(recorder, secondContentPageMock); @@ -818,7 +818,7 @@ record = recorder.TakeFirst(); //public async Task NavigateAsync_From_NavigationPage_When_NotClearNavigationStack() //{ // var recorder = new PageNavigationEventRecorder(); ; - // var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade, recorder); + // var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, recorder); // var contentPageMock = new ContentPageMock(recorder); // var navigationPage = new NavigationPageMock(recorder, contentPageMock); // navigationPage.ClearNavigationStackOnNavigation = false; @@ -871,7 +871,7 @@ record = recorder.TakeFirst(); public async Task NavigateAsync_From_NavigationPage_When_NotClearNavigationStack_And_SamePage() { var recorder = new PageNavigationEventRecorder(); ; - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade, recorder); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, recorder); var contentPageMock = new ContentPageMock(recorder); var navigationPage = new NavigationPageMock(recorder, contentPageMock); navigationPage.ClearNavigationStackOnNavigation = false; @@ -931,7 +931,7 @@ record = recorder.TakeFirst(); [Fact] public async Task DeepNavigate_ToNavigationPage_ToTabbedPage_SelectContentPage() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage(); ((IPageAware)navigationService).Page = rootPage; @@ -951,7 +951,7 @@ public async Task DeepNavigate_ToNavigationPage_ToTabbedPage_SelectContentPage() [Fact] public async void DeepNavigate_From_ContentPage_To_ContentPage() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage(); ((IPageAware)navigationService).Page = rootPage; @@ -964,7 +964,7 @@ public async void DeepNavigate_From_ContentPage_To_ContentPage() [Fact] public async void DeepNavigate_From_ContentPage_To_NavigationPage() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage(); ((IPageAware)navigationService).Page = rootPage; @@ -977,7 +977,7 @@ public async void DeepNavigate_From_ContentPage_To_NavigationPage() [Fact] public async void DeepNavigate_From_ContentPage_To_NavigationPage_ToContentPage() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage(); ((IPageAware)navigationService).Page = rootPage; @@ -990,7 +990,7 @@ public async void DeepNavigate_From_ContentPage_To_NavigationPage_ToContentPage( [Fact] public async void DeepNavigate_From_ContentPage_To_NavigationPage_ToContentPage_ByAbsoluteName() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage(); ((IPageAware)navigationService).Page = rootPage; @@ -1006,7 +1006,7 @@ public async void DeepNavigate_From_ContentPage_To_NavigationPage_ToContentPage_ [Fact] public async void DeepNavigate_From_ContentPage_To_NavigationPage_ToContentPage_ByAbsoluteUri() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage(); ((IPageAware)navigationService).Page = rootPage; @@ -1022,7 +1022,7 @@ public async void DeepNavigate_From_ContentPage_To_NavigationPage_ToContentPage_ [Fact] public async void DeepNavigate_From_ContentPage_To_EmptyNavigationPage_ToContentPage() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage(); ((IPageAware)navigationService).Page = rootPage; @@ -1036,7 +1036,7 @@ public async void DeepNavigate_From_ContentPage_To_EmptyNavigationPage_ToContent [Fact] public async void DeepNavigate_From_ContentPage_To_EmptyNavigationPage_ToContentPage_toContentPage() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage(); ((IPageAware)navigationService).Page = rootPage; @@ -1055,7 +1055,7 @@ public async void DeepNavigate_From_ContentPage_To_EmptyNavigationPage_ToContent [Fact] public async void DeepNavigate_To_EmptyNavigationPage_ToContentPage_toContentPage_toContentPage() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage(); ((IPageAware)navigationService).Page = rootPage; @@ -1070,7 +1070,7 @@ public async void DeepNavigate_To_EmptyNavigationPage_ToContentPage_toContentPag [Fact] public async void DeepNavigate_From_ContentPage_To_NavigationPageWithNavigationStack_ToContentPage() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage(); ((IPageAware)navigationService).Page = rootPage; @@ -1083,7 +1083,7 @@ public async void DeepNavigate_From_ContentPage_To_NavigationPageWithNavigationS [Fact] public async void DeepNavigate_From_ContentPage_To_NavigationPageWithNavigationStack_ToContentPage_ToContentPage() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage(); ((IPageAware)navigationService).Page = rootPage; @@ -1101,7 +1101,7 @@ public async void DeepNavigate_From_ContentPage_To_NavigationPageWithNavigationS [Fact] public async void DeepNavigate_From_ContentPage_To_NavigationPageWithDifferentNavigationStack_ToContentPage() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage(); ((IPageAware)navigationService).Page = rootPage; @@ -1114,7 +1114,7 @@ public async void DeepNavigate_From_ContentPage_To_NavigationPageWithDifferentNa [Fact] public async void DeepNavigate_From_ContentPage_To_TabbedPage() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage(); ((IPageAware)navigationService).Page = rootPage; @@ -1127,7 +1127,7 @@ public async void DeepNavigate_From_ContentPage_To_TabbedPage() [Fact] public async void DeepNavigate_From_ContentPage_To_CarouselPage() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage(); ((IPageAware)navigationService).Page = rootPage; @@ -1140,7 +1140,7 @@ public async void DeepNavigate_From_ContentPage_To_CarouselPage() [Fact] public async void DeepNavigate_From_ContentPage_To_MasterDetailPage() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage(); ((IPageAware)navigationService).Page = rootPage; @@ -1155,7 +1155,7 @@ public async void DeepNavigate_From_ContentPage_To_MasterDetailPage() [Fact] public async void Navigate_FromMasterDetailPage() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new MasterDetailPageMock(); ((IPageAware)navigationService).Page = rootPage; @@ -1173,7 +1173,7 @@ public async void Navigate_FromMasterDetailPage() [Fact] public async void Navigate_FromMasterDetailPage_ToSamePage() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new MasterDetailPageMock(); ((IPageAware)navigationService).Page = rootPage; @@ -1193,7 +1193,7 @@ public async void Navigate_FromMasterDetailPage_ToSamePage() [Fact] public async void DeepNavigate_ToEmptyMasterDetailPage_ToContentPage() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage(); ((IPageAware)navigationService).Page = rootPage; @@ -1211,7 +1211,7 @@ public async void DeepNavigate_ToEmptyMasterDetailPage_ToContentPage() [Fact] public async void DeepNavigate_ToEmptyMasterDetailPage_ToContentPage_UseModalNavigation() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage(); ((IPageAware)navigationService).Page = rootPage; @@ -1229,7 +1229,7 @@ public async void DeepNavigate_ToEmptyMasterDetailPage_ToContentPage_UseModalNav [Fact] public async void DeepNavigate_ToEmptyMasterDetailPage_ToContentPage_NotUseModalNavigation() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPageMock(); var navigationPage = new NavigationPage(rootPage); ((IPageAware)navigationService).Page = rootPage; @@ -1250,7 +1250,7 @@ public async void DeepNavigate_ToEmptyMasterDetailPage_ToContentPage_NotUseModal [Fact] public async void DeepNavigate_ToEmptyMasterDetailPage_ToNavigationPage() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage(); ((IPageAware)navigationService).Page = rootPage; @@ -1266,7 +1266,7 @@ public async void DeepNavigate_ToEmptyMasterDetailPage_ToNavigationPage() public async void DeepNavigate_ToEmptyMasterDetailPage_ToEmptyNavigationPage_ToContentPage() { var applicationProvider = new ApplicationProviderMock(null); - var navigationService = new PageNavigationServiceMock(_container, applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, applicationProvider); await navigationService.NavigateAsync("MasterDetailPage-Empty/NavigationPage-Empty/ContentPage"); @@ -1285,7 +1285,7 @@ public async void DeepNavigate_ToEmptyMasterDetailPage_ToEmptyNavigationPage_ToC public async void DeepNavigate_ToEmptyMasterDetailPage_ToNavigationPage_ToContentPage() { var applicationProvider = new ApplicationProviderMock(null); - var navigationService = new PageNavigationServiceMock(_container, applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, applicationProvider); await navigationService.NavigateAsync("MasterDetailPage-Empty/NavigationPage/PageMock"); @@ -1303,7 +1303,7 @@ public async void DeepNavigate_ToEmptyMasterDetailPage_ToNavigationPage_ToConten [Fact] public async void DeepNavigate_ToMasterDetailPage_ToDifferentPage() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage(); ((IPageAware)navigationService).Page = rootPage; @@ -1318,7 +1318,7 @@ public async void DeepNavigate_ToMasterDetailPage_ToDifferentPage() [Fact] public async void DeepNavigate_ToMasterDetailPage_ToSamePage_ToTabbedPage() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage(); ((IPageAware)navigationService).Page = rootPage; @@ -1336,7 +1336,7 @@ public async void DeepNavigate_ToMasterDetailPage_ToSamePage_ToTabbedPage() [Fact] public async void Navigate_FromMasterDetailPage_ToTabbedPage_IsPresented() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new MasterDetailPageMock(); ((IPageAware)navigationService).Page = rootPage; rootPage.IsPresentedAfterNavigation = true; @@ -1353,7 +1353,7 @@ public async void Navigate_FromMasterDetailPage_ToTabbedPage_IsPresented() [Fact] public async void Navigate_FromMasterDetailPage_ToTabbedPage_IsNotPresented() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new MasterDetailPageMock(); ((IPageAware)navigationService).Page = rootPage; rootPage.IsPresentedAfterNavigation = false; @@ -1370,7 +1370,7 @@ public async void Navigate_FromMasterDetailPage_ToTabbedPage_IsNotPresented() [Fact] public async void Navigate_FromMasterDetailPage_ToTabbedPage_IsPresented_FromViewModel() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new MasterDetailPageEmptyMock(); ((IPageAware)navigationService).Page = rootPage; @@ -1388,7 +1388,7 @@ public async void Navigate_FromMasterDetailPage_ToTabbedPage_IsPresented_FromVie [Fact] public async void Navigate_FromMasterDetailPage_ToTabbedPage_IsNotPresented_FromViewModel() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new MasterDetailPageEmptyMock(); ((IPageAware)navigationService).Page = rootPage; @@ -1406,7 +1406,7 @@ public async void Navigate_FromMasterDetailPage_ToTabbedPage_IsNotPresented_From [Fact] public async void DeepNavigate_ToMasterDetailPage_ToNavigationPage_ToTabbedPage_SelectTab() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage(); ((IPageAware)navigationService).Page = rootPage; @@ -1424,7 +1424,7 @@ public async void DeepNavigate_ToMasterDetailPage_ToNavigationPage_ToTabbedPage_ [Fact] public async void DeepNavigate_ToMasterDetailPage_ToNavigationPage_ToContentPage_ToTabbedPage_SelectTab() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage(); ((IPageAware)navigationService).Page = rootPage; @@ -1443,7 +1443,7 @@ public async void DeepNavigate_ToMasterDetailPage_ToNavigationPage_ToContentPage [Fact] public async void DeepNavigate_FromMasterDetailPage_ToExistingNavigationPage_ToExistingTabbedPage_SelectTab() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new MasterDetailPageEmptyMock(); rootPage.Detail = new NavigationPageEmptyMock_Reused(); await rootPage.Detail.Navigation.PushAsync(new TabbedPageMock()); @@ -1471,7 +1471,7 @@ public async void DeepNavigate_FromMasterDetailPage_ToExistingNavigationPage_ToE [Fact] public async void Navigate_FromContentPage_ToTabbedPage() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage(); ((IPageAware)navigationService).Page = rootPage; @@ -1484,7 +1484,7 @@ public async void Navigate_FromContentPage_ToTabbedPage() [Fact] public async void Navigate_FromNavigationPage_ToTabbedPage() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new Xamarin.Forms.NavigationPage(); ((IPageAware)navigationService).Page = rootPage; @@ -1497,7 +1497,7 @@ public async void Navigate_FromNavigationPage_ToTabbedPage() [Fact] public async void Navigate_FromContentPage_ToTabbedPage_ToContentPage() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage(); ((IPageAware)navigationService).Page = rootPage; @@ -1514,7 +1514,7 @@ public async void Navigate_FromContentPage_ToTabbedPage_ToContentPage() [Fact] public async void Navigate_FromNavigationPage_ToTabbedPage_ToContentPage() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new Xamarin.Forms.NavigationPage(); ((IPageAware)navigationService).Page = rootPage; @@ -1528,7 +1528,7 @@ public async void Navigate_FromNavigationPage_ToTabbedPage_ToContentPage() [Fact] public async void Navigate_FromContentPage_ToTabbedPage_SelectedTab() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage(); ((IPageAware)navigationService).Page = rootPage; @@ -1543,7 +1543,7 @@ public async void Navigate_FromContentPage_ToTabbedPage_SelectedTab() [Fact] public async void Navigate_FromContentPage_ToTabbedPage_SelectedTab_NavigationPage() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage(); ((IPageAware)navigationService).Page = rootPage; @@ -1561,7 +1561,7 @@ public async void Navigate_FromContentPage_ToTabbedPage_SelectedTab_NavigationPa [Fact] public async void Navigate_FromContentPage_ToTabbedPage_SelectedTab_ToContentPage() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage(); ((IPageAware)navigationService).Page = rootPage; @@ -1579,7 +1579,7 @@ public async void Navigate_FromContentPage_ToTabbedPage_SelectedTab_ToContentPag [Fact] public async void Navigate_FromNavigationPage_ToTabbedPage_SelectedTab_ToContentPage() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new Xamarin.Forms.NavigationPage(); ((IPageAware)navigationService).Page = rootPage; @@ -1599,7 +1599,7 @@ public async void Navigate_FromNavigationPage_ToTabbedPage_SelectedTab_ToContent [Fact] public async void Navigate_FromNavigationPage_ToTabbedPage_SelectedTab_NavigationPage_ToContentPage() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new Xamarin.Forms.NavigationPage(); ((IPageAware)navigationService).Page = rootPage; @@ -1623,7 +1623,7 @@ public async void Navigate_FromNavigationPage_ToTabbedPage_SelectedTab_Navigatio [Fact] public async void Navigate_FromMasterDetailPage_ToNavigationPage_ToTabbedPage_ToContentPage() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new Xamarin.Forms.MasterDetailPage(); ((IPageAware)navigationService).Page = rootPage; @@ -1640,7 +1640,7 @@ public async void Navigate_FromMasterDetailPage_ToNavigationPage_ToTabbedPage_To [Fact] public async void Navigate_FromMasterDetailPage_ToNavigationPage_ToTabbedPage_SelectedTab() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new Xamarin.Forms.MasterDetailPage(); ((IPageAware)navigationService).Page = rootPage; @@ -1659,7 +1659,7 @@ public async void Navigate_FromMasterDetailPage_ToNavigationPage_ToTabbedPage_Se [Fact] public async void Navigate_FromMasterDetailPage_ToNavigationPage_ToTabbedPage_SelectedTab_ToContentPage() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new Xamarin.Forms.MasterDetailPage(); ((IPageAware)navigationService).Page = rootPage; @@ -1678,7 +1678,7 @@ public async void Navigate_FromMasterDetailPage_ToNavigationPage_ToTabbedPage_Se [Fact] public async void Navigate_FromContentPage_ToTabbedPage_CreateTabs() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage(); ((IPageAware)navigationService).Page = rootPage; @@ -1695,7 +1695,7 @@ public async void Navigate_FromContentPage_ToTabbedPage_CreateTabs() [Fact] public async void Navigate_FromContentPage_ToTabbedPage_CreateTabs_SelectTab() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage(); ((IPageAware)navigationService).Page = rootPage; @@ -1713,7 +1713,7 @@ public async void Navigate_FromContentPage_ToTabbedPage_CreateTabs_SelectTab() [Fact] public async void Navigate_FromContentPage_ToTabbedPage_CreateTabs_WithNavigationPage() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage(); ((IPageAware)navigationService).Page = rootPage; @@ -1733,7 +1733,7 @@ public async void Navigate_FromContentPage_ToTabbedPage_CreateTabs_WithNavigatio [Fact] public async void Navigate_FromContentPage_ToTabbedPage_CreateTabs_WithNavigationPage_SelectTab() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage(); ((IPageAware)navigationService).Page = rootPage; @@ -1759,7 +1759,7 @@ public async void Navigate_FromContentPage_ToTabbedPage_CreateTabs_WithNavigatio [Fact] public async void Navigate_FromContentPage_ToCarouselPage() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage(); ((IPageAware)navigationService).Page = rootPage; @@ -1772,7 +1772,7 @@ public async void Navigate_FromContentPage_ToCarouselPage() [Fact] public async void Navigate_FromContentPage_ToCarouselPage_ToContentPage() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage(); ((IPageAware)navigationService).Page = rootPage; @@ -1790,7 +1790,7 @@ public async void Navigate_FromContentPage_ToCarouselPage_ToContentPage() [Fact] public async void Navigate_FromContentPage_ToCarouselPage_SelectedPage() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new ContentPage(); ((IPageAware)navigationService).Page = rootPage; @@ -1809,7 +1809,7 @@ public async void Navigate_FromContentPage_ToCarouselPage_SelectedPage() [Fact] public async Task RemoveAndNavigate_OneLevel() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new Xamarin.Forms.NavigationPage(); await rootPage.Navigation.PushAsync(new ContentPageMock() { Title = "Page 1" }); @@ -1831,7 +1831,7 @@ public async Task RemoveAndNavigate_OneLevel() [Fact] public async Task RemoveAndNavigate_TwoLevels() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new Xamarin.Forms.NavigationPage(); await rootPage.Navigation.PushAsync(new ContentPageMock() { Title = "Page 1" }); @@ -1853,7 +1853,7 @@ public async Task RemoveAndNavigate_TwoLevels() [Fact] public async Task RemoveAndNavigate_ThreeLevels() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new Xamarin.Forms.NavigationPage(); await rootPage.Navigation.PushAsync(new ContentPageMock() { Title = "Page 1" }); @@ -1875,7 +1875,7 @@ public async Task RemoveAndNavigate_ThreeLevels() [Fact] public async Task RemoveAndNavigate_FourLevels() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new Xamarin.Forms.NavigationPage(); await rootPage.Navigation.PushAsync(new ContentPageMock() { Title = "Page 1" }); @@ -1901,7 +1901,7 @@ public async Task RemoveAndNavigate_FourLevels() [Fact] public async Task RemoveAndGoBack_OneLevel() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new Xamarin.Forms.NavigationPage(); await rootPage.Navigation.PushAsync(new ContentPageMock() { Title = "Page 1" }); @@ -1923,7 +1923,7 @@ public async Task RemoveAndGoBack_OneLevel() [Fact] public async Task RemoveAndGoBack_TwoLevels() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new Xamarin.Forms.NavigationPage(); await rootPage.Navigation.PushAsync(new ContentPageMock() { Title = "Page 1" }); @@ -1945,7 +1945,7 @@ public async Task RemoveAndGoBack_TwoLevels() [Fact] public async Task RemoveAndGoBack_ThreeLevels() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new Xamarin.Forms.NavigationPage(); await rootPage.Navigation.PushAsync(new ContentPageMock() { Title = "Page 1" }); @@ -1967,7 +1967,7 @@ public async Task RemoveAndGoBack_ThreeLevels() [Fact] public async void RemoveAndGoBack_WithNavigationParameters() { - var navigationService = new PageNavigationServiceMock(_container, _applicationProvider, _loggerFacade); + var navigationService = new PageNavigationServiceMock(_container, _applicationProvider); var rootPage = new Xamarin.Forms.NavigationPage(); await rootPage.Navigation.PushAsync(new ContentPageMock() { Title = "Page 1" }); From 818495b33c31408c3a42f13e7e05c0e742332911 Mon Sep 17 00:00:00 2001 From: Dan Siegel Date: Fri, 21 Aug 2020 15:13:45 -0700 Subject: [PATCH 2/2] merge IPlatformNavigationService into INavigationService --- .../Navigation/INavigationService.cs | 41 ++++++++++++++ .../INavigationServiceExtensions.cs | 53 ++---------------- .../Navigation/IPlatformNavigationService.cs | 16 ------ .../Navigation/PageNavigationService.cs | 55 +++++++++++++++++-- 4 files changed, 95 insertions(+), 70 deletions(-) delete mode 100644 src/Forms/Prism.Forms/Navigation/IPlatformNavigationService.cs diff --git a/src/Forms/Prism.Forms/Navigation/INavigationService.cs b/src/Forms/Prism.Forms/Navigation/INavigationService.cs index 472602f5ce..c6e3f5ba95 100644 --- a/src/Forms/Prism.Forms/Navigation/INavigationService.cs +++ b/src/Forms/Prism.Forms/Navigation/INavigationService.cs @@ -22,6 +22,23 @@ public interface INavigationService /// If true a go back operation was successful. If false the go back operation failed. Task GoBackAsync(INavigationParameters parameters); + /// + /// Navigates to the most recent entry in the back navigation history by popping the calling Page off the navigation stack. + /// + /// The navigation parameters + /// If true uses PopModalAsync, if false uses PopAsync + /// If true the transition is animated, if false there is no animation on transition. + /// indicating whether the request was successful or if there was an encountered . + Task GoBackAsync(INavigationParameters parameters, bool? useModalNavigation, bool animated); + + /// + /// When navigating inside a NavigationPage: Pops all but the root Page off the navigation stack + /// + /// The navigation parameters + /// indicating whether the request was successful or if there was an encountered . + /// Only works when called from a View within a NavigationPage + Task GoBackToRootAsync(INavigationParameters parameters); + /// /// Initiates navigation to the target specified by the . /// @@ -54,5 +71,29 @@ public interface INavigationService /// The name of the target to navigate to. /// The navigation parameters Task NavigateAsync(string name, INavigationParameters parameters); + + /// + /// Initiates navigation to the target specified by the . + /// + /// The name of the target to navigate to. + /// The navigation parameters + /// If true uses PushModalAsync, if false uses PushAsync + /// If true the transition is animated, if false there is no animation on transition. + /// indicating whether the request was successful or if there was an encountered . + Task NavigateAsync(string name, INavigationParameters parameters, bool? useModalNavigation, bool animated); + + /// + /// Initiates navigation to the target specified by the . + /// + /// The Uri to navigate to + /// The navigation parameters + /// If true uses PopModalAsync, if false uses PopAsync + /// If true the transition is animated, if false there is no animation on transition. + /// indicating whether the request was successful or if there was an encountered . + /// Navigation parameters can be provided in the Uri and by using the . + /// + /// NavigateAsync(new Uri("MainPage?id=3&name=brian", UriKind.RelativeSource), parameters); + /// + Task NavigateAsync(Uri uri, INavigationParameters parameters, bool? useModalNavigation, bool animated); } } diff --git a/src/Forms/Prism.Forms/Navigation/INavigationServiceExtensions.cs b/src/Forms/Prism.Forms/Navigation/INavigationServiceExtensions.cs index 9f4c5cceea..4a6f700cab 100644 --- a/src/Forms/Prism.Forms/Navigation/INavigationServiceExtensions.cs +++ b/src/Forms/Prism.Forms/Navigation/INavigationServiceExtensions.cs @@ -8,6 +8,9 @@ namespace Prism.Navigation { + /// + /// Common extensions for the + /// public static class INavigationServiceExtensions { /// @@ -24,61 +27,15 @@ public static void OnNavigationError(this Task navigationTask }); } - /// - /// Navigates to the most recent entry in the back navigation history by popping the calling Page off the navigation stack. - /// - /// Service for handling navigation between views - /// The navigation parameters - /// If true uses PopModalAsync, if false uses PopAsync - /// If true the transition is animated, if false there is no animation on transition. - /// indicating whether the request was successful or if there was an encountered . - public static Task GoBackAsync(this INavigationService navigationService, INavigationParameters parameters = null, bool? useModalNavigation = null, bool animated = true) - { - return ((IPlatformNavigationService)navigationService).GoBackAsync(parameters, useModalNavigation, animated); - } - /// /// When navigating inside a NavigationPage: Pops all but the root Page off the navigation stack /// /// The INavigatinService instance - /// The navigation parameters /// indicating whether the request was successful or if there was an encountered . /// Only works when called from a View within a NavigationPage - public static Task GoBackToRootAsync(this INavigationService navigationService, INavigationParameters parameters = null) - { - return ((IPlatformNavigationService)navigationService).GoBackToRootAsync(parameters); - } - - /// - /// Initiates navigation to the target specified by the . - /// - /// Service for handling navigation between views - /// The name of the target to navigate to. - /// The navigation parameters - /// If true uses PushModalAsync, if false uses PushAsync - /// If true the transition is animated, if false there is no animation on transition. - /// indicating whether the request was successful or if there was an encountered . - public static Task NavigateAsync(this INavigationService navigationService, string name, INavigationParameters parameters = null, bool? useModalNavigation = null, bool animated = true) - { - return ((IPlatformNavigationService)navigationService).NavigateAsync(name, parameters, useModalNavigation, animated); - } - - /// - /// Initiates navigation to the target specified by the . - /// - /// Service for handling navigation between views - /// The Uri to navigate to - /// The navigation parameters - /// If true uses PopModalAsync, if false uses PopAsync - /// If true the transition is animated, if false there is no animation on transition. - /// indicating whether the request was successful or if there was an encountered . - /// Navigation parameters can be provided in the Uri and by using the . - /// - /// NavigateAsync(new Uri("MainPage?id=3&name=brian", UriKind.RelativeSource), parameters); - /// - public static Task NavigateAsync(this INavigationService navigationService, Uri uri, INavigationParameters parameters = null, bool? useModalNavigation = null, bool animated = true) + public static Task GoBackToRootAsync(this INavigationService navigationService) { - return ((IPlatformNavigationService)navigationService).NavigateAsync(uri, parameters, useModalNavigation, animated); + return navigationService.GoBackToRootAsync(new NavigationParameters()); } /// diff --git a/src/Forms/Prism.Forms/Navigation/IPlatformNavigationService.cs b/src/Forms/Prism.Forms/Navigation/IPlatformNavigationService.cs deleted file mode 100644 index cd7f2a4ff9..0000000000 --- a/src/Forms/Prism.Forms/Navigation/IPlatformNavigationService.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using System.Threading.Tasks; - -namespace Prism.Navigation -{ - public interface IPlatformNavigationService - { - Task GoBackAsync(INavigationParameters parameters, bool? useModalNavigation, bool animated); - - Task GoBackToRootAsync(INavigationParameters parameters); - - Task NavigateAsync(string name, INavigationParameters parameters, bool? useModalNavigation, bool animated); - - Task NavigateAsync(Uri uri, INavigationParameters parameters, bool? useModalNavigation, bool animated); - } -} diff --git a/src/Forms/Prism.Forms/Navigation/PageNavigationService.cs b/src/Forms/Prism.Forms/Navigation/PageNavigationService.cs index 2fb9daafec..3e1b85db92 100644 --- a/src/Forms/Prism.Forms/Navigation/PageNavigationService.cs +++ b/src/Forms/Prism.Forms/Navigation/PageNavigationService.cs @@ -1,4 +1,4 @@ -using Prism.Behaviors; +using Prism.Behaviors; using Prism.Common; using Prism.Ioc; using System; @@ -12,12 +12,13 @@ namespace Prism.Navigation /// /// Provides page based navigation for ViewModels. /// - public class PageNavigationService : INavigationService, IPlatformNavigationService, IPageAware + public class PageNavigationService : INavigationService, IPageAware { internal const string RemovePageRelativePath = "../"; internal const string RemovePageInstruction = "__RemovePage/"; internal const string RemovePageSegment = "__RemovePage"; + // Brian appears to still be thinking... //not sure I like this static property, think about this a little more protected internal static PageNavigationSource NavigationSource { get; protected set; } = PageNavigationSource.Device; @@ -64,7 +65,14 @@ public virtual Task GoBackAsync(INavigationParameters paramet return GoBackInternal(parameters, null, true); } - Task IPlatformNavigationService.GoBackAsync(INavigationParameters parameters, bool? useModalNavigation, bool animated) + /// + /// Navigates to the most recent entry in the back navigation history by popping the calling Page off the navigation stack. + /// + /// The navigation parameters + /// If true uses PopModalAsync, if false uses PopAsync + /// If true the transition is animated, if false there is no animation on transition. + /// indicating whether the request was successful or if there was an encountered . + public virtual Task GoBackAsync(INavigationParameters parameters, bool? useModalNavigation, bool animated) { return GoBackInternal(parameters, useModalNavigation, animated); } @@ -167,7 +175,13 @@ private static bool IsMainPage(Page currentPage, Page mainPage) return false; } - Task IPlatformNavigationService.GoBackToRootAsync(INavigationParameters parameters) + /// + /// When navigating inside a NavigationPage: Pops all but the root Page off the navigation stack + /// + /// The navigation parameters + /// indicating whether the request was successful or if there was an encountered . + /// Only works when called from a View within a NavigationPage + public virtual Task GoBackToRootAsync(INavigationParameters parameters) { return GoBackToRootInternal(parameters); } @@ -240,7 +254,15 @@ public virtual Task NavigateAsync(string name, INavigationPar return NavigateInternal(name, parameters, null, true); } - Task IPlatformNavigationService.NavigateAsync(string name, INavigationParameters parameters, bool? useModalNavigation, bool animated) + /// + /// Initiates navigation to the target specified by the . + /// + /// The name of the target to navigate to. + /// The navigation parameters + /// If true uses PushModalAsync, if false uses PushAsync + /// If true the transition is animated, if false there is no animation on transition. + /// indicating whether the request was successful or if there was an encountered . + public Task NavigateAsync(string name, INavigationParameters parameters, bool? useModalNavigation, bool animated) { return NavigateInternal(name, parameters, useModalNavigation, animated); } @@ -286,7 +308,19 @@ public virtual Task NavigateAsync(Uri uri, INavigationParamet return NavigateInternal(uri, parameters, null, true); } - Task IPlatformNavigationService.NavigateAsync(Uri uri, INavigationParameters parameters, bool? useModalNavigation, bool animated) + /// + /// Initiates navigation to the target specified by the . + /// + /// The Uri to navigate to + /// The navigation parameters + /// If true uses PopModalAsync, if false uses PopAsync + /// If true the transition is animated, if false there is no animation on transition. + /// indicating whether the request was successful or if there was an encountered . + /// Navigation parameters can be provided in the Uri and by using the . + /// + /// NavigateAsync(new Uri("MainPage?id=3&name=brian", UriKind.RelativeSource), parameters); + /// + public virtual Task NavigateAsync(Uri uri, INavigationParameters parameters, bool? useModalNavigation, bool animated) { return NavigateInternal(uri, parameters, useModalNavigation, animated); } @@ -336,6 +370,15 @@ protected async virtual Task NavigateInternal(Uri uri, INavig } } + /// + /// Processes the Navigation for the Queued navigation segments + /// + /// The Current that we are navigating from. + /// The Navigation segmenets. + /// The . + /// flag if we should force Modal Navigation. + /// If true, the navigation will be animated. + /// protected virtual async Task ProcessNavigation(Page currentPage, Queue segments, INavigationParameters parameters, bool? useModalNavigation, bool animated) { if (segments.Count == 0)