public void SetUp() { ServiceProvider.AttachedValueProvider = new AttachedValueProvider(); ServiceProvider.ViewModelSettingsFactory = model => new DefaultViewModelSettings(); ServiceProvider.ReflectionManager = new ExpressionReflectionManager(); CanBeResolvedTypes = new List <Type> { typeof(IThreadManager), typeof(IViewManager), typeof(IDisplayNameProvider), typeof(IViewModelProvider), typeof(OperationCallbackManagerMock), typeof(INavigationDispatcher), typeof(IViewModelPresenter) }; OperationCallbackManager = new OperationCallbackManagerMock(); NavigationDispatcher = new NavigationDispatcherMock(); ViewManager = new ViewManagerMock(); ThreadManager = new ThreadManagerMock(); ViewModelPresenter = new ViewModelPresenterMock(); ServiceProvider.ThreadManager = ThreadManager; DisplayNameProvider = new DisplayNameProviderMock(); IocContainer = new IocContainerMock { GetFunc = GetFunc, CanResolveDelegate = CanResolve }; Tracer.TraceInformation = true; ServiceProvider.Tracer = new ConsoleTracer(); ViewModelProvider = new ViewModelProvider(IocContainer); OnInit(); var app = new UnitTestApp(); app.Initialize(PlatformInfo.UnitTest, IocContainer, Empty.Array <Assembly>(), DataContext.Empty); }
public void EditCmdShouldUseCommandParameterToShowProductEditorViewModel() { var items = new List <ProductModel> { new ProductModel { Id = Guid.NewGuid() } }; bool isInitialized = false; Mock <IEditorWrapperViewModel> wrapper = SetupEditableWrapper(false, vm => { var editorViewModel = (ProductEditorViewModel)vm; editorViewModel.EntityInitialized += (model, args) => { Assert.AreEqual(args.OriginalEntity, items[0]); isInitialized = true; }; }); InitializeProductRepository(items); var viewModel = GetViewModel <ProductWorkspaceViewModel>(); viewModel.GridViewModel.SelectedItem = null; viewModel.EditProductCommand.Execute(items[0]); ViewModelPresenterMock.Verify(model => model.ShowAsync(wrapper.Object, It.IsAny <IDataContext>()), Times.Once); Assert.IsTrue(isInitialized); }
public void EditCmdShouldAddChangesResultTrue() { var items = new List <OrderModel> { new OrderModel { Id = Guid.NewGuid() } }; IList <OrderProductModel> links = new List <OrderProductModel>(); RepositoryMock .Setup(repository => repository.GetProductsByOrderAsync(items[0].Id, It.IsAny <CancellationToken>())) .Returns(Task.FromResult(links)); var wrapper = SetupEditableWrapper(true); InitializeRepository(items); var viewModel = GetViewModel <OrderWorkspaceViewModel>(); viewModel.GridViewModel.SelectedItem = items[0]; viewModel.EditOrderCommand.Execute(null); Assert.IsTrue(viewModel.HasChanges); ViewModelPresenterMock.Verify(model => model.ShowAsync(wrapper.Object, It.IsAny <IDataContext>()), Times.Once); RepositoryMock.Verify( repository => repository.GetProductsByOrderAsync(items[0].Id, It.IsAny <CancellationToken>()), Times.Once); }
public void AddCmdShouldShowOrderEditorViewModel() { var wrapper = SetupEditableWrapper(false, vm => Assert.IsInstanceOfType(vm, typeof(OrderEditorViewModel))); InitializeRepository(); var viewModel = GetViewModel <OrderWorkspaceViewModel>(); viewModel.AddOrderCommand.Execute(null); ViewModelPresenterMock.Verify(model => model.ShowAsync(wrapper.Object, It.IsAny <IDataContext>()), Times.Once); }
public void OpenOrdersCommandShouldOpenOrderWorkspaceViewModel() { var viewModel = GetViewModel <MainViewModel>(); Assert.AreEqual(viewModel.ItemsSource.Count, 0); viewModel.OpenOrdersCommand.Execute(null); ViewModelPresenterMock.Verify( presenter => presenter.ShowAsync(It.Is <IViewModel>(model => model is OrderWorkspaceViewModel), It.IsAny <IDataContext>()), Times.Once()); }
public void AddCmdShouldAddChangesResultTrue() { Mock <IEditorWrapperViewModel> wrapper = SetupEditableWrapper(true); InitializeProductRepository(); var viewModel = GetViewModel <ProductWorkspaceViewModel>(); viewModel.AddProductCommand.Execute(null); Assert.IsTrue(viewModel.HasChanges); Assert.IsNotNull(viewModel.GridViewModel.OriginalItemsSource.Single()); ViewModelPresenterMock.Verify(model => model.ShowAsync(wrapper.Object, It.IsAny <IDataContext>()), Times.Once); }
public void AddCmdShouldNotAddChangesResultFalse() { var wrapper = SetupEditableWrapper(false); InitializeRepository(); var viewModel = GetViewModel <OrderWorkspaceViewModel>(); viewModel.AddOrderCommand.Execute(null); Assert.IsFalse(viewModel.HasChanges); Assert.AreEqual(viewModel.GridViewModel.OriginalItemsSource.Count, 0); ViewModelPresenterMock.Verify(model => model.ShowAsync(wrapper.Object, It.IsAny <IDataContext>()), Times.Once); }
public void EditCmdShouldAddChangesResultTrue() { var items = new List <ProductModel> { new ProductModel { Id = Guid.NewGuid() } }; Mock <IEditorWrapperViewModel> wrapper = SetupEditableWrapper(true); InitializeProductRepository(items); var viewModel = GetViewModel <ProductWorkspaceViewModel>(); viewModel.GridViewModel.SelectedItem = items[0]; viewModel.EditProductCommand.Execute(null); Assert.IsTrue(viewModel.HasChanges); ViewModelPresenterMock.Verify(model => model.ShowAsync(wrapper.Object, It.IsAny <IDataContext>()), Times.Once); }
public void EditCmdShouldUseCommandParameterToShowOrderEditorViewModel() { var items = new List <OrderModel> { new OrderModel { Id = Guid.NewGuid() } }; bool isInitialized = false; IList <OrderProductModel> links = new List <OrderProductModel> { new OrderProductModel() }; RepositoryMock .Setup(repository => repository.GetProductsByOrderAsync(items[0].Id, It.IsAny <CancellationToken>())) .Returns(Task.FromResult(links)); var wrapper = SetupEditableWrapper(false, vm => { var editorViewModel = (OrderEditorViewModel)vm; editorViewModel.EntityInitialized += (model, args) => { Assert.AreEqual(args.OriginalEntity, items[0]); Assert.IsTrue(editorViewModel.OldLinks.SequenceEqual(links)); isInitialized = true; }; }); InitializeRepository(items); var viewModel = GetViewModel <OrderWorkspaceViewModel>(); viewModel.GridViewModel.SelectedItem = null; viewModel.EditOrderCommand.Execute(items[0]); ViewModelPresenterMock.Verify(model => model.ShowAsync(wrapper.Object, It.IsAny <IDataContext>()), Times.Once); RepositoryMock.Verify( repository => repository.GetProductsByOrderAsync(items[0].Id, It.IsAny <CancellationToken>()), Times.Once); Assert.IsTrue(isInitialized); }
protected Mock <IEditorWrapperViewModel> SetupEditableWrapper(bool result, Action <IViewModel> wrapCallback = null) { var wrapper = new Mock <IEditorWrapperViewModel>(); WrapperManagerMock .Setup(provider => provider.Wrap(It.IsAny <IViewModel>(), typeof(IEditorWrapperViewModel), It.IsAny <IDataContext>())) .Returns <IViewModel, Type, IDataContext>((vm, t, context) => { if (wrapCallback != null) { wrapCallback(vm); } return(wrapper.Object); }); var operation = new NavigationOperation(); operation.SetResult(OperationResult.CreateResult(OperationType.PageNavigation, wrapper, result)); ViewModelPresenterMock.Setup(presenter => presenter.ShowAsync(wrapper.Object, It.IsAny <IDataContext>())) .Returns(() => operation); return(wrapper); }