Esempio n. 1
0
        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 MainWindowViewModel()
 {
     AddNewCommand         = new RelayCommand(() => this.Add());
     RemoveSelectedCommand = new RelayCommand(() => this.Remove());
     ProfileCollection     = new ChainedList <Profile>();
     LoadPlayers();
 }
Esempio n. 3
0
        public void WhenCalledWithRefNodeAndPassedElementWithNoMatch_ShouldNotRemoveAnything()
        {
            var sut = new ChainedList <Person>(new List <Person>
            {
                new Person(1, "a", "e"),
                new Person(2, "b", "f"),
                new Person(3, "c", "g"),
                new Person(4, "d", "h"),
            });

            sut.Remove(new Person(1, "a", "e"));

            var first  = sut.Head;
            var second = first.Next;
            var third  = second.Next;
            var fourth = third.Next;

            Assert.AreEqual(1, first.Value.Id);
            Assert.AreEqual("a", first.Value.Name);
            Assert.AreEqual(2, second.Value.Id);
            Assert.AreEqual("b", second.Value.Name);
            Assert.AreEqual(3, third.Value.Id);
            Assert.AreEqual("c", third.Value.Name);
            Assert.AreEqual(4, fourth.Value.Id);
            Assert.AreEqual("d", fourth.Value.Name);
            Assert.IsNull(fourth.Next);
        }
