Esempio n. 1
0
        public void GetLastNode_should_return_the_last_node()
        {
            var myLinkedList = new MyLinkedList();

            myLinkedList.AddToFirst("firstElement");
            myLinkedList.AddToLast("secondElement");
            myLinkedList.AddToLast("thirdElement");

            var lastElement = myLinkedList.GetLastNode();

            Assert.AreEqual(lastElement.Data, "thirdElement");
            Assert.IsNull(lastElement.Next);
        }
Esempio n. 2
0
        public void GetNode_should_return_particular_node_with_specified_data()
        {
            var myLinkedList = new MyLinkedList();

            myLinkedList.AddToFirst("firstElement");
            myLinkedList.AddToLast("secondElement");
            myLinkedList.AddToLast("thirdElement");

            var secondElement = myLinkedList.GetNode("secondElement");

            Assert.AreEqual(secondElement.Data, "secondElement");
            Assert.AreEqual(secondElement.Next.Data, "thirdElement");
        }
Esempio n. 3
0
        public void RemoveNode_should_remove_Node_from_the_list()
        {
            var myLinkedList = new MyLinkedList();

            myLinkedList.AddToLast("firstElement");
            myLinkedList.AddToLast("secondElement");
            myLinkedList.AddToLast("thirdElement");

            myLinkedList.RemoveNode("secondElement");

            var firstNode = myLinkedList.GetFirstNode();

            Assert.AreEqual(firstNode.Next.Data, "thirdElement");
        }
Esempio n. 4
0
        public void AddToLast_should_append_data_to_the_list()
        {
            var myLinkedList = new MyLinkedList();

            myLinkedList.AddToLast("firstElement");
            myLinkedList.AddToLast("secondElement");

            //get the head of the list
            var firstNode = myLinkedList.GetFirstNode();

            Assert.AreEqual(firstNode.Data, "firstElement");

            //verify if the secondElement is in the Next Pointer of the first Node
            Assert.AreEqual(firstNode.Next.Data, "secondElement");
        }
Esempio n. 5
0
        public void ReverseNode_should_reverse_the_linked_list()
        {
            var myLinkedList = new MyLinkedList();

            myLinkedList.AddToLast("firstElement");
            myLinkedList.AddToLast("secondElement");
            myLinkedList.AddToLast("thirdElement");
            myLinkedList.AddToLast("fourthElement");

            myLinkedList.ReverseNode();

            var head = myLinkedList.GetFirstNode();

            Assert.AreEqual(head.Data, "fourthElement");

            var tail = myLinkedList.GetLastNode();

            Assert.AreEqual(tail.Data, "firstElement");
        }
Esempio n. 6
0
        public void InsertBefore_should_add_node_before_specified_node()
        {
            var myLinkedList = new MyLinkedList();

            myLinkedList.AddToFirst("firstElement");
            myLinkedList.AddToLast("thirdElement");

            myLinkedList.InsertBefore("thirdElement", "secondElement");
            //get node
            var secondElement = myLinkedList.GetNode("secondElement");

            //verify that the secondElement is added before third
            Assert.AreEqual(secondElement.Next.Data, "thirdElement");
        }
Esempio n. 7
0
        public void InsertBefore_should_throw_keyNotFound_exception_for_unknown_data()
        {
            var myLinkedList = new MyLinkedList();

            myLinkedList.AddToFirst("firstElement");
            myLinkedList.AddToLast("thirdElement");

            try
            {
                myLinkedList.InsertBefore("secondElement", "secondElement");
                Assert.Fail("Exception not thrown");
            }
            catch (KeyNotFoundException ex)
            {
                Assert.IsNotNull(ex);
                Assert.AreEqual(ex.Message, "Node not Found");
            }
        }