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 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 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 void OutputPortHasExpectedParts()
        {
            GraphView graphView = new GraphView(null, null, "");
            var       model     = new SingleOutputNodeModel();

            model.DefineNode();
            var node = new Node();

            node.SetupBuildAndUpdate(model, null, graphView);

            var portModel = model.GetOutputPorts().First();

            Assert.IsNotNull(portModel);

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

            Assert.IsNotNull(port);
            Assert.IsTrue(port.ClassListContains(Port.outputModifierUssClassName));
            Assert.IsTrue(port.ClassListContains(Port.notConnectedModifierUssClassName));
            Assert.IsFalse(port.ClassListContains(Port.connectedModifierUssClassName));
            Assert.IsTrue(port.ClassListContains(Port.portDataTypeClassNamePrefix + portModel.PortDataType.Name.ToKebabCase()));
            Assert.IsNotNull(port.SafeQ <VisualElement>(Port.connectorPartName));
        }