Esempio n. 4
0
        public void WhenListEsEmpty_ShouldReturnTrue()
        {
            var sut = new ChainedList <int>();

            Assert.IsTrue(sut.IsEmpty);
            Assert.IsFalse(sut.Any());
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        public void WhenUsedAndListIsEmpty_ShouldReturnNull()
        {
            var sut = new ChainedList <int>();

            var result = sut.Tail;

            Assert.IsNull(result);
        }
Esempio n. 7
0
        public void WhenCalledAndEmptyList_ShouldReturn()
        {
            var sut = new ChainedList <int>();

            sut.RemoveTail();

            Assert.IsNull(sut.Head);
        }
Esempio n. 8
0
        public void WhenListContainsNodes_ShouldReturnTotalNumberOfNodes()
        {
            var sut = new ChainedList <int>(new List <int> {
                1, 2, 4, 6
            });

            Assert.AreEqual(4, sut.Count);
        }
Esempio n. 9
0
        public void WhenIsEmptyList_ReturnsEmptyList()
        {
            var sut = new ChainedList <int>();

            sut.Reverse();

            Assert.IsTrue(sut.IsEmpty);
        }
Esempio n. 10
0
        public void WhenListNotEmpty_ShouldReturnFirstNode()
        {
            var sut = new ChainedList <int>(new List <int> {
                1, 2, 4
            });

            Assert.AreEqual(1, sut.Head.Value);
        }
Esempio n. 11
0
        public void WhenListIsEmpty_ShouldInsertItemAtStart()
        {
            var sut = new ChainedList <int>();

            sut.AddAtStart(10);

            Assert.AreEqual(10, sut.Head.Value);
            Assert.IsNull(sut.Head.Next);
        }
Esempio n. 12
0
        public void WhenCalledWithPredicateAndEmptyList_ShouldInsertItemAtEnd()
        {
            var sut = new ChainedList <int>();

            sut.AddAfter(node => node.Value == 1, 10);

            Assert.AreEqual(10, sut.Head.Value);
            Assert.IsNull(sut.Head.Next);
        }
Esempio n. 13
0
        public void WhenListIsEmpty_ShouldReturnAnEmptyList()
        {
            var sut = new ChainedList <int>(new List <int>());

            var result = sut.ToList();

            Assert.IsNotNull(result);
            Assert.IsEmpty(result);
        }
Esempio n. 14
0
        public void WhenCalledListHasOneNode_ListShouldBeEmpty()
        {
            var sut = new ChainedList <int>(new List <int> {
                1
            });

            sut.RemoveTail();

            Assert.IsTrue(sut.IsEmpty);
        }
Esempio n. 15
0
        public void WhenCalledWithNoMatch_ReturnsNUll()
        {
            var sut = new ChainedList <int>(new List <int> {
                1, 2, 4
            });

            var result = sut.Find(a => a.Value == 5);

            Assert.IsNull(result);
        }
Esempio n. 16
0
        public void WhenCalledWithNoNodes_ShouldRemoveAllNodes()
        {
            var sut = new ChainedList <int>(new List <int> {
                1, 2, 4, 10
            });

            sut.Clear();

            Assert.IsTrue(sut.IsEmpty);
        }
Esempio n. 17
0
        public void WhenCalledWithSpecificNodesAndListEmpty_ShouldRemoveNodes()
        {
            var sut = new ChainedList <int>();

            sut.RemoveAll(new List <ChainedNode <int> > {
                sut.Head
            });

            Assert.IsTrue(sut.IsEmpty);
        }
Esempio n. 18
0
        public void WhenUsed_ShouldReturnLastNode()
        {
            var sut = new ChainedList <int>(new List <int> {
                1, 2, 4
            });

            var result = sut.Tail;

            Assert.AreEqual(4, result.Value);
        }
Esempio n. 19
0
        public void WhenCalledForListWithOneNode_ShouldEmptyList()
        {
            var sut = new ChainedList <int>(new List <int> {
                1
            });

            sut.RemoveHead();

            Assert.IsTrue(sut.IsEmpty);
        }
Esempio n. 20
0
        public void WhenCalledWithTElement_ReturnsFirstMatch()
        {
            var sut = new ChainedList <int>(new List <int> {
                1, 2, 4
            });

            var result = sut.NodeOf(2);

            Assert.AreEqual(2, result.Value);
            Assert.IsNotNull(result.Next);
        }
Esempio n. 21
0
        public void WhenCalled_ReturnsFirstMatch()
        {
            var sut = new ChainedList <int>(new List <int> {
                1, 2, 4
            });

            var result = sut.Find(a => a.Value == 2);

            Assert.AreEqual(2, result.Value);
            Assert.IsNotNull(result.Next);
        }
Esempio n. 22
0
        public void WhenCalledWithPredicateAndWithEmptyList_ShouldInsertItemAtEnd()
        {
            var sut = new ChainedList <int>();

            sut.AddBefore(node => node.Value == 1, 10);

            var first = sut.Head;

            Assert.AreEqual(10, first.Value);
            Assert.IsNull(first.Next);
        }
Esempio n. 23
0
        public void WhenRemoveNode_CountShouldDecrement()
        {
            var sut = new ChainedList <int>(new List <int> {
                1, 2, 4, 6
            });
            var originalCount = sut.Count;

            sut.Remove(sut.Head);
            var newCount = sut.Count;

            Assert.AreEqual(4, originalCount);
            Assert.AreEqual(3, newCount);
        }
Esempio n. 24
0
        public void WhenHasOneNode_ReturnsListWithOneNode()
        {
            var sut = new ChainedList <int>(new List <int> {
                1
            });

            sut.Reverse();

            Assert.AreEqual(1, sut.Head.Value);
            Assert.AreEqual(1, sut.Tail.Value);
            Assert.IsNull(sut.Head.Next);
            Assert.IsFalse(sut.IsEmpty);
        }
Esempio n. 25
0
        public void WhenCreatingFromList_CreatesNewLighterList()
        {
            var sut = new ChainedList <int>(new List <int> {
                1, 2, 4
            });

            var head   = sut.Head;
            var second = head.Next;
            var third  = second.Next;

            Assert.AreEqual(1, head.Value);
            Assert.AreEqual(2, second.Value);
            Assert.AreEqual(4, third.Value);
        }
Esempio n. 26
0
        public void WhenRemovesOnlyNOde_ShouldReturnTrue()
        {
            var sut = new ChainedList <int>(new List <int> {
                1
            });

            Assert.IsFalse(sut.IsEmpty);
            Assert.IsTrue(sut.Any());

            sut.RemoveHead();

            Assert.IsTrue(sut.IsEmpty);
            Assert.IsFalse(sut.Any());
        }
Esempio n. 27
0
        public void WhenListNotEmpty_ShouldReturnFalse()
        {
            var sut = new ChainedList <int>(new List <int> {
                1, 2
            });

            Assert.IsFalse(sut.IsEmpty);
            Assert.IsTrue(sut.Any());

            sut.RemoveHead();

            Assert.IsFalse(sut.IsEmpty);
            Assert.IsTrue(sut.Any());
        }
Esempio n. 28
0
        public void WhenCalledWithObjectTElementAndNoMatchFound_ReturnsNull()
        {
            var sut = new ChainedList <Person>(new List <Person>
            {
                new Person(1, "John", "Smith"),
                new Person(2, "Maria", "db"),
                new Person(3, "Docker", "Container"),
                new Person(4, "Ci", "Cd")
            });

            var result = sut.NodeOf(new Person(5, "a", "b"));

            Assert.IsNull(result);
        }
Esempio n. 29
0
        public void WhenCalled_ReturnsFlatList()
        {
            var sut = new ChainedList <int>(new List <int> {
                1, 2, 3, 4
            });

            var result = sut.ToList();

            Assert.IsNotNull(result);
            Assert.IsNotEmpty(result);
            Assert.AreEqual(result.Count, 4);
            Assert.AreEqual(1, result[0]);
            Assert.AreEqual(2, result[1]);
            Assert.AreEqual(3, result[2]);
            Assert.AreEqual(4, result[3]);
        }
Esempio n. 30
0
        public void WhenCalledWithElementPredicateAndNoMatch_ShouldNotRemoveAnyElement()
        {
            var sut = new ChainedList <int>(new List <int> {
                2, 10
            });

            sut.RemoveAll(v => v == 1 || v == 4);

            Assert.AreEqual(2, sut.Count);
            var first  = sut.Head;
            var second = first.Next;

            Assert.AreEqual(2, first.Value);
            Assert.AreEqual(10, second.Value);
            Assert.IsNull(second.Next);
        }