public void RemoveFirst_WhenThereAreItems_ShouldResetTheHeadNode() { // Arrange var linkedList = new SinglyLinkList<int>(); linkedList.AddFirst(new SinglyLinkListNode<int>(10)); linkedList.AddFirst(new SinglyLinkListNode<int>(20)); linkedList.AddFirst(new SinglyLinkListNode<int>(30)); // Act linkedList.RemoveFirst(); // Assert Assert.AreEqual(20, linkedList.GetHeadAndTail().Item1.Value, "Should return the expected head value."); Assert.AreEqual(10, linkedList.GetHeadAndTail().Item2.Value, "Tail should have the expected value."); Assert.AreEqual(2, linkedList.Count, "Number of items shall match."); }
public void RemoveFirst_WhenThereAreOnlySingleItem_RemovingThisShouldSetListToEmpty() { // Arrange var linkedList = new SinglyLinkList<int>(); // Act linkedList.AddFirst(new SinglyLinkListNode<int>(10)); // Assert Assert.AreEqual(1, linkedList.Count, "Should only contain 1 element."); Assert.AreSame(linkedList.GetHeadAndTail().Item1, linkedList.GetHeadAndTail().Item2, "Head and tail should be pointing to same element."); // Act linkedList.RemoveFirst(); // Assert Assert.AreEqual(0, linkedList.Count, "List should be empty."); Assert.IsNull(linkedList.GetHeadAndTail().Item1, "Head should be empty."); Assert.IsNull(linkedList.GetHeadAndTail().Item2, "Tail should be empty."); }
public void RemoveFirst_WhenNoItemsInList_ListShouldRemainTheSame() { // Arrange var linkedList = new SinglyLinkList<int>(); // Assert Assert.AreEqual(0, linkedList.Count, "There shall be no items"); Assert.IsNull(linkedList.GetHeadAndTail().Item1, "Head should be null"); Assert.IsNull(linkedList.GetHeadAndTail().Item2, "Tail should be null"); // Act linkedList.RemoveFirst(); // Assert Assert.AreEqual(0, linkedList.Count, "There shall be no items."); Assert.IsNull(linkedList.GetHeadAndTail().Item1, "Head should be null"); Assert.IsNull(linkedList.GetHeadAndTail().Item2, "Tail should be null"); }