public void ConstructorTest() { // Act. var expression = new OneInTwoOutExpression(ExpressionNodeType.SetChecklistData); // Assert. Assert.AreEqual(ExpressionNodeType.SetChecklistData, expression.Type); Assert.IsNotNull(expression.ConnectorIn); Assert.IsNotNull(expression.Connector1Out); Assert.IsNotNull(expression.Connector2Out); }
/// <summary> /// Initializes a new instance of the <see cref="OneInTwoOutExpressionNode"/> class. /// </summary> /// <param name="diagramViewModel"> /// The diagram view model. /// </param> /// <param name="expressionObject"> /// The expression object. /// </param> /// <exception cref="ArgumentNullException"> /// The <paramref name="expressionObject"/> parameter is null. /// </exception> public OneInTwoOutExpressionNode(IDiagramViewModel diagramViewModel, OneInTwoOutExpression expressionObject) : base(expressionObject) { if (expressionObject == null) throw new ArgumentNullException("expressionObject"); _diagramViewModel = diagramViewModel; ConnectorIn = new ExpressionConnectorViewModel(new ExpressionConnector(ConnectorType.In, expressionObject.ConnectorIn), _diagramViewModel); Connector1Out = new ExpressionConnectorViewModel(new ExpressionConnector(ConnectorType.Out, expressionObject.Connector1Out), _diagramViewModel); Connector2Out = new ExpressionConnectorViewModel(new ExpressionConnector(ConnectorType.Out, expressionObject.Connector2Out), _diagramViewModel); }
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_ConnectorCollection() { // Arrange. var expression = new OneInTwoOutExpression(); // Act. var connectors = expression.GetConnectors().ToList(); // Assert. Assert.AreEqual(3, connectors.Count); Assert.IsTrue(connectors.Contains(expression.ConnectorIn)); Assert.IsTrue(connectors.Contains(expression.Connector1Out)); Assert.IsTrue(connectors.Contains(expression.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> /// Copies members to clone. /// </summary> /// <param name="clone"> /// The clone. /// </param> protected void CopyMembers(OneInTwoOutExpression clone) { clone.ExpressionName = ExpressionName; clone.FunctionName = FunctionName; clone.Width = Width; clone.Height = Height; clone.Top = Top; clone.Left = Left; ConnectorIn.Clone(clone.ConnectorIn); Connector1Out.Clone(clone.Connector1Out); Connector2Out.Clone(clone.Connector2Out); }
/// <summary> /// Clones this instance. /// </summary> /// <returns>The clone.</returns> public override ExpressionObjectBase Clone() { var clone = new OneInTwoOutExpression(Type); CopyMembers(clone); return clone; }
/// <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)); }
private static OneInTwoOutExpression CreateValidExpression() { var source = new ConstantExpression(); var destination = new DestinationFieldList(); var destinationField1 = new DestinationField(destination); var destinationField2 = new DestinationField(destination); var expression = new OneInTwoOutExpression(); expression.ConnectorIn.ConnectedTo = source.ConnectorOut; expression.Connector1Out.ConnectedTo = destinationField1.ConnectorIn; expression.Connector2Out.ConnectedTo = destinationField2.ConnectorIn; return expression; }
public void SerializationTest() { // Arrange. const string ExpressionName = "Test Expression"; const string FunctionName = "Test Function"; const double Left = 100.0; const double Top = 200.0; const double Width = 300.0; const double Height = 400.0; var expression = new OneInTwoOutExpression(ExpressionNodeType.SetChecklistData) { ExpressionName = ExpressionName, FunctionName = FunctionName, Left = Left, Top = Top, Width = Width, Height = Height, ConnectorIn = { Name = "in", DataType = NodeDataType.Array, ElementType = NodeDataType.Double }, Connector1Out = { Name = "out1", DataType = NodeDataType.Checklist }, Connector2Out = { Name = "out2", DataType = NodeDataType.Double } }; var expressionSerializer = CreateExpressionSerializer(); // Act. var xml = expressionSerializer.Serialize(new ExpressionContainer(new List<IExpressionObjectBase> { expression })); var expressionContainer = expressionSerializer.Deserialize(xml); var newExpression = expressionContainer.Expressions.OfType<OneInTwoOutExpression>().FirstOrDefault(); // Assert. Assert.IsNotNull(newExpression); Assert.AreEqual(ExpressionNodeType.SetChecklistData, newExpression.Type); Assert.AreEqual(ExpressionName, newExpression.ExpressionName); Assert.AreEqual(FunctionName, newExpression.FunctionName); Assert.AreEqual(Left, newExpression.Left); Assert.AreEqual(Top, newExpression.Top); Assert.AreEqual(Width, newExpression.Width); Assert.AreEqual(Height, newExpression.Height); Assert.AreEqual("in", newExpression.ConnectorIn.Name); Assert.AreEqual(NodeDataType.Array, newExpression.ConnectorIn.DataType); Assert.AreEqual(NodeDataType.Double, newExpression.ConnectorIn.ElementType); Assert.AreEqual("out1", newExpression.Connector1Out.Name); Assert.AreEqual(NodeDataType.Checklist, newExpression.Connector1Out.DataType); Assert.AreEqual("out2", newExpression.Connector2Out.Name); Assert.AreEqual(NodeDataType.Double, newExpression.Connector2Out.DataType); }
public void Clone_Returns_OneInTwoOutExpression() { // Arrange. const string ExpressionName = "Test Expression"; const string FunctionName = "Test Function"; const double Left = 100.0; const double Top = 200.0; const double Width = 300.0; const double Height = 400.0; var expression = new OneInTwoOutExpression(ExpressionNodeType.SetChecklistData) { ExpressionName = ExpressionName, FunctionName = FunctionName, Left = Left, Top = Top, Width = Width, Height = Height }; // Act. var clone = expression.Clone() as OneInTwoOutExpression; // Assert. Assert.IsNotNull(clone); Assert.AreEqual(ExpressionNodeType.SetChecklistData, clone.Type); Assert.AreEqual(ExpressionName, clone.ExpressionName); Assert.AreEqual(FunctionName, clone.FunctionName); Assert.AreEqual(Left, clone.Left); Assert.AreEqual(Top, clone.Top); Assert.AreEqual(Width, clone.Width); Assert.AreEqual(Height, clone.Height); }