Beispiel #1
0
        public void UpdatesEdgeCacheOnEdgeRemove()
        {
            TestNodeGraph graph = new TestNodeGraph();

            var node0 = new TestNode();
            var node1 = new TestNode();

            graph.AddNode(node0);
            graph.AddNode(node1);

            var outSlot = node0.CreateOutputSlot <ValueSlot <Vector3> >("Out");
            var inSlot  = node1.CreateInputSlot <ValueSlot <Vector3> >("In");

            var edge = graph.Connect(outSlot.slotReference, inSlot.slotReference);

            Assert.AreEqual(1, graph.GetEdges().Count);

            graph.RemoveEdge(edge);
            Assert.IsFalse(inSlot.GetSlotConnectionCache().Any());
            Assert.IsFalse(outSlot.GetSlotConnectionCache().Any());
        }
        public void TestCanUpdateSlotPriority()
        {
            var graph = new TestNodeGraph();
            var node  = new TestNode();

            node.CreateOutputSlot <TestSlot>("output").SetValueType(typeof(Vector3)).SetPriority(0);
            node.name = "Test Node";
            graph.AddNode(node);

            Assert.AreEqual(1, graph.GetNodes <INode>().Count());
            var found = graph.GetNodes <INode>().FirstOrDefault();

            Assert.AreEqual(0, found.GetInputSlots <ISlot>().Count());
            Assert.AreEqual(1, found.GetOutputSlots <ISlot>().Count());
            Assert.AreEqual(1, found.GetSlots <ISlot>().Count());

            var slot = found.GetOutputSlots <ISlot>().FirstOrDefault();

            Assert.AreEqual(0, slot.priority);
            slot.priority = 2;
            Assert.AreEqual(2, slot.priority);
        }
        public void TestCanUpdateSlotPriorityByReaddingSlotToTestNode()
        {
            var graph = new TestNodeGraph();
            var node  = new TestNode();
            var slot0 = new TestSlot(typeof(Vector3), SlotType.Output, 0);
            var slot1 = new TestSlot(typeof(Vector3), SlotType.Output, 0).SetPriority(5);

            node.AddSlot(slot0);
            node.AddSlot(slot1);
            node.name = "Test Node";
            graph.AddNode(node);

            Assert.AreEqual(1, graph.GetNodes <INode>().Count());
            var found = graph.GetNodes <INode>().FirstOrDefault();

            Assert.AreEqual(0, found.GetInputSlots <ISlot>().Count());
            Assert.AreEqual(1, found.GetOutputSlots <ISlot>().Count());
            Assert.AreEqual(1, found.GetSlots <ISlot>().Count());

            var slot = found.GetOutputSlots <ISlot>().FirstOrDefault();

            Assert.AreEqual(5, slot.priority);
        }
        public void TestCanUpdateDisplaynameByReaddingSlotToTestNode()
        {
            var graph = new TestNodeGraph();
            var node  = new TestNode();
            var slot0 = new TestSlot(typeof(Vector3), SlotType.Output, 0).SetDisplayName("output");
            var slot1 = new TestSlot(typeof(Vector3), SlotType.Output, 0).SetDisplayName("output_updated");

            node.AddSlot(slot0);
            node.AddSlot(slot1);
            node.name = "Test Node";
            graph.AddNode(node);

            Assert.AreEqual(1, graph.GetNodes <INode>().Count());
            var found = graph.GetNodes <INode>().FirstOrDefault();

            Assert.AreEqual(0, found.GetInputSlots <ISlot>().Count());
            Assert.AreEqual(1, found.GetOutputSlots <ISlot>().Count());
            Assert.AreEqual(1, found.GetSlots <ISlot>().Count());

            var slot = found.GetOutputSlots <ISlot>().FirstOrDefault();

            Assert.AreEqual("output_updated (Vector3)", slot.displayName);
        }
        public void TestCanNotAddNullSlotToTestNode()
        {
            var node = new TestNode();

            Assert.Throws <ArgumentNullException>(() => node.AddSlot(null));
        }