public void CanRemoveMiddleItem()
        {
            ListModel <int> list = null;

            "Given non empty single model list"
            .x(() =>
            {
                list = new ListModel <int>();

                list.AddInTail(1);
                list.AddInTail(2);
                list.AddInTail(3);
                list.AddInTail(4);
                list.AddInTail(5);
            });

            "And cursor set in item 4"
            .x(() =>
            {
                list.CursorToHead();
                list.SetToNextSameItem(4);
            });

            "When user tries to remove current item"
            .x(() =>
            {
                list.RemoveItem();
            });

            "Then system must return head item and set cursor to new head"
            .x(() =>
            {
                var items = list.GetItems();
                var isSet = list.IsCursorSet();
                var item  = list.GetItem();

                var expected = new List <int>()
                {
                    1, 2, 3, 5
                };

                isSet.Should().BeTrue();
                item.Should().Be(5);
                items.Should().BeEquivalentTo(expected);
            });
        }