public void Clone_Returns_OneInTwoOutExpressionNode()
        {
            // Arrange.
            var diagramViewModel = Mock.Create<IDiagramViewModel>(Behavior.Loose);
            var expression = new OneInTwoOutExpression();
            var node = new OneInTwoOutExpressionNode(diagramViewModel, expression);

            // Act.
            var clone = node.Clone() as OneInTwoOutExpressionNode;

            // Assert.
            Assert.IsNotNull(clone);
        }
        public void ConstructorShouldInitializeConnectors()
        {
            // Arrange.
            var diagramViewModel = Mock.Create<IDiagramViewModel>(Behavior.Loose);
            var expression = new OneInTwoOutExpression();

            // Act.
            var node = new OneInTwoOutExpressionNode(diagramViewModel, expression);

            // Assert.
            Assert.IsNotNull(node.ConnectorIn);
            Assert.IsNotNull(node.Connector1Out);
            Assert.IsNotNull(node.Connector2Out);
        }
        public void GetConnectors_Returns_AllConnectors()
        {
            // Arrange.
            var diagramViewModel = Mock.Create<IDiagramViewModel>(Behavior.Loose);
            var expression = new OneInTwoOutExpression();
            var node = new OneInTwoOutExpressionNode(diagramViewModel, expression);

            // Act.
            var connectors = node.GetConnectors().ToList();

            // Assert.
            Assert.AreEqual(3, connectors.Count);
            Assert.IsTrue(connectors.Contains(node.ConnectorIn));
            Assert.IsTrue(connectors.Contains(node.Connector1Out));
            Assert.IsTrue(connectors.Contains(node.Connector2Out));
        }
        public void WhenNodePositionChanges_ConnectorPositionsAreUpdated()
        {
            // Arrange.
            const double Left = 123.0;
            const double Top = 456.0;

            var diagramViewModel = Mock.Create<IDiagramViewModel>(Behavior.Loose);
            var expression = new OneInTwoOutExpression();
            var node = new OneInTwoOutExpressionNode(diagramViewModel, expression);

            // Act.
            node.Left = Left;

            // Assert.
            Assert.AreEqual(Left, node.ConnectorIn.Left);
            Assert.AreEqual(Left, node.Connector1Out.Left);
            Assert.AreEqual(Left, node.Connector2Out.Left);

            // Act.
            node.Top = Top;

            // Assert.
            Assert.AreEqual(Top, node.ConnectorIn.Top);
            Assert.AreEqual(Top, node.Connector1Out.Top);
            Assert.AreEqual(Top, node.Connector2Out.Top);
        }
 /// <summary>
 /// Adds the field node.
 /// </summary>
 /// <param name="item">The item.</param>
 /// <param name="diagramViewModel">The diagram view model.</param>
 private static void AddFieldNode(OneInTwoOutExpression item, IDiagramViewModel diagramViewModel)
 {
     var node = new OneInTwoOutExpressionNode(diagramViewModel, item);
     diagramViewModel.Items.Add(new NodeViewModel<OneInTwoOutExpressionNode, ExpressionConnection>(node, diagramViewModel));
 }