public void ShouldReplaceLinkInAll() { // arrange var source = new SampleNode("source"); var target = new SampleNode("target"); var graph = new Graph(); graph.AddNode(source); graph.AddNode(target); var firstLink = new SampleLink(); graph.AddLink(source, target, firstLink); var secondLink = new SecondLink(); // act graph.ReplaceLink(firstLink, secondLink); // Assert Assert.That(graph.Links, Has.Count.EqualTo(1)); Assert.That(graph.Links, Has.No.Member(firstLink)); Assert.That(graph.Links, Has.Member(secondLink)); Assert.That(secondLink.Source, Is.SameAs(source)); Assert.That(secondLink.Target, Is.SameAs(target)); Assert.That(source.OutboundLinks, Has.No.Member(firstLink)); Assert.That(target.InboundLinks, Has.No.Member(firstLink)); Assert.That(source.OutboundLinks, Has.Member(secondLink)); Assert.That(target.InboundLinks, Has.Member(secondLink)); }