Пример #1
0
        public void RemoveNodeUndoBeforeExecute()
        {
            var dict = BuildTestTree();
            IRootCauseCommand command = new RemoveNodeCommand(new NullDb(), dict["Node 1"]);

            command.Undo();
        }
Пример #2
0
        public void RemoveNodeTwice()
        {
            var dict = BuildTestTree();
            IRootCauseCommand command = new RemoveNodeCommand(new NullDb(), dict["Node 1"], true);

            command.Execute();
        }
Пример #3
0
        public void RemoveNodeWithParentChildLinks()
        {
            var db    = new NullDb();
            var node1 = new AddNodeCommand(db, problem, "Node 1", true).NewNode;
            var node2 = new AddNodeCommand(db, node1, "Node 2", true).NewNode;

            new AddLinkCommand(db, problem, node2, true);

            var command = new RemoveNodeCommand(db, node1, true);

            Assert.AreEqual(1, problem.CountChildNodes());
            Assert.ReferenceEquals(node2, Enumerable.First(problem.ChildNodes));
            Assert.AreEqual(1, node2.CountParentNodes());
            Assert.ReferenceEquals(problem, Enumerable.First(node2.ParentNodes));

            command.Undo();
            Assert.AreEqual(2, problem.CountChildNodes());
            Assert.ReferenceEquals(node1, Enumerable.First(problem.ChildNodes));
            Assert.ReferenceEquals(node2, Enumerable.Last(problem.ChildNodes));
            Assert.AreEqual(2, node2.CountParentNodes());
            Assert.ReferenceEquals(problem, Enumerable.First(node2.ParentNodes));
            Assert.ReferenceEquals(node1, Enumerable.Last(node2.ParentNodes));
            Assert.AreEqual(1, node1.CountParentNodes());
            Assert.AreEqual(1, node1.CountChildNodes());
            Assert.ReferenceEquals(problem, Enumerable.First(node1.ParentNodes));
            Assert.ReferenceEquals(node2, Enumerable.First(node1.ChildNodes));
        }
Пример #4
0
        public void RemoveNodeAndUndo()
        {
            var dict = BuildTestTree();
            IRootCauseCommand command = new RemoveNodeCommand(new NullDb(), dict["Node 1"]);

            Assert.AreEqual(defaultTestTree, StringifyTree(dict["Problem"]));
            command.Execute();
            foreach (var node in new Node[] { dict["Node 1.1"], dict["Node 1.2"] })
            {
                Assert.AreEqual(1, node.CountParentNodes());
                foreach (var parent in node.ParentNodes)
                {
                    Assert.AreEqual("Problem", parent.Text);
                }
            }

            Assert.AreEqual(3, dict["Problem"].CountChildNodes());
            foreach (var node in dict["Problem"].ChildNodes)
            {
                Assert.IsTrue("Node 1.1,Node 1.2,Node 2".Contains(node.Text));
            }
            Assert.AreEqual(true, command.Executed);

            command.Undo();
            Assert.AreEqual(defaultTestTree, StringifyTree(dict["Problem"]));
            Assert.AreEqual(false, command.Executed);
        }
        public void RemovingNodeOnSceneShouldResultInRemovingFromInRepo()
        {
            var      node    = testModel.CreateElement(testNodeType);
            ICommand command = new RemoveNodeCommand(model, node);

            command.Execute();

            Assert.Zero(testModel.Nodes.Count());
        }
Пример #6
0
        public void ClearButtonClicked()
        {
            foreach (var edge in this.graphArea.EdgesList.Keys)
            {
                var command = new RemoveEdgeCommand(this.model, edge.Edge);
                this.controller.Execute(command);
            }

            foreach (var node in this.graphArea.VertexList.Keys)
            {
                var command = new RemoveNodeCommand(this.model, node.Node);
                this.controller.Execute(command);
            }
        }
