12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- using System.Reflection;
- using System.Linq;
- using NUnit.Framework;
- using UnityEngine;
- using UnityEditor.Graphing;
- using UnityEditor.Experimental.GraphView;
- using UnityEditor.ShaderGraph.Drawing;
-
- namespace UnityEditor.ShaderGraph.UnitTests
- {
- [TestFixture]
- class StackTests
- {
- static BlockFieldDescriptor s_DescriptorA = new BlockFieldDescriptor("Test", "BlockA", string.Empty, new FloatControl(0.0f), ShaderStage.Fragment, true);
- static BlockFieldDescriptor s_DescriptorB = new BlockFieldDescriptor("Test", "BlockA", string.Empty, new FloatControl(0.0f), ShaderStage.Fragment, true);
-
- [OneTimeSetUp]
- public void RunBeforeAnyTests()
- {
- Debug.unityLogger.logHandler = new ConsoleLogHandler();
- }
-
- [Test]
- public void CanAddBlockNodeToContext()
- {
- GraphData graph = new GraphData();
- graph.AddContexts();
-
- var node = new BlockNode();
- node.Init(s_DescriptorA);
- graph.AddBlock(node, graph.fragmentContext, 0);
-
- Assert.AreEqual(0, graph.edges.Count());
- Assert.AreEqual(1, graph.GetNodes<BlockNode>().Count());
- Assert.AreEqual(1, graph.fragmentContext.blocks.Count());
- }
-
- [Test]
- public void CanRemoveBlockNodeFromContext()
- {
- GraphData graph = new GraphData();
- graph.AddContexts();
-
- var node = new BlockNode();
- node.Init(s_DescriptorA);
- graph.AddBlock(node, graph.fragmentContext, 0);
- graph.RemoveNode(node);
-
- Assert.AreEqual(0, graph.edges.Count());
- Assert.AreEqual(0, graph.GetNodes<BlockNode>().Count());
- Assert.AreEqual(0, graph.fragmentContext.blocks.Count());
- }
-
- [Test]
- public void CanInsertBlockNodeToContext()
- {
- GraphData graph = new GraphData();
- graph.AddContexts();
-
- var nodeA = new BlockNode();
- nodeA.Init(s_DescriptorA);
- graph.AddBlock(nodeA, graph.fragmentContext, 0);
-
- var nodeB = new BlockNode();
- nodeB.Init(s_DescriptorA);
- graph.AddBlock(nodeB, graph.fragmentContext, 0);
-
- Assert.AreEqual(0, graph.edges.Count());
- Assert.AreEqual(2, graph.GetNodes<BlockNode>().Count());
- Assert.AreEqual(2, graph.fragmentContext.blocks.Count());
- Assert.AreEqual(nodeB, graph.fragmentContext.blocks[0].value);
- }
-
- [Test]
- public void CanFilterBlockNodeByShaderStage()
- {
- GraphData graph = new GraphData();
- graph.AddContexts();
-
- var node = new BlockNode();
- node.Init(s_DescriptorA);
-
- var contextView = new ContextView("Test", graph.vertexContext, null);
- var methodInfo = typeof(StackNode).GetMethod("AcceptsElement", BindingFlags.Instance | BindingFlags.NonPublic, null, new[] { typeof(GraphElement), typeof(int).MakeByRefType(), typeof(int) }, null);
- Assert.IsNotNull(methodInfo);
-
- var acceptsElement = (bool)methodInfo.Invoke(contextView, new object[] { new MaterialNodeView() { userData = node }, 0, 0 });
- Assert.IsFalse(acceptsElement);
- }
- }
- }
|