public void ChangingTooltipChangesUITooltip()
        {
            GraphView graphView = new GraphView(null, null, "");
            var       nodeModel = new SingleOutputNodeModel();

            nodeModel.DefineNode();
            var node = new CollapsibleInOutNode();

            node.SetupBuildAndUpdate(nodeModel, null, graphView);

            var portModel = nodeModel.Ports.First();

            Assert.IsNotNull(portModel as PortModel);
            var port = portModel.GetUI <Port>(graphView);

            Assert.IsNotNull(port);

            Assert.AreEqual("", port.tooltip);

            const string newTooltip = "New Tooltip";

            (portModel as PortModel).SetTooltip(newTooltip);
            node.UpdateFromModel();

            Assert.AreEqual(newTooltip, port.tooltip);
        }
        public void ChangingPortNameChangesPortLabel()
        {
            GraphView graphView = new GraphView(null, null, "");
            var       nodeModel = new SingleOutputNodeModel();

            nodeModel.DefineNode();
            var node = new CollapsibleInOutNode();

            node.SetupBuildAndUpdate(nodeModel, null, graphView);

            var portModel = nodeModel.Ports.First();
            var port      = portModel.GetUI <Port>(graphView);

            Assert.IsNotNull(port);

            var label = port.SafeQ <Label>();

            Assert.AreEqual("", label.text);

            Assert.IsNotNull(portModel as IHasTitle);
            const string newTitle = "New Title";

            (portModel as IHasTitle).Title = newTitle;
            node.UpdateFromModel();

            Assert.AreEqual(newTitle, label.text);
        }
        public IEnumerator PortConnectorAndCapHavePortColor()
        {
            var nodeModel = new SingleOutputNodeModel();

            nodeModel.DefineNode();
            var node = new CollapsibleInOutNode();

            node.SetupBuildAndUpdate(nodeModel, m_CommandDispatcher, m_GraphView);
            m_GraphView.AddElement(node);
            yield return(null);

            var portModel = nodeModel.Ports.First();
            var port      = portModel.GetUI <Port>(m_GraphView);

            Assert.IsNotNull(port);
            var connector    = port.SafeQ(PortConnectorPart.connectorUssName);
            var connectorCap = port.SafeQ(PortConnectorPart.connectorCapUssName);

            CustomStyleProperty <Color> portColorProperty = new CustomStyleProperty <Color>("--port-color");
            Color portColor;

            Assert.IsTrue(port.customStyle.TryGetValue(portColorProperty, out portColor));

            Assert.AreEqual(portColor, connector.resolvedStyle.borderBottomColor);
            Assert.AreEqual(portColor, connectorCap.resolvedStyle.backgroundColor);
        }
        public void ConnectingPortUpdateClasses()
        {
            GraphView graphView = new GraphView(null, null, "");

            var nodeModel = new FakeIONodeModel {
                InputCount = 1, OuputCount = 1
            };

            nodeModel.DefineNode();

            var node = new CollapsibleInOutNode();

            node.SetupBuildAndUpdate(nodeModel, null, graphView);

            var portModel = nodeModel.Ports.First() as FakePortModel;

            Assert.IsNotNull(portModel);
            var port = portModel.GetUI <Port>(graphView);

            Assert.IsNotNull(port);

            Assert.IsTrue(port.ClassListContains(Port.notConnectedModifierUssClassName));
            Assert.IsFalse(port.ClassListContains(Port.connectedModifierUssClassName));

            portModel.FakeIsConnected = true;
            port.UpdateFromModel();

            Assert.IsFalse(port.ClassListContains(Port.notConnectedModifierUssClassName));
            Assert.IsTrue(port.ClassListContains(Port.connectedModifierUssClassName));
        }
예제 #5
0
        public void CollapsibleNodeHasExpectedParts(Func <BasicModel.NodeModel> nodeCreator)
        {
            GraphView graphView = new GraphView(null, null, "");
            var       nodeModel = nodeCreator.Invoke();

            nodeModel.DefineNode();
            var node = new CollapsibleInOutNode();

            node.SetupBuildAndUpdate(nodeModel, null, graphView);

            Assert.IsNotNull(node.SafeQ <VisualElement>(CollapsibleInOutNode.titleIconContainerPartName), "Title part was expected but not found");
            Assert.IsNotNull(node.SafeQ <VisualElement>(Node.portContainerPartName), "Port Container part was expected but not found");
            Assert.IsNotNull(node.SafeQ <VisualElement>(CollapsibleInOutNode.collapseButtonPartName), "Collapsible Button part was expected but not found");

            if (nodeModel.GetType() == typeof(NodeModel))
            {
                Assert.IsNull(node.SafeQ <Port>(), "No Port were expected but at least one was found");
            }
            else if (nodeModel.GetType() == typeof(IONodeModel))
            {
                var inputs  = node.SafeQ <VisualElement>(InOutPortContainerPart.inputPortsUssName);
                var outputs = node.SafeQ <VisualElement>(InOutPortContainerPart.outputPortsUssName);
                Assert.IsNotNull(inputs, "Input Port Container part was expected but not found");
                Assert.IsNotNull(outputs, "Output Port Container part was expected but not found");
                Assert.IsNotNull(inputs.SafeQ <Port>(), "At least one Input Port was expected but none were found");
                Assert.IsNotNull(outputs.SafeQ <Port>(), "At least one Output Port was expected but none were found");
            }
            else
            {
                Assert.IsNotNull(node.SafeQ <Port>(), "At least one Port was expected but none were found");
            }
        }