public void WhenSelectedItemIsNotNull_CanExecute_ShowCommand()
        {
            var item = Mock.Create<TreeViewItemViewModel>();

            var target = new TreeViewFieldViewModel { SelectedItem = item };

            Assert.IsTrue(target.ShowCommand.CanExecute(null));
        }
        public void WhenSelectedItemIsNull_CannotExecute_ShowCommand()
        {
            var target = new TreeViewFieldViewModel();

            target.SelectedItem = null;

            Assert.IsFalse(target.ShowCommand.CanExecute(null));
        }
        public void NotifyPropertyChangedTest()
        {
            var target = new TreeViewFieldViewModel();

            TestsHelper.TestPropertyWithNotifyPropertyChanged(target, () => target.SelectedItem);
            TestsHelper.TestPropertyWithNotifyPropertyChanged(target, () => target.SortDescriptors);
            TestsHelper.TestPropertyWithNotifyPropertyChanged(target, () => target.GroupColumn);
            TestsHelper.TestPropertyWithNotifyPropertyChanged(target, () => target.CurrentPageNumber);
            TestsHelper.TestPropertyWithNotifyPropertyChanged(target, () => target.PageCount);
        }
        public void Initialize(ITreeViewItem item, TreeViewFieldViewModel parentField)
        {
            if (item == null)
                throw new ArgumentNullException("item");

            if (parentField == null)
                throw new ArgumentNullException("parentField");

            ParentFieldViewModel = parentField;
            IsExpanded = false;

            Refresh(item);
        }
        public void ShowCommand_Shows_SelectedItem()
        {
            // Arrange.
            const string ProcessName = "TestProcess";
            const int ItemId = 111;
            const int Level = -1;
            const int MasterId = 6;
            const int ChildId = 7;

            var treeViewItem = Mock.Create<ITreeViewItem>();
            Mock.Arrange(() => treeViewItem.Id).Returns(ItemId);
            Mock.Arrange(() => treeViewItem.Level).Returns(Level);
            Mock.Arrange(() => treeViewItem.MasterId).Returns(MasterId);
            Mock.Arrange(() => treeViewItem.ChildId).Returns(ChildId);

            var parentVM = Mock.Create<TreeViewFieldViewModel>();

            var tag = new TreeViewItemViewModel { Item = treeViewItem };

            parentVM.TreeViewItemViewModelFactory = new ExportFactory<TreeViewItemViewModel>(() => new Tuple<TreeViewItemViewModel, Action>(tag, () => { }));

            parentVM.Items.Add(parentVM.TreeViewItemViewModelFactory.CreateExport().Value);

            var detailsViewModel = Mock.Create<IDetailsViewModel>();
            var parentViewModel = Mock.Create<IDetailsViewModel>();
            var windowManager = Mock.Create<IShell>();

            var target = new TreeViewFieldViewModel();
            target.ReferenceName = ProcessName;
            target.SelectedItem = parentVM.Items[0];
            target.WindowManager = windowManager;
            target.ParentDetailsVM = parentViewModel;
            target.DetailsViewModelFactory = new ExportFactory<IDetailsViewModel>(() => new Tuple<IDetailsViewModel, Action>(detailsViewModel, () => { }));

            // Act.
            target.ShowCommand.Execute(null);

            // Assert.
            Mock.Assert(() => detailsViewModel.Refresh(ProcessName, ItemId), Occurs.Once());
            Mock.Assert(() => windowManager.ShowChildWindow(parentViewModel, detailsViewModel, null), Occurs.Once());
        }
        public void PropertiesGetSetTest()
        {
            var target = new TreeViewFieldViewModel();

            TestsHelper.TestPublicPropertiesGetSet(target, x => target.VisibilityRules);
        }