Пример #7
0
        protected override void OnModelPropertyChanged(string propertyName)
        {
            RaisePropertyChanged(propertyName);

            if (propertyName == "Presentation")
            {
                RemoveNodeCommand.RaiseCanExecuteChanged();
                RemoveAllButCommand.RaiseCanExecuteChanged();
                ShowCyclesCommand.RaiseCanExecuteChanged();
                RemoveNodesWithoutSourcesCommand.RaiseCanExecuteChanged();
                RemoveNodesWithoutTargetsCommand.RaiseCanExecuteChanged();
                RemoveNodesWithoutSiblingsCommand.RaiseCanExecuteChanged();
                ShowNodesOutsideClustersCommand.RaiseCanExecuteChanged();
                FoldUnfoldAllClustersCommand.RaiseCanExecuteChanged();
                AddVisibleNodesOutsideClustersToClusterCommand.RaiseCanExecuteChanged();
                ClearSelectionCommand.RaiseCanExecuteChanged();
                InvertSelectionCommand.RaiseCanExecuteChanged();
                HomeCommand.RaiseCanExecuteChanged();
                InvalidateLayoutCommand.RaiseCanExecuteChanged();
                PrintGraphCommand.RaiseCanExecuteChanged();

                BuildClustersMenu();
                BuildSelectedNodesMenu();

                if (myTransformationsModuleObserver != null)
                {
                    mySelectionObserver.ModuleChanged -= OnSelectionChanged;
                    mySelectionObserver.Dispose();
                    mySelectionObserver = null;

                    myTransformationsModuleObserver.ModuleChanged -= OnTransformationsModuleChanged;
                    myTransformationsModuleObserver.Dispose();
                    myTransformationsModuleObserver = null;
                }

                if (Presentation != null)
                {
                    var transformations = Presentation.GetModule <ITransformationModule>();
                    myTransformationsModuleObserver = transformations.CreateObserver();
                    myTransformationsModuleObserver.ModuleChanged += OnTransformationsModuleChanged;

                    mySelectionObserver = Presentation.GetPropertySetFor <Selection>().CreateObserver();
                    mySelectionObserver.ModuleChanged += OnSelectionChanged;
                }
            }
        }
        public void TwoNodesShareTheSameConfigurationAndIncludeTypeRemoveOneIncludeTypeRemains()
        {
            AddConfigurationSectionCommand cmd = new AddConfigurationSectionCommand(Host, typeof(MyConfigurationNode), section);
            cmd.Execute(GeneratedApplicationNode);
            cmd.Execute(GeneratedApplicationNode);
            ConfigurationNode secondAddedNode = cmd.ChildNode;

            RemoveNodeCommand removeNodeCommand = new RemoveNodeCommand(Host);
            removeNodeCommand.Execute(secondAddedNode);

            ConfigurationSectionCollectionNode node = (ConfigurationSectionCollectionNode)GeneratedHierarchy.FindNodeByType(typeof(ConfigurationSectionCollectionNode));
            Assert.IsNotNull(node);
            ConfigurationSectionNode sectionNode = (ConfigurationSectionNode)GeneratedHierarchy.FindNodeByName(node, section);
            ConfigurationNode[] types = GeneratedHierarchy.FindNodesByType(sectionNode, typeof(XmlIncludeTypeNode));
            Assert.AreEqual(1, types.Length);
            XmlIncludeTypeNode xmlIncludeTypeNode = types[0] as XmlIncludeTypeNode;
            Assert.IsNotNull(xmlIncludeTypeNode);
            Assert.AreEqual(xmlIncludeTypeNode.Name, typeof(MyConfigurationData).Name);
        }
        public void TwoNodesShareTheSameConfigurationAndIncludeTypeRemoveOneIncludeTypeRemains()
        {
            AddConfigurationSectionCommand cmd = new AddConfigurationSectionCommand(Host, typeof(MyConfigurationNode), section);

            cmd.Execute(GeneratedApplicationNode);
            cmd.Execute(GeneratedApplicationNode);
            ConfigurationNode secondAddedNode = cmd.ChildNode;

            RemoveNodeCommand removeNodeCommand = new RemoveNodeCommand(Host);

            removeNodeCommand.Execute(secondAddedNode);

            ConfigurationSectionCollectionNode node = (ConfigurationSectionCollectionNode)GeneratedHierarchy.FindNodeByType(typeof(ConfigurationSectionCollectionNode));

            Assert.IsNotNull(node);
            ConfigurationSectionNode sectionNode = (ConfigurationSectionNode)GeneratedHierarchy.FindNodeByName(node, section);

            ConfigurationNode[] types = GeneratedHierarchy.FindNodesByType(sectionNode, typeof(XmlIncludeTypeNode));
            Assert.AreEqual(1, types.Length);
            XmlIncludeTypeNode xmlIncludeTypeNode = types[0] as XmlIncludeTypeNode;

            Assert.IsNotNull(xmlIncludeTypeNode);
            Assert.AreEqual(xmlIncludeTypeNode.Name, typeof(MyConfigurationData).Name);
        }