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); }