public void Remove_WhenThereAreNoItemsInTheList_ShouldNotChange() { // Arrange var linkedList = new SinglyLinkList<int>(); // Act var status = linkedList.Remove(10); // Assert Assert.AreEqual(0, linkedList.Count, "Should not have any items"); Assert.IsNull(linkedList.GetHeadAndTail().Item1, "Should be null."); Assert.IsNull(linkedList.GetHeadAndTail().Item2, "Should be null."); Assert.IsFalse(status, "Nothing to remove, therefore should return false."); }
public void Remove_WhenIsOnlySingleItem_RemovingItShouldResetHeadAndTail() { // Arrange var linkedList = new SinglyLinkList<string>(); linkedList.AddLast(new SinglyLinkListNode<string>("Hello")); // Act linkedList.Remove("Hello"); // Assert Assert.IsNull(linkedList.GetHeadAndTail().Item1, "Should be null."); Assert.IsNull(linkedList.GetHeadAndTail().Item2, "Should be null."); Assert.AreEqual(0, linkedList.Count, "Should not have any value."); }
public void Remove_WhenThereAreMultipleItems_ItemInTheMiddleCanBeRemoved() { // Arrange var linkedList = new SinglyLinkList<int>(); linkedList.AddFirst(new SinglyLinkListNode<int>(20)); linkedList.AddFirst(new SinglyLinkListNode<int>(30)); linkedList.AddFirst(new SinglyLinkListNode<int>(40)); // Act linkedList.Remove(30); // Assert Assert.AreEqual(2, linkedList.Count, "There should only be 2 items."); Assert.AreEqual(40, linkedList.GetHeadAndTail().Item1.Value, "Should match the expected value."); Assert.AreEqual(20, linkedList.GetHeadAndTail().Item2.Value, "Should match the expected value."); Assert.AreEqual(linkedList.GetHeadAndTail().Item1.Next, linkedList.GetHeadAndTail().Item2, "Should be pointing to appropriate item."); Assert.IsNull(linkedList.GetHeadAndTail().Item2.Next, "Should be null."); }
public void Remove_OnlyItemInList_DoesNotMatchShouldReturnFalse() { // Arrange var linkedList = new SinglyLinkList<decimal>(); linkedList.AddFirst(new SinglyLinkListNode<decimal>(20m)); // Act var status = linkedList.Remove(30); // Assert Assert.IsFalse(status, "Should not match."); Assert.AreEqual(1, linkedList.Count, "Should only be single item."); }