public void SetSourcePort_ShouldChangePropertiesAndTriggerEvent() { // Arrange var link = new TestLink(sourcePort: new PortModel(null), targetPort: null); var parent = new NodeModel(); var sp = new PortModel(parent); var eventsTriggered = 0; PortModel oldSp = null; PortModel newSp = null; BaseLinkModel linkInstance = null; // Act link.SourcePortChanged += (l, o, n) => { eventsTriggered++; linkInstance = l; oldSp = o; newSp = n; }; link.SetSourcePort(sp); // Assert eventsTriggered.Should().Be(1); link.SourcePort.Should().BeSameAs(sp); oldSp.Should().NotBeNull(); newSp.Should().BeSameAs(sp); linkInstance.Should().BeSameAs(link); link.SourceNode.Should().BeSameAs(parent); }