public void PortModelsCanHaveDefaultValues(object expectedValue, Func <TestNodeModelWithCustomPorts, Func <IPortModel> > createPort, Func <ConstantNodeModel, object> getValue)
        {
            VSGraphAssetModel asset = ScriptableObject.CreateInstance <VSGraphAssetModel>();
            VSGraphModel      g     = asset.CreateVSGraph <ClassStencil>("asd");

            m_Node = g.CreateNode <TestNodeModelWithCustomPorts>("test", Vector2.zero, preDefineSetup: ports => ports.CreatePortFunc = createPort(ports));
            Assert.That(getValue(m_Node.InputsByDisplayOrder.Single().EmbeddedValue), Is.EqualTo(expectedValue));
        }
コード例 #2
0
        public void MethodWithOneParameterCreatesOnePortWhenDefinedTwice()
        {
            VSGraphAssetModel asset = ScriptableObject.CreateInstance <VSGraphAssetModel>();
            VSGraphModel      g     = asset.CreateVSGraph <ClassStencil>("asd");

            m_Node = g.CreateFunctionCallNode(GetType().GetMethod(nameof(M1)), Vector2.zero);
            Assert.That(m_Node.InputsById.Count, Is.EqualTo(2));

            m_Node.DefineNode();
            Assert.That(m_Node.InputsById.Count, Is.EqualTo(2));
        }
コード例 #3
0
        public void CallingDefineTwiceCreatesOneEmbeddedConstant()
        {
            VSGraphAssetModel asset = ScriptableObject.CreateInstance <VSGraphAssetModel>();
            VSGraphModel      g     = asset.CreateVSGraph <ClassStencil>("asd");

            m_Node = g.CreateNode <TestNodeModel>("test", Vector2.zero);
            Assert.That(m_Node.InputConstantsById.Count, Is.EqualTo(1));

            m_Node.DefineNode();
            Assert.That(m_Node.InputConstantsById.Count, Is.EqualTo(1));
        }
コード例 #4
0
        public void Test_FunctionParameterDeclarationsWithSameName()
        {
            VSGraphAssetModel graphAssetModel = (VSGraphAssetModel)GraphAssetModel.Create("test", "", typeof(VSGraphAssetModel));
            VSGraphModel      graph           = graphAssetModel.CreateVSGraph <ClassStencil>("test");

            var method = graph.CreateFunction("TestFunction", Vector2.zero);

            var declaration0 = method.CreateAndRegisterFunctionParameterDeclaration("param", typeof(int).GenerateTypeHandle(graph.Stencil));
            var declaration1 = method.CreateAndRegisterFunctionParameterDeclaration("param", typeof(int).GenerateTypeHandle(graph.Stencil));

            Assert.That(declaration0, Is.Not.EqualTo(declaration1));
            Assert.That(method.FunctionParameterModels.Count(), Is.EqualTo(2));
        }
        public void CloningAVariableClonesFields()
        {
            VSGraphAssetModel graphAssetModel = (VSGraphAssetModel)GraphAssetModel.Create("test", "", typeof(VSGraphAssetModel));
            VSGraphModel      graph           = graphAssetModel.CreateVSGraph <ClassStencil>("test");
            var decl = graph.CreateGraphVariableDeclaration("asd", TypeHandle.Float, true);

            decl.Tooltip = "asdasd";
            var clone = ((VariableDeclarationModel)decl).Clone();

            Assert.IsFalse(ReferenceEquals(decl, clone));
            Assert.AreEqual(decl.Tooltip, clone.Tooltip);
            Assert.AreNotEqual(decl.GetId(), clone.GetId());
        }
コード例 #6
0
        public void Test_FunctionVariableDeclarationsIsSerializedInGraphAsset()
        {
            VSGraphAssetModel graphAssetModel = (VSGraphAssetModel)GraphAssetModel.Create("test", "Assets/MyGraphTest.asset", typeof(VSGraphAssetModel));
            VSGraphModel      graph           = graphAssetModel.CreateVSGraph <ClassStencil>("test");
            FunctionModel     method          = graph.CreateFunction("TestFunction", Vector2.zero);

            VariableDeclarationModel declaration = method.CreateFunctionVariableDeclaration("var", typeof(int).GenerateTypeHandle(graph.Stencil));

            string nodeModelPath       = AssetDatabase.GetAssetPath(declaration.InitializationModel.NodeAssetReference);
            string graphAssetModelPath = AssetDatabase.GetAssetPath(graphAssetModel);

            Assert.That(nodeModelPath, Is.EqualTo(graphAssetModelPath));
            AssetDatabase.DeleteAsset(graphAssetModelPath);
        }
コード例 #7
0
        public void SetNameFromUserNameTest(string userInput, string expectedName, string expectedTitle)
        {
            VSGraphAssetModel graphAssetModel = (VSGraphAssetModel)GraphAssetModel.Create("test", "", typeof(VSGraphAssetModel));
            VSGraphModel      graph           = graphAssetModel.CreateVSGraph <ClassStencil>("test");

            var method = graph.CreateFunction("method", Vector2.left * 200);

            method.CreateFunctionVariableDeclaration("bar", typeof(int).GenerateTypeHandle(graph.Stencil));
            var variable = method.CreateFunctionVariableDeclaration("temp", typeof(int).GenerateTypeHandle(graph.Stencil));

            variable.SetNameFromUserName(userInput);
            Assert.That(variable.VariableName, Is.EqualTo(expectedName));
            Assert.That(variable.Title, Is.EqualTo(expectedTitle));
        }