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()); } } } }