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 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 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);
        }
示例#4
0
        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);
        }