public override ConstraintResult ApplyTo(object actual) { if (m_ExpectedPort == null) { Description = "Expected is not a valid port."; return(new ConstraintResult(this, actual, false)); } var actualPort = (PortModel)actual; if (actualPort == null) { Description = "Actual is not a valid port."; return(new ConstraintResult(this, actual, false)); } var portModels = m_ExpectedPort.GraphModel.GetConnections(actualPort).ToList(); var isConnected = portModels.Any(x => PortModel.Equivalent(x, m_ExpectedPort)); if (!isConnected) { Description = $"Actual port [{actualPort}] is not connected to expected port [{m_ExpectedPort}]."; } else { Description = $"Actual port [{actualPort}] is connected to expected port [{m_ExpectedPort}]."; } return(new ConstraintResult(this, actual, isConnected)); }
public void Test_DeleteElementsAction_ManyEdges([Values] TestingMode mode) { var node0 = GraphModel.CreateNode <Type0FakeNodeModel>("Node0", new Vector2(-200, 0)); var node1 = GraphModel.CreateNode <Type0FakeNodeModel>("Node1", new Vector2(200, 0)); GraphModel.CreateEdge(node0.Input0, node1.Output0); GraphModel.CreateEdge(node0.Input1, node1.Output1); GraphModel.CreateEdge(node0.Input2, node1.Output2); TestPrereqActionPostreq(mode, () => { RefreshReference(ref node0); RefreshReference(ref node1); Assert.That(GetNodeCount(), Is.EqualTo(2)); Assert.That(GetEdgeCount(), Is.EqualTo(3)); Assert.That(node0.Input0, Is.ConnectedTo(node1.Output0)); Assert.That(node0.Input1, Is.ConnectedTo(node1.Output1)); Assert.That(node0.Input2, Is.ConnectedTo(node1.Output2)); var edge0 = GraphModel.EdgeModels.First(e => PortModel.Equivalent(e.InputPortModel, node0.Input0)); return(new DeleteElementsAction(edge0)); }, () => { RefreshReference(ref node0); RefreshReference(ref node1); Assert.That(GetNodeCount(), Is.EqualTo(2)); Assert.That(GetEdgeCount(), Is.EqualTo(2)); Assert.That(node0.Input0, Is.Not.ConnectedTo(node1.Output0)); Assert.That(node0.Input1, Is.ConnectedTo(node1.Output1)); Assert.That(node0.Input2, Is.ConnectedTo(node1.Output2)); }); TestPrereqActionPostreq(mode, () => { RefreshReference(ref node0); RefreshReference(ref node1); Assert.That(GetNodeCount(), Is.EqualTo(2)); Assert.That(GetEdgeCount(), Is.EqualTo(2)); Assert.That(node0.Input0, Is.Not.ConnectedTo(node1.Output0)); Assert.That(node0.Input1, Is.ConnectedTo(node1.Output1)); Assert.That(node0.Input2, Is.ConnectedTo(node1.Output2)); var edge1 = GraphModel.EdgeModels.First(e => PortModel.Equivalent(e.InputPortModel, node0.Input1)); return(new DeleteElementsAction(edge1)); }, () => { RefreshReference(ref node0); RefreshReference(ref node1); Assert.That(GetNodeCount(), Is.EqualTo(2)); Assert.That(GetEdgeCount(), Is.EqualTo(1)); Assert.That(node0.Input0, Is.Not.ConnectedTo(node1.Output0)); Assert.That(node0.Input1, Is.Not.ConnectedTo(node1.Output1)); Assert.That(node0.Input2, Is.ConnectedTo(node1.Output2)); }); TestPrereqActionPostreq(mode, () => { RefreshReference(ref node0); RefreshReference(ref node1); Assert.That(GetNodeCount(), Is.EqualTo(2)); Assert.That(GetEdgeCount(), Is.EqualTo(1)); Assert.That(node0.Input0, Is.Not.ConnectedTo(node1.Output0)); Assert.That(node0.Input1, Is.Not.ConnectedTo(node1.Output1)); Assert.That(node0.Input2, Is.ConnectedTo(node1.Output2)); var edge2 = GraphModel.EdgeModels.First(e => PortModel.Equivalent(e.InputPortModel, node0.Input2)); return(new DeleteElementsAction(edge2)); }, () => { RefreshReference(ref node0); RefreshReference(ref node1); Assert.That(GetNodeCount(), Is.EqualTo(2)); Assert.That(GetEdgeCount(), Is.EqualTo(0)); Assert.That(node0.Input0, Is.Not.ConnectedTo(node1.Output0)); Assert.That(node0.Input1, Is.Not.ConnectedTo(node1.Output1)); Assert.That(node0.Input2, Is.Not.ConnectedTo(node1.Output2)); }); }