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)); }
public void TestCanUpdateSlotDisplayName() { var node = new TestNode(); node.CreateOutputSlot <TestSlot>("output").SetValueType(typeof(Vector3)); node.name = "Test Node"; Assert.AreEqual(0, node.GetInputSlots <ISlot>().Count()); Assert.AreEqual(1, node.GetOutputSlots <ISlot>().Count()); Assert.AreEqual(1, node.GetSlots <ISlot>().Count()); var slot = node.GetOutputSlots <ISlot>().FirstOrDefault(); Assert.IsNotNull(slot); Assert.AreEqual("output (Vector3)", slot.displayName); slot.displayName = "test"; Assert.AreEqual("test (Vector3)", slot.displayName); }
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()); }
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); }