예제 #1
0
        public void OnConnectorDelete_WithConnectionRemovedHandler()
        {
            //Arrange
            var sourceNode = Guid.NewGuid();
            var targetNode = Guid.NewGuid();
            var sourceNodeControl = new Mock<INodeControlView>();
            sourceNodeControl.SetupGet(n => n.NodeId).Returns(sourceNode);
            sourceNodeControl.SetupGet(n => n.CenterPosition).Returns(new Point());
            var targetNodeControl = new Mock<INodeControlView>();
            targetNodeControl.SetupGet(n => n.NodeId).Returns(targetNode);
            targetNodeControl.SetupGet(n => n.CenterPosition).Returns(new Point());
            var connector = new Connector(_control);
            connector.SetSourceNode(sourceNodeControl.Object);
            connector.SetTargetNode(targetNodeControl.Object);
            NodeConnectionEventArgs eventArgs = null;
            _control.ConnectionRemoved += (sender, args) => eventArgs = args;

            //Act
            _control.OnConnectorDelete(connector, EventArgs.Empty);

            //Assert
            Assert.IsNotNull(eventArgs);
            Assert.AreEqual(sourceNode, eventArgs.SourceNodeId);
            Assert.AreEqual(targetNode, eventArgs.TargetNodeId);
        }
예제 #2
0
        public void DataBind(NetworkMapModel model)
        {
            if (model == null || model.Nodes == null)
                return;

            var nodeControls = new List<NodeControl>();
            foreach (var node in model.Nodes)
            {
                var nodeControl = CreateNodeControl(node);
                nodeControls.Add(nodeControl);
                Controls.Add(nodeControl);
            }

            if (model.Connections == null)
                return;

            foreach (var connection in model.Connections)
            {
                var sourceControl = nodeControls.FirstOrDefault(n => n.NodeId == connection.SourceNodeId);
                var targetControl = nodeControls.FirstOrDefault(n => n.NodeId == connection.TargetNodeId);
                if (sourceControl == null || targetControl == null)
                    continue;

                var connector = new Connector(this);
                connector.SetSourceNode(sourceControl);
                connector.SetTargetNode(targetControl);
                connector.Delete += OnConnectorDelete;
                Controls.Add(connector);
            }
        }