Exemple #1
0
        public void CanDisconnectAllTopologyNodes()
        {
            using (var topoDB = new TopologyTestDatabase(Allocator.Persistent))
            {
                var a = topoDB.CreateNode();
                var b = topoDB.CreateNode();
                var c = topoDB.CreateNode();

                for (int i = 0; i < 3; ++i)
                {
                    OutputPort outPort = k_OutputPorts[i];
                    InputPort  inPort  = k_InputPorts[i];

                    topoDB.Connect(b, outPort, a, inPort);
                    topoDB.Connect(c, outPort, b, inPort);

                    Assert.AreEqual(0, topoDB.GetOutputs(a)[outPort].Count());
                    Assert.AreEqual(1, topoDB.GetInputs(a)[inPort].Count());
                    Assert.AreEqual(1, topoDB.GetOutputs(b)[outPort].Count());
                    Assert.AreEqual(1, topoDB.GetInputs(b)[inPort].Count());
                    Assert.AreEqual(1, topoDB.GetOutputs(c)[outPort].Count());
                    Assert.AreEqual(0, topoDB.GetInputs(c)[inPort].Count());
                }

                topoDB.DisconnectAll(b);

                foreach (var node in new[] { a, b, c })
                {
                    var inputs         = topoDB.GetInputs(node);
                    var inputPortCount = inputs.GetEnumerator().Count();
                    for (int i = 0; i < inputPortCount; ++i)
                    {
                        Assert.AreEqual(0, inputs[k_InputPorts[i]].Count());
                    }

                    var outputs         = topoDB.GetOutputs(node);
                    var outputPortCount = outputs.GetEnumerator().Count();
                    for (int i = 0; i < outputPortCount; ++i)
                    {
                        Assert.AreEqual(0, outputs[k_OutputPorts[i]].Count());
                    }
                }
            }
        }