示例#1
0
        public void SetTargetPort_ShouldChangePropertiesAndTriggerEvent()
        {
            // Arrange
            var           link            = new TestLink(sourcePort: new PortModel(null), targetPort: null);
            var           parent          = new NodeModel();
            var           tp              = new PortModel(parent);
            var           eventsTriggered = 0;
            PortModel     oldTp           = null;
            PortModel     newTp           = null;
            BaseLinkModel linkInstance    = null;

            // Act
            link.TargetPortChanged += (l, o, n) =>
            {
                eventsTriggered++;
                linkInstance = l;
                oldTp        = o;
                newTp        = n;
            };

            link.SetTargetPort(tp);

            // Assert
            eventsTriggered.Should().Be(1);
            link.TargetPort.Should().BeSameAs(tp);
            oldTp.Should().BeNull();
            newTp.Should().BeSameAs(tp);
            linkInstance.Should().BeSameAs(link);
            link.TargetNode.Should().BeSameAs(parent);
        }