Beispiel #1
0
        public void UpdatesAllEdgeCachesOnDeserialize()
        {
            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");

            graph.Connect(OutSlot.slotReference, InSlot.slotReference);
            Assert.AreEqual(1, graph.GetEdges().Count);

            var serializedGraph = EditorJsonUtility.ToJson(graph, true);

            var deserialziedGraph = JsonUtility.FromJson(serializedGraph, typeof(NodeGraph)) as IGraph;
            var node0s            = deserialziedGraph.GetNodeFromGuid(node0.guid);
            var node1s            = deserialziedGraph.GetNodeFromGuid(node1.guid);
            var outSlotSer        = node0s.GetSlots <NodeSlot>().First();
            var inSlotSer         = node1s.GetSlots <NodeSlot>().First();

            Assert.IsTrue(inSlotSer.GetSlotConnectionCache().Contains(outSlotSer));
            Assert.IsTrue(outSlotSer.GetSlotConnectionCache().Contains(inSlotSer));
        }
Beispiel #2
0
        public void UpdatesEdgeCacheOnEdgeAdd()
        {
            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");

            graph.Connect(outSlot.slotReference, inSlot.slotReference);
            Assert.AreEqual(1, graph.GetEdges().Count);
            Assert.IsTrue(inSlot.GetSlotConnectionCache().Contains(outSlot));
            Assert.IsTrue(outSlot.GetSlotConnectionCache().Contains(inSlot));
        }
        public void TestCanRemoveSlotFromTestNode()
        {
            var graph  = new TestNodeGraph();
            var node   = new TestNode();
            var output = node.CreateOutputSlot <TestSlot>("output").SetValueType(typeof(Vector3));
            var input  = node.CreateInputSlot <TestSlot>("input").SetValueType(typeof(Vector3));

            graph.AddNode(node);

            Assert.AreEqual(2, node.GetSlots <ISlot>().Count());
            Assert.AreEqual(1, node.GetInputSlots <ISlot>().Count());
            Assert.AreEqual(1, node.GetOutputSlots <ISlot>().Count());

            node.RemoveSlot(input.id);

            Assert.AreEqual(1, node.GetSlots <ISlot>().Count());
            Assert.AreEqual(0, node.GetInputSlots <ISlot>().Count());
            Assert.AreEqual(1, node.GetOutputSlots <ISlot>().Count());
        }
        public void TestCanAddSlotToTestNode()
        {
            var graph  = new TestNodeGraph();
            var node   = new TestNode();
            var output = node.CreateOutputSlot <TestSlot>("output").SetValueType(typeof(Vector3));
            var input  = node.CreateInputSlot <TestSlot>("input").SetValueType(typeof(Vector3));

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

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

            Assert.AreEqual(1, found.GetInputSlots <ISlot>().Count());
            Assert.AreEqual(input.id, found.GetInputSlots <ISlot>().FirstOrDefault().id);
            Assert.AreEqual(1, found.GetOutputSlots <ISlot>().Count());
            Assert.AreEqual(output.id, found.GetOutputSlots <ISlot>().FirstOrDefault().id);
            Assert.AreEqual(2, found.GetSlots <ISlot>().Count());
        }