public void TestConnectorSerialization() { var obj = new FiveInOneOutExpression(); var tw = new StringWriter(); using (var xw = XmlWriter.Create(tw)) { xw.WriteStartElement("Node"); obj.Serialize(xw); xw.WriteEndElement(); } var sr = new StringReader(tw.ToString()); using (var wr = XmlReader.Create(sr)) { wr.ReadToFollowing("Node"); var result = new FiveInOneOutExpression(); result.Deserialize(wr); Assert.AreEqual(obj.Id, result.Id); Assert.AreEqual(obj.Connector1In.Id, result.Connector1In.Id); Assert.AreEqual(obj.Connector2In.Id, result.Connector2In.Id); Assert.AreEqual(obj.Connector3In.Id, result.Connector3In.Id); Assert.AreEqual(obj.Connector4In.Id, result.Connector4In.Id); Assert.AreEqual(obj.Connector5In.Id, result.Connector5In.Id); Assert.AreEqual(obj.ConnectorOut.Id, result.ConnectorOut.Id); } }
public void TestConnectorProperties() { var obj = new FiveInOneOutExpression(); TestsHelper.TestPublicPropertiesGetSet(new FiveInOneOutExpression()); Assert.IsNotNull(obj.Connector1In); Assert.IsNotNull(obj.Connector2In); Assert.IsNotNull(obj.Connector3In); Assert.IsNotNull(obj.Connector4In); Assert.IsNotNull(obj.Connector5In); Assert.IsNotNull(obj.ConnectorOut); }
public void CloneTest() { var source = new FiveInOneOutExpression(); source.ExpressionName = "source"; source.FunctionName = "func"; source.Width = 1; source.Height = 2; source.Top = 3; source.Left = 4; source.Connector1In.Name = "1"; source.Connector2In.Name = "2"; source.Connector3In.Name = "3"; source.Connector4In.Name = "4"; source.Connector4In.Name = "5"; source.ConnectorOut.Name = "6"; var cloneTo = (FiveInOneOutExpression)source.Clone(); Assert.AreEqual(source.ExpressionName, cloneTo.ExpressionName); Assert.AreEqual(source.FunctionName, cloneTo.FunctionName); Assert.AreEqual(source.Width, cloneTo.Width); Assert.AreEqual(source.Height, cloneTo.Height); Assert.AreEqual(source.Top, cloneTo.Top); Assert.AreEqual(source.Left, cloneTo.Left); Assert.AreNotEqual(source.Id, cloneTo.Id); Assert.AreNotEqual(source.Connector1In.Id, cloneTo.Connector1In.Id); Assert.AreNotEqual(source.Connector2In.Id, cloneTo.Connector2In.Id); Assert.AreNotEqual(source.Connector3In.Id, cloneTo.Connector3In.Id); Assert.AreNotEqual(source.Connector4In.Id, cloneTo.Connector4In.Id); Assert.AreNotEqual(source.Connector5In.Id, cloneTo.Connector5In.Id); Assert.AreNotEqual(source.ConnectorOut.Id, cloneTo.ConnectorOut.Id); Assert.AreEqual(source.Connector1In.Name, cloneTo.Connector1In.Name); Assert.AreEqual(source.Connector2In.Name, cloneTo.Connector2In.Name); Assert.AreEqual(source.Connector3In.Name, cloneTo.Connector3In.Name); Assert.AreEqual(source.Connector4In.Name, cloneTo.Connector4In.Name); Assert.AreEqual(source.Connector5In.Name, cloneTo.Connector5In.Name); Assert.AreEqual(source.ConnectorOut.Name, cloneTo.ConnectorOut.Name); }
/// <summary> /// Initializes a new instance of the <see cref="FiveInOneOutExpressionNode"/> class. /// </summary> /// <param name="diagramViewModel">The diagram view model.</param> /// <param name="expressionObject">The expression object.</param> /// <exception cref="System.ArgumentNullException">expressionObject</exception> public FiveInOneOutExpressionNode(IDiagramViewModel diagramViewModel, FiveInOneOutExpression expressionObject) : base(expressionObject) { if (expressionObject == null) throw new ArgumentNullException("expressionObject"); _diagramViewModel = diagramViewModel; IsValidFunc = n => true; UpdateAction = n => { }; Connector1In = new ExpressionConnectorViewModel(new ExpressionConnector(ConnectorType.In, expressionObject.Connector1In), _diagramViewModel); Connector2In = new ExpressionConnectorViewModel(new ExpressionConnector(ConnectorType.In, expressionObject.Connector2In), _diagramViewModel); Connector3In = new ExpressionConnectorViewModel(new ExpressionConnector(ConnectorType.In, expressionObject.Connector3In), _diagramViewModel); Connector4In = new ExpressionConnectorViewModel(new ExpressionConnector(ConnectorType.In, expressionObject.Connector4In), _diagramViewModel); Connector5In = new ExpressionConnectorViewModel(new ExpressionConnector(ConnectorType.In, expressionObject.Connector5In), _diagramViewModel); ConnectorOut = new ExpressionConnectorViewModel(new ExpressionConnector(ConnectorType.Out, expressionObject.ConnectorOut), _diagramViewModel); }
public void GetConnectorsTest() { var source = new FiveInOneOutExpression { Connector1In = {Name = "1"}, Connector2In = {Name = "2"}, Connector3In = {Name = "3"}, Connector4In = {Name = "4"}, Connector5In = {Name = "5"}, ConnectorOut = {Name = "6"} }; var conn = source.GetConnectors(); var connectors = conn as IList<IConnector> ?? conn.ToList(); Assert.IsTrue(connectors.Any(x => x.Name == "1")); Assert.IsTrue(connectors.Any(x => x.Name == "2")); Assert.IsTrue(connectors.Any(x => x.Name == "3")); Assert.IsTrue(connectors.Any(x => x.Name == "4")); Assert.IsTrue(connectors.Any(x => x.Name == "5")); Assert.IsTrue(connectors.Any(x => x.Name == "6")); }
public void DoesInherit_IExpressionProcessor() { var stub = new FiveInOneOutExpression(); Assert.IsNotNull(stub as IExpressionProcessor); }
public void ValidationMessageTest() { var source = new FiveInOneOutExpression { Connector1In = {Name = "c1"}, Connector2In = {Name = "c2"}, Connector3In = {Name = "c3"}, Connector4In = {Name = "c4"}, Connector5In = {Name = "c5"}, ConnectorOut = {Name = "co"} }; Assert.IsTrue(source.ValidationMessage.Contains("c1")); Assert.IsTrue(source.ValidationMessage.Contains("c2")); Assert.IsTrue(source.ValidationMessage.Contains("c3")); Assert.IsTrue(source.ValidationMessage.Contains("c4")); Assert.IsTrue(source.ValidationMessage.Contains("c5")); Assert.IsTrue(source.ValidationMessage.Contains("Result")); source.Connector1In.ConnectedTo = new ConnectorOut(null); Assert.IsFalse(source.ValidationMessage.Contains("c1")); Assert.IsTrue(source.ValidationMessage.Contains("c2")); Assert.IsTrue(source.ValidationMessage.Contains("c3")); Assert.IsTrue(source.ValidationMessage.Contains("c4")); Assert.IsTrue(source.ValidationMessage.Contains("c5")); Assert.IsTrue(source.ValidationMessage.Contains("Result")); source.Connector2In.ConnectedTo = new ConnectorOut(null); Assert.IsFalse(source.ValidationMessage.Contains("c1")); Assert.IsFalse(source.ValidationMessage.Contains("c2")); Assert.IsTrue(source.ValidationMessage.Contains("c3")); Assert.IsTrue(source.ValidationMessage.Contains("c4")); Assert.IsTrue(source.ValidationMessage.Contains("c5")); Assert.IsTrue(source.ValidationMessage.Contains("Result")); source.Connector3In.ConnectedTo = new ConnectorOut(null); Assert.IsFalse(source.ValidationMessage.Contains("c1")); Assert.IsFalse(source.ValidationMessage.Contains("c2")); Assert.IsFalse(source.ValidationMessage.Contains("c3")); Assert.IsTrue(source.ValidationMessage.Contains("c4")); Assert.IsTrue(source.ValidationMessage.Contains("c5")); Assert.IsTrue(source.ValidationMessage.Contains("Result")); source.Connector4In.ConnectedTo = new ConnectorOut(null); Assert.IsFalse(source.ValidationMessage.Contains("c1")); Assert.IsFalse(source.ValidationMessage.Contains("c2")); Assert.IsFalse(source.ValidationMessage.Contains("c3")); Assert.IsFalse(source.ValidationMessage.Contains("c4")); Assert.IsTrue(source.ValidationMessage.Contains("c5")); Assert.IsTrue(source.ValidationMessage.Contains("Result")); source.Connector5In.ConnectedTo = new ConnectorOut(null); Assert.IsFalse(source.ValidationMessage.Contains("c1")); Assert.IsFalse(source.ValidationMessage.Contains("c2")); Assert.IsFalse(source.ValidationMessage.Contains("c3")); Assert.IsFalse(source.ValidationMessage.Contains("c4")); Assert.IsFalse(source.ValidationMessage.Contains("c5")); Assert.IsTrue(source.ValidationMessage.Contains("Result")); source.ConnectorOut.ConnectedTo = new ConnectorIn(null); Assert.IsTrue(string.IsNullOrEmpty(source.ValidationMessage)); }
public void IsValidTest() { var source = new FiveInOneOutExpression(); Assert.IsFalse(source.IsValid); source.Connector1In.ConnectedTo = new ConnectorOut(null); Assert.IsFalse(source.IsValid); source.Connector2In.ConnectedTo = new ConnectorOut(null); Assert.IsFalse(source.IsValid); source.Connector3In.ConnectedTo = new ConnectorOut(null); Assert.IsFalse(source.IsValid); source.Connector4In.ConnectedTo = new ConnectorOut(null); Assert.IsFalse(source.IsValid); source.Connector5In.ConnectedTo = new ConnectorOut(null); Assert.IsFalse(source.IsValid); source.ConnectorOut.ConnectedTo = new ConnectorIn(null); Assert.IsTrue(source.IsValid); }
/// <summary> /// Clones this instance. /// </summary> /// <returns>ExpressionObjectBase.</returns> public override ExpressionObjectBase Clone() { var clone = new FiveInOneOutExpression(Type) { ExpressionName = ExpressionName, FunctionName = FunctionName, Width = Width, Height = Height, Top = Top, Left = Left, }; Connector1In.Clone(clone.Connector1In); Connector2In.Clone(clone.Connector2In); Connector3In.Clone(clone.Connector3In); Connector4In.Clone(clone.Connector4In); Connector5In.Clone(clone.Connector5In); ConnectorOut.Clone(clone.ConnectorOut); return clone; }
/// <summary> /// Determines whether [is valid mapping] [the specified expression]. /// </summary> /// <param name="expression">The expression.</param> /// <param name="sourceContext">The source context.</param> /// <returns><c>true</c> if [is valid mapping] [the specified expression]; otherwise, <c>false</c>.</returns> private bool IsValidMapping(FiveInOneOutExpression expression, SourceField sourceContext) { return expression.Connector1In != null && IsValidMapping(expression.Connector1In, sourceContext) && expression.Connector2In != null && IsValidMapping(expression.Connector2In, sourceContext) && expression.Connector3In != null && IsValidMapping(expression.Connector3In, sourceContext) && expression.Connector4In != null && IsValidMapping(expression.Connector4In, sourceContext) && expression.Connector5In != null && IsValidMapping(expression.Connector5In, sourceContext); }
private void ToExpressionNodeFiveInOneOutFunctionTest(ExpressionNodeType nodeType, Type functionNode) { var obj = new ExpressionNodeFactory(); var connection1 = new Connection(); connection1.Source = new ConnectorOut(connection1); connection1.Sink = new ConnectorIn(connection1); var connection2 = new Connection(); connection2.Source = new ConnectorOut(connection2); connection2.Sink = new ConnectorIn(connection2); var connection3 = new Connection(); connection3.Source = new ConnectorOut(connection3); connection3.Sink = new ConnectorIn(connection3); var connection4 = new Connection(); connection4.Source = new ConnectorOut(connection4); connection4.Sink = new ConnectorIn(connection4); var connection5 = new Connection(); connection5.Source = new ConnectorOut(connection5); connection5.Sink = new ConnectorIn(connection5); var connection6 = new Connection(); connection6.Source = new ConnectorOut(connection6); connection6.Sink = new ConnectorIn(connection6); var destination = new DestinationFieldList { UniqueName = "Destination" }; destination.Fields.Add(new DestinationField(destination)); var source = new SourceFieldList(); source.Fields.Add(new SourceField(source) { Name = "Field" }); source.Fields.Add(new SourceField(source) { Name = "Field" }); source.Fields.Add(new SourceField(source) { Name = "Field" }); source.Fields.Add(new SourceField(source) { Name = "Field" }); source.Fields.Add(new SourceField(source) { Name = "Field" }); var func = new FiveInOneOutExpression(nodeType) { UniqueName = "Function" }; func.Connector1In.Id = connection1.Sink.Id; source.Fields[0].ConnectorOut.Id = connection1.Source.Id; func.Connector2In.Id = connection2.Sink.Id; source.Fields[1].ConnectorOut.Id = connection2.Source.Id; func.Connector3In.Id = connection3.Sink.Id; source.Fields[2].ConnectorOut.Id = connection3.Source.Id; func.Connector4In.Id = connection4.Sink.Id; source.Fields[3].ConnectorOut.Id = connection4.Source.Id; func.Connector5In.Id = connection5.Sink.Id; source.Fields[4].ConnectorOut.Id = connection5.Source.Id; destination.Fields[0].ConnectorIn.Id = connection6.Sink.Id; func.ConnectorOut.Id = connection6.Source.Id; var objects = new List<IExpressionObjectBase> { source, destination, func, connection1, connection2, connection3, connection4, connection5, connection6 }; var destNode = obj.CreateExpressionNodes(objects); Assert.AreEqual(functionNode, destNode.ResultNodes.FirstOrDefault().Expression.GetType()); }
/// <summary> /// Adds the field node. /// </summary> /// <param name="item">The item.</param> /// <param name="diagramViewModel">The diagram view model.</param> private static void AddFieldNode(FiveInOneOutExpression item, IDiagramViewModel diagramViewModel) { var node = new FiveInOneOutExpressionNode(diagramViewModel, item); diagramViewModel.Items.Add(new NodeViewModel<FiveInOneOutExpressionNode, ExpressionConnection>(node, diagramViewModel)); }