Example #1
0
        public void PresentShouldInvokeCallbackOnClear()
        {
            var vm = GetViewModel <NavigableViewModelMock>();
            IOperationCallback operationCallback = null;

            ApplicationSettings.Platform      = new PlatformInfo(PlatformType.WPF, new Version(0, 0));
            OperationCallbackManager.Register = (type, o, arg3, arg4) =>
            {
                type.ShouldEqual(OperationType.TabNavigation);
                operationCallback = arg3;
            };
            OperationCallbackManager.SetResult = (o, result) =>
            {
                result.Operation.ShouldEqual(OperationType.TabNavigation);
                o.ShouldEqual(vm);
                operationCallback.Invoke(result);
            };

            vm.OperationResult = true;
            MultiViewModel             viewModel = GetMultiViewModel();
            IDynamicViewModelPresenter presenter = new DynamicMultiViewModelPresenter(viewModel,
                                                                                      OperationCallbackManager);
            IAsyncOperation <bool?> task = presenter.TryShowAsync(vm, DataContext.Empty, null);

            task.ShouldNotBeNull();
            task.IsCompleted.ShouldBeFalse();
            viewModel.Clear();
            task.IsCompleted.ShouldBeTrue();
            task.Result.Result.ShouldEqual(true);
            operationCallback.ShouldNotBeNull();
        }
Example #2
0
        public void PresentShouldInvokeCallbackOnRemove()
        {
            var vm = GetViewModel <NavigableViewModelMock>();
            IOperationCallback operationCallback = null;

            OperationCallbackManager.Register = (type, o, arg3, arg4) =>
            {
                type.ShouldEqual(OperationType.TabNavigation);
                operationCallback = arg3;
            };
            OperationCallbackManager.SetResult = (o, result) =>
            {
                result.Operation.ShouldEqual(OperationType.TabNavigation);
                o.ShouldEqual(vm);
                operationCallback.Invoke(result);
            };

            vm.OperationResult = true;
            MultiViewModel             viewModel = GetMultiViewModel();
            IDynamicViewModelPresenter presenter = new DynamicMultiViewModelPresenter(viewModel,
                                                                                      OperationCallbackManager, (model, context, arg3) => true);
            IAsyncOperation <bool?> task = presenter.TryShowAsync(vm, DataContext.Empty, null);

            task.ShouldNotBeNull();
            task.IsCompleted.ShouldBeFalse();
            viewModel.RemoveViewModelAsync(vm).Result.ShouldBeTrue();
            task.IsCompleted.ShouldBeTrue();
            task.Result.Result.ShouldEqual(true);
            operationCallback.ShouldNotBeNull();
        }
Example #3
0
        public void PresenterShouldAddVmToMultiViewModel()
        {
            var vm        = GetViewModel <NavigableViewModelMock>();
            var viewModel = GetMultiViewModel();
            IDynamicViewModelPresenter presenter = new DynamicMultiViewModelPresenter(viewModel, OperationCallbackManager, (model, context, arg3) => true);
            var task = presenter.TryShowAsync(new DataContext(NavigationConstants.ViewModel.ToValue(vm)), ViewModelPresenter);

            task.ShouldNotBeNull();
            task.IsCompleted.ShouldBeFalse();
            viewModel.ItemsSource.Contains(vm).ShouldBeTrue();
        }
Example #4
0
        public void PresenterShouldAddVmToMultiViewModel()
        {
            var                        vm        = GetViewModel <NavigableViewModelMock>();
            MultiViewModel             viewModel = GetMultiViewModel();
            IDynamicViewModelPresenter presenter = new DynamicMultiViewModelPresenter(viewModel,
                                                                                      OperationCallbackManager, (model, context, arg3) => true);
            IAsyncOperation <bool?> task = presenter.TryShowAsync(vm, DataContext.Empty, null);

            task.ShouldNotBeNull();
            task.IsCompleted.ShouldBeFalse();
            viewModel.ItemsSource.Contains(vm).ShouldBeTrue();
        }
Example #5
0
        public void VmShouldInitializeCommandsAndPresenter()
        {
            var viewModel = GetViewModel <MainViewModel>();

            Assert.IsNotNull(viewModel.OpenOrdersCommand, "OpenOrdersCommand is null");
            Assert.IsNotNull(viewModel.OpenProductsCommand, "OpenProductsCommand is null");
            DynamicMultiViewModelPresenter item = ViewModelPresenterMock.Object
                                                  .DynamicPresenters
                                                  .OfType <DynamicMultiViewModelPresenter>()
                                                  .FirstOrDefault();

            Assert.IsNotNull(item);
        }
        public MainViewModel(IViewModelPresenter viewModelPresenter)
        {
            Should.NotBeNull(viewModelPresenter, "viewModelPresenter");

            _addNewTabCommand = new RelayCommand(AddNewTab);

            var presenter = new DynamicMultiViewModelPresenter(this);

            viewModelPresenter.DynamicPresenters.Add(presenter);

            if (IsDesignMode)
            {
                InitializeViewModels();
            }
        }
Example #7
0
        public void PreseterShouldUseDelegateToShowViewModel()
        {
            bool canShow   = false;
            var  vm        = GetViewModel <NavigableViewModelMock>();
            var  viewModel = GetMultiViewModel();
            IDynamicViewModelPresenter presenter = new DynamicMultiViewModelPresenter(viewModel, (model, context, arg3) => canShow);
            var task = presenter.TryShowAsync(new DataContext(NavigationConstants.ViewModel.ToValue(vm)), ViewModelPresenter);

            task.ShouldBeNull();
            viewModel.ItemsSource.Contains(vm).ShouldBeFalse();

            canShow = true;
            task    = presenter.TryShowAsync(new DataContext(NavigationConstants.ViewModel.ToValue(vm)), ViewModelPresenter);
            task.ShouldNotBeNull();
            task.IsCompleted.ShouldBeFalse();
            viewModel.ItemsSource.Contains(vm).ShouldBeTrue();
        }
Example #8
0
        public void PreseterShouldUseDelegateToShowViewModel()
        {
            bool canShow   = false;
            var  vm        = GetViewModel <NavigableViewModelMock>();
            var  viewModel = GetMultiViewModel();
            IDynamicViewModelPresenter presenter = new DynamicMultiViewModelPresenter(viewModel,
                                                                                      OperationCallbackManager, (model, context, arg3) => canShow);
            var task = presenter.TryShowAsync(vm, DataContext.Empty, null);

            task.ShouldBeNull();
            viewModel.ItemsSource.Contains(vm).ShouldBeFalse();

            canShow = true;
            task    = presenter.TryShowAsync(vm, DataContext.Empty, null);
            task.ShouldNotBeNull();
            task.IsCompleted.ShouldBeFalse();
            viewModel.ItemsSource.Contains(vm).ShouldBeTrue();
        }