Beispiel #1
0
        public void ProviderShouldNavigateToViewModelAndRegisterCallback()
        {
            ThreadManager.ImmediateInvokeOnUiThreadAsync = true;
            bool   isInvoked    = false;
            var    callbackMock = new OperationCallbackMock();
            var    viewModel    = GetViewModel <NavigableViewModelMock>();
            string 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();
        }
Beispiel #2
0
        public void ProviderShouldNotCompleteCallbackNotOnBackNavigation()
        {
            bool   isInvoked    = false;
            var    callbackMock = new OperationCallbackMock();
            var    viewModel    = GetViewModel <NavigableViewModelMock>();
            string 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 virtual void ShowCallbackShouldBeInvokedAfterWindowClosedTrueResult()
        {
            var view = new DialogViewMock();
            var vm   = GetViewModel <NavigableViewModelMock>();

            ViewManager.GetViewDelegate = (model, s) => view;
            WindowViewMediatorBase <TView> windowMediator = Create(vm);

            var              mockCallback    = new OperationCallbackMock();
            bool             isRegistered    = false;
            IOperationResult operationResult = null;

            OperationCallbackManager.Register = (type, o, arg3, arg4) =>
            {
                type.ShouldEqual(OperationType.WindowNavigation);
                o.ShouldEqual(vm);
                arg3.ShouldEqual(mockCallback);
                isRegistered = true;
            };
            OperationCallbackManager.SetResult = (o, result) =>
            {
                o.ShouldEqual(vm);
                (result.OperationContext is INavigationContext).ShouldBeTrue();
                operationResult = result;
            };

            windowMediator.ShowAsync(mockCallback, DataContext.Empty);
            isRegistered.ShouldBeTrue();

            vm.OperationResult = true;
            windowMediator.CloseAsync(null).Result.ShouldBeTrue();
            operationResult.ShouldNotBeNull();
            operationResult.Result.ShouldEqual(true);
        }