Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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));
            });
        }