public void WhenTargetNodeIsHead_ShouldInsertItemsAtStart() { var sut = new ChainedList <int>(new List <int> { 1, 2, 4 }); sut.AddRangeBefore(sut.Head, new List <int> { 10, 11, 12 }); var first = sut.Head; var second = first.Next; var third = second.Next; var fourth = third.Next; var fifth = fourth.Next; var sixth = fifth.Next; Assert.AreEqual(10, first.Value); Assert.AreEqual(11, second.Value); Assert.AreEqual(12, third.Value); Assert.AreEqual(1, fourth.Value); Assert.AreEqual(2, fifth.Value); Assert.AreEqual(4, sixth.Value); Assert.IsNull(sixth.Next); }
public void WhenCalled_ShouldInsertItemBeforeSpecifiedNode() { var sut = new ChainedList <int>(new List <int> { 1, 2, 4 }); sut.AddRangeBefore(sut.Head.Next, new List <int> { 10, 11, 12 }); var first = sut.Head; var second = first.Next; var third = second.Next; var fourth = third.Next; var fifth = fourth.Next; var sixth = fifth.Next; Assert.AreEqual(1, first.Value); Assert.AreEqual(10, second.Value); Assert.AreEqual(11, third.Value); Assert.AreEqual(12, fourth.Value); Assert.AreEqual(2, fifth.Value); Assert.AreEqual(4, sixth.Value); Assert.IsNull(sixth.Next); }
public void WhenListIsEmpty_ShouldInsertItemsToList() { var sut = new ChainedList <int>(); sut.AddRangeBefore(sut.Head, new List <int> { 10, 11, 12 }); var first = sut.Head; var second = first.Next; var third = second.Next; Assert.AreEqual(10, first.Value); Assert.AreEqual(11, second.Value); Assert.AreEqual(12, third.Value); Assert.IsNull(third.Next); }