public void ProviderShouldNotCompleteCallbackNotOnBackNavigation() { bool isInvoked = false; var callbackMock = new OperationCallbackMock(); var viewModel = GetViewModel<NavigableViewModelMock>(); object param = null; ViewPageMappingProvider.FindMappingForViewModel = (type, s, arg3) => PageMapping; NavigationService.Navigate = (item, o, d) => { param = o; return true; }; NavigationService.GetParameterFromArgs = args => param; OperationCallbackManager.Register = (type, o, arg3, arg4) => { }; OperationCallbackManager.SetResult = (o, result) => { isInvoked = true; }; NavigationProvider.NavigateAsync(callbackMock, new DataContext(NavigationConstants.ViewModel.ToValue(viewModel))); NavigationService.OnNavigated(new NavigationEventArgsMock(null, NavigationMode.New)); NavigationService.OnNavigated(new NavigationEventArgsMock(null, NavigationMode.Refresh)); isInvoked.ShouldBeFalse(); }
public void ProviderShouldNavigateToViewModelAndRegisterCallback() { ThreadManager.ImmediateInvokeOnUiThreadAsync = true; bool isInvoked = false; var callbackMock = new OperationCallbackMock(); var viewModel = GetViewModel<NavigableViewModelMock>(); object param = null; ViewPageMappingProvider.FindMappingForViewModel = (type, s, arg3) => PageMapping; NavigationService.Navigate = (item, o, d) => { param = o; return true; }; NavigationService.GetParameterFromArgs = args => param; OperationCallbackManager.Register = (type, o, arg3, arg4) => { type.ShouldEqual(OperationType.PageNavigation); o.ShouldEqual(viewModel); arg3.ShouldEqual(callbackMock); isInvoked = true; }; NavigationProvider.NavigateAsync(callbackMock, new DataContext(NavigationConstants.ViewModel.ToValue(viewModel))); NavigationService.OnNavigated(new NavigationEventArgsMock(new ViewMock(), NavigationMode.New)); isInvoked.ShouldBeTrue(); }