public void CreateEdge_Calls_Add_Edge_For_Source_And_Targ_Nodes() { //Arrange var mockNodeA = new Mock<IBasicNode>(); var mockNodeB = new Mock<IBasicNode>(); var net = new BasicAdjList(Guid.NewGuid()); mockNodeA.Setup(foo => foo.Network).Returns(net); mockNodeB.Setup(foo => foo.Network).Returns(net); mockNodeA.Setup(foo => foo.Index).Returns(0); mockNodeB.Setup(foo => foo.Index).Returns(1); net.AddNewNode(mockNodeA.Object); net.AddNewNode(mockNodeB.Object); var edge = net.CreateEdge(mockNodeA.Object, mockNodeB.Object); mockNodeA.Verify(foo => foo.AddEdge(edge), Times.AtLeastOnce()); mockNodeB.Verify(foo => foo.AddEdge(edge), Times.AtLeastOnce()); }