Пример #1
0
        public void TestUndoRedoForEdgeModification()
        {
            string commands = @"
                MouseDown|e:System.Windows.Input.MouseButton,Left|u:0xffffffff|e:DesignScriptStudio.Graph.Core.NodePart,None|i:-1|e:System.Windows.Input.ModifierKeys,None
                MouseUp|e:System.Windows.Input.MouseButton,Left|u:0xffffffff|e:DesignScriptStudio.Graph.Core.NodePart,None|i:-1|e:System.Windows.Input.ModifierKeys,None
                CreateCodeBlockNode|d:15359.0|d:15149.0|s:
                BeginNodeEdit|u:0x10000001|e:DesignScriptStudio.Graph.Core.NodePart,Text
                MouseDown|e:System.Windows.Input.MouseButton,Left|u:0xffffffff|e:DesignScriptStudio.Graph.Core.NodePart,None|i:-1|e:System.Windows.Input.ModifierKeys,None
                MouseUp|e:System.Windows.Input.MouseButton,Left|u:0x10000001|e:DesignScriptStudio.Graph.Core.NodePart,Text|i:-1|e:System.Windows.Input.ModifierKeys,None
                EndNodeEdit|u:0x10000001|s:10;|b:True
                MouseDown|e:System.Windows.Input.MouseButton,Left|u:0xffffffff|e:DesignScriptStudio.Graph.Core.NodePart,None|i:-1|e:System.Windows.Input.ModifierKeys,None
                MouseUp|e:System.Windows.Input.MouseButton,Left|u:0xffffffff|e:DesignScriptStudio.Graph.Core.NodePart,None|i:-1|e:System.Windows.Input.ModifierKeys,None
                CreateIdentifierNode|d:15542.0|d:15145.0
                CreateIdentifierNode|d:15542.0|d:15242.0
                MouseDown|e:System.Windows.Input.MouseButton,Left|u:0x10000001|e:DesignScriptStudio.Graph.Core.NodePart,OutputSlot|i:0|e:System.Windows.Input.ModifierKeys,None
                BeginDrag|e:System.Windows.Input.MouseButton,Left|u:0x10000001|e:DesignScriptStudio.Graph.Core.NodePart,OutputSlot|i:0|e:System.Windows.Input.ModifierKeys,None|d:15380.0|d:15149.0
                EndDrag|e:System.Windows.Input.MouseButton,Left|u:0x10000002|e:DesignScriptStudio.Graph.Core.NodePart,InputSlot|i:0|e:System.Windows.Input.ModifierKeys,None|d:15520.0|d:15144.0
                MouseUp|e:System.Windows.Input.MouseButton,Left|u:0x10000002|e:DesignScriptStudio.Graph.Core.NodePart,InputSlot|i:0|e:System.Windows.Input.ModifierKeys,None
                ClearSelection
                SelectComponent|u:0x60000001|e:System.Windows.Input.ModifierKeys,None
                MouseDown|e:System.Windows.Input.MouseButton,Left|u:0x10000002|e:DesignScriptStudio.Graph.Core.NodePart,InputSlot|i:0|e:System.Windows.Input.ModifierKeys,None
                BeginDrag|e:System.Windows.Input.MouseButton,Left|u:0x10000002|e:DesignScriptStudio.Graph.Core.NodePart,InputSlot|i:0|e:System.Windows.Input.ModifierKeys,None|d:15521.0|d:15146.0
                EndDrag|e:System.Windows.Input.MouseButton,Left|u:0x10000003|e:DesignScriptStudio.Graph.Core.NodePart,InputSlot|i:0|e:System.Windows.Input.ModifierKeys,None|d:15520.0|d:15243.0
                MouseUp|e:System.Windows.Input.MouseButton,Left|u:0x10000003|e:DesignScriptStudio.Graph.Core.NodePart,InputSlot|i:0|e:System.Windows.Input.ModifierKeys,None";

            GraphController graphController = new GraphController(null);
            bool            result00        = graphController.RunCommands(commands);

            Assert.AreEqual(true, result00);

            VisualEdge edge00 = graphController.GetVisualEdge(0x60000001);

            Assert.IsNotNull(edge00);
            Assert.AreEqual(0x30000001, edge00.StartSlotId);
            Assert.AreEqual(0x30000004, edge00.EndSlotId);

            commands = @"UndoOperation";
            bool result01 = graphController.RunCommands(commands);

            Assert.AreEqual(true, result01);

            VisualEdge edge01 = graphController.GetVisualEdge(0x60000001);

            Assert.IsNotNull(edge01);
            Assert.AreEqual(0x30000001, edge00.StartSlotId);
            Assert.AreEqual(0x30000002, edge00.EndSlotId);

            commands = @"RedoOperation";
            bool result02 = graphController.RunCommands(commands);

            Assert.AreEqual(true, result02);

            VisualEdge edge02 = graphController.GetVisualEdge(0x60000001);

            Assert.IsNotNull(edge02);
            Assert.AreEqual(0x30000001, edge00.StartSlotId);
            Assert.AreEqual(0x30000004, edge00.EndSlotId);
        }
