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(); }
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(); }
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(); }
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(); }
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(); } }
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(); }
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(); }