Пример #2
0
        internal void EnsureEdgeInfo(uint edgeId, uint startSlotId, uint endSlotId, EdgeType edgeType)
        {
            VisualEdge edge = controller.GetVisualEdge(edgeId);

            Assert.AreNotEqual(null, edge);                 // Make sure the edge exists.
            Assert.AreEqual(startSlotId, edge.StartSlotId); // Connecting from...
            Assert.AreEqual(endSlotId, edge.EndSlotId);     // Connecting to...
            Assert.AreEqual(edgeType, edge.EdgeType);       // Explicit or implicit?
        }
Пример #3
0
        public void TestCreate00()
        {
            IStorage       storage        = new BinaryStorage();
            EdgeController edgeController = null;

            Assert.Throws <ArgumentNullException>(() =>
            {
                IVisualEdge edge = VisualEdge.Create(edgeController, storage);
            });
        }
Пример #4
0
        public void TestCreate01()
        {
            IStorage        storage         = null;
            GraphController graphController = new GraphController(null);
            EdgeController  edgeController  = new EdgeController(graphController);

            Assert.Throws <ArgumentNullException>(() =>
            {
                IVisualEdge edge = VisualEdge.Create(edgeController, storage);
            });
        }
Пример #5
0
        public void TestSerializeNullException()
        {
            IStorage        storage         = null;
            GraphController graphController = new GraphController(null);
            EdgeController  edgeController  = new EdgeController(graphController);
            IVisualEdge     edge            = new VisualEdge(edgeController, 0x30000001, 0x30000002, false);

            Assert.Throws <ArgumentNullException>(() =>
            {
                edge.Serialize(storage);
            });
        }
Пример #6
0
        public void TestSerializeDeserialize()
        {
            IStorage        storage         = new BinaryStorage();
            GraphController graphController = new GraphController(null);
            EdgeController  edgeController  = new EdgeController(graphController);
            IVisualEdge     edge00          = new VisualEdge(edgeController, 0x30000001, 0x30000002, false);

            edge00.Serialize(storage);
            storage.Seek(0, SeekOrigin.Begin);
            IVisualEdge edge01 = VisualEdge.Create(edgeController, storage);

            Assert.AreEqual(edge00.EdgeId, edge01.EdgeId);
            Assert.AreEqual(edge00.StartSlotId, edge01.StartSlotId);
            Assert.AreEqual(edge00.EndSlotId, edge01.EndSlotId);
        }
Пример #7
0
        public void TestDeserilaizeOperationException()
        {
            IStorage        storage         = new BinaryStorage();
            GraphController graphController = new GraphController(null);
            EdgeController  edgeController  = new EdgeController(graphController);
            IVisualEdge     edge            = new VisualEdge(edgeController, 0x30000001, 0x30000002, false);

            storage.WriteUnsignedInteger(FieldCode.EdgeSignature, 12);
            storage.Seek(0, SeekOrigin.Begin);

            Assert.Throws <InvalidOperationException>(() =>
            {
                edge.Deserialize(storage);
            });
        }
Пример #8
0
        public void TestRecordEdgeCreationForUndo00()
        {
            GraphController  graphController = new GraphController(null);
            UndoRedoRecorder urr             = new UndoRedoRecorder(graphController);
            EdgeController   edgeController  = new EdgeController(graphController);

            List <IVisualEdge> edgeList = new List <IVisualEdge>();
            VisualEdge         edge     = new VisualEdge(edgeController, EdgeType.ExplicitConnection);

            edgeList.Add(edge);

            Assert.Throws <InvalidOperationException>(() =>
            {
                urr.RecordEdgeCreationForUndo(edgeList);
            });
        }
Пример #9
0
        public void TestUndoRedoForEdgeCreation()
        {
            string commands = @"
                MouseDown|e:System.Windows.Input.MouseButton,Left|u:0xffffffff|e:DesignScriptStudio.Graph.Core.NodePart,None|i:-1|e:System.Windows.Input.ModifierKeys,None
                MouseUp|e:System.Windows.Input.MouseButton,Left|u:0xffffffff|e:DesignScriptStudio.Graph.Core.NodePart,None|i:-1|e:System.Windows.Input.ModifierKeys,None
                CreateCodeBlockNode|d:15334.0|d:15155.0|s:
                BeginNodeEdit|u:0x10000001|e:DesignScriptStudio.Graph.Core.NodePart,Text
                MouseDown|e:System.Windows.Input.MouseButton,Left|u:0xffffffff|e:DesignScriptStudio.Graph.Core.NodePart,None|i:-1|e:System.Windows.Input.ModifierKeys,None
                MouseUp|e:System.Windows.Input.MouseButton,Left|u:0x10000001|e:DesignScriptStudio.Graph.Core.NodePart,Text|i:-1|e:System.Windows.Input.ModifierKeys,None
                EndNodeEdit|u:0x10000001|s:10;|b:True
                MouseDown|e:System.Windows.Input.MouseButton,Left|u:0xffffffff|e:DesignScriptStudio.Graph.Core.NodePart,None|i:-1|e:System.Windows.Input.ModifierKeys,None
                MouseUp|e:System.Windows.Input.MouseButton,Left|u:0xffffffff|e:DesignScriptStudio.Graph.Core.NodePart,None|i:-1|e:System.Windows.Input.ModifierKeys,None
                CreateIdentifierNode|d:15536.0|d:15194.0
                MouseDown|e:System.Windows.Input.MouseButton,Left|u:0x10000001|e:DesignScriptStudio.Graph.Core.NodePart,OutputSlot|i:0|e:System.Windows.Input.ModifierKeys,None
                BeginDrag|e:System.Windows.Input.MouseButton,Left|u:0x10000001|e:DesignScriptStudio.Graph.Core.NodePart,OutputSlot|i:0|e:System.Windows.Input.ModifierKeys,None|d:15352.0|d:15154.0
                EndDrag|e:System.Windows.Input.MouseButton,Left|u:0x10000002|e:DesignScriptStudio.Graph.Core.NodePart,InputSlot|i:0|e:System.Windows.Input.ModifierKeys,None|d:15518.0|d:15195.0
                MouseUp|e:System.Windows.Input.MouseButton,Left|u:0x10000002|e:DesignScriptStudio.Graph.Core.NodePart,InputSlot|i:0|e:System.Windows.Input.ModifierKeys,None";

            GraphController graphController = new GraphController(null);
            bool            result00        = graphController.RunCommands(commands);

            Assert.AreEqual(true, result00);

            VisualEdge edge00 = graphController.GetVisualEdge(0x60000001);

            Assert.IsNotNull(edge00);

            commands = @"UndoOperation";
            bool result01 = graphController.RunCommands(commands);

            Assert.AreEqual(true, result01);

            VisualEdge edge01 = graphController.GetVisualEdge(0x60000001);

            Assert.IsNull(edge01);

            commands = @"RedoOperation";
            bool result02 = graphController.RunCommands(commands);

            Assert.AreEqual(true, result02);

            VisualEdge edge02 = graphController.GetVisualEdge(0x60000001);

            Assert.IsNotNull(edge02);
        }