Example #1
0
        public void Contains_should_return_true_when_specified_item_exists()
        {
            LinkedObjectTestDouble dummy = new LinkedObjectTestDouble();

            _list.Add(dummy);

            Assert.True(_list.Contains(dummy));
        }
Example #2
0
        public void Remove_should_return_true_when_item_removed()
        {
            LinkedObjectTestDouble dummy = new LinkedObjectTestDouble();

            _list.Add(dummy);

            Assert.True(_list.Remove(dummy));
        }
Example #3
0
        public void Indexer_get_should_return_correct_object()
        {
            LinkedObjectTestDouble dummy = new LinkedObjectTestDouble();

            _list.Add(dummy);

            Assert.Same(dummy, _list[0]);
        }
Example #4
0
        public void Insert_should_set_parent()
        {
            LinkedObjectTestDouble dummy = new LinkedObjectTestDouble();

            _list.Insert(0, dummy);

            Assert.Same(_parent, dummy.Parent);
        }
Example #5
0
        public void Remove_should_return_false_when_item_is_not_removed()
        {
            LinkedObjectTestDouble dummy = new LinkedObjectTestDouble();

            _list.Add(dummy);

            Assert.False(_list.Remove(new LinkedObjectTestDouble()));
        }
Example #6
0
        public void IndexOf_should_return_correct_index_when_item_does_not_exist()
        {
            LinkedObjectTestDouble dummy = new LinkedObjectTestDouble();

            _list.Add(dummy);

            Assert.Equal(-1, _list.IndexOf(new LinkedObjectTestDouble()));
        }
Example #7
0
        public void CopyTo_should_copy_correct_items()
        {
            _list.AddRange(new[] { new LinkedObjectTestDouble(), new LinkedObjectTestDouble() });

            LinkedObjectTestDouble[] array = new LinkedObjectTestDouble[2];

            _list.CopyTo(array, 0);

            array.Each(item => Assert.True(_list.Contains(item)));
        }
Example #8
0
        public void RemoveAt_should_decrease_the_collection()
        {
            LinkedObjectTestDouble obj1 = new LinkedObjectTestDouble();
            LinkedObjectTestDouble obj2 = new LinkedObjectTestDouble();
            LinkedObjectTestDouble obj3 = new LinkedObjectTestDouble();

            _list.AddRange(new[] { obj1, obj2, obj3 });
            _list.RemoveAt(1);

            Assert.Equal(2, _list.Count);
        }
Example #9
0
        public void Index_set_should_set_parent()
        {
            LinkedObjectTestDouble obj1 = new LinkedObjectTestDouble();

            _list.Add(obj1);

            LinkedObjectTestDouble obj2 = new LinkedObjectTestDouble();

            _list[0] = obj2;

            Assert.Same(_parent, obj2.Parent);
        }
Example #10
0
        public void Index_set_should_cleanup_previous_item()
        {
            LinkedObjectTestDouble obj1 = new LinkedObjectTestDouble();

            _list.Add(obj1);

            LinkedObjectTestDouble obj2 = new LinkedObjectTestDouble();

            _list[0] = obj2;

            Assert.Null(obj1.Parent);
            Assert.Null(obj1.PreviousSibling);
            Assert.Null(obj1.NextSibling);
        }
Example #11
0
        public void RemoveAt_should_cleanup_the_removed_item()
        {
            LinkedObjectTestDouble obj1 = new LinkedObjectTestDouble();
            LinkedObjectTestDouble obj2 = new LinkedObjectTestDouble();
            LinkedObjectTestDouble obj3 = new LinkedObjectTestDouble();

            _list.AddRange(new[] { obj1, obj2, obj3 });

            _list.RemoveAt(1);

            Assert.Null(obj2.Parent);
            Assert.Null(obj2.PreviousSibling);
            Assert.Null(obj2.NextSibling);
        }
Example #12
0
        public void RemoveAt_at_the_begining_should_properly_rebuild_the_chain()
        {
            LinkedObjectTestDouble obj1 = new LinkedObjectTestDouble();
            LinkedObjectTestDouble obj2 = new LinkedObjectTestDouble();
            LinkedObjectTestDouble obj3 = new LinkedObjectTestDouble();

            _list.AddRange(new[] { obj1, obj2, obj3 });

            _list.RemoveAt(0);

            Assert.Null(obj2.PreviousSibling);
            Assert.Same(obj3, obj2.NextSibling);
            Assert.Same(obj2, obj3.PreviousSibling);
            Assert.Null(obj3.NextSibling);
        }
Example #13
0
        public void Indexer_set_should_properly_rebuild_the_chain()
        {
            LinkedObjectTestDouble obj1 = new LinkedObjectTestDouble();
            LinkedObjectTestDouble obj2 = new LinkedObjectTestDouble();
            LinkedObjectTestDouble obj3 = new LinkedObjectTestDouble();

            _list.AddRange(new[] { obj1, obj2, obj3 });

            LinkedObjectTestDouble obj = new LinkedObjectTestDouble();

            _list[1] = obj;

            Assert.Null(obj1.PreviousSibling);
            Assert.Same(obj, obj1.NextSibling);

            Assert.Same(obj1, obj.PreviousSibling);
            Assert.Same(obj3, obj.NextSibling);

            Assert.Same(obj, obj3.PreviousSibling);
            Assert.Null(obj3.NextSibling);
        }
Example #14
0
        public void Add_should_maintain_proper_chain()
        {
            LinkedObjectTestDouble obj1 = new LinkedObjectTestDouble();
            LinkedObjectTestDouble obj2 = new LinkedObjectTestDouble();
            LinkedObjectTestDouble obj3 = new LinkedObjectTestDouble();
            LinkedObjectTestDouble obj4 = new LinkedObjectTestDouble();

            _list.Add(obj1);
            _list.Add(obj2);
            _list.Add(obj3);
            _list.Add(obj4);

            Assert.Null(obj1.PreviousSibling);
            Assert.Same(obj2, obj1.NextSibling);

            Assert.Same(obj1, obj2.PreviousSibling);
            Assert.Same(obj3, obj2.NextSibling);

            Assert.Same(obj2, obj3.PreviousSibling);
            Assert.Same(obj4, obj3.NextSibling);

            Assert.Same(obj3, obj4.PreviousSibling);
            Assert.Null(obj4.NextSibling);
        }
Example #15
0
        public void Insert_in_the_middle_should_properly_rebuild_the_chain()
        {
            LinkedObjectTestDouble obj1 = new LinkedObjectTestDouble();
            LinkedObjectTestDouble obj2 = new LinkedObjectTestDouble();
            LinkedObjectTestDouble obj3 = new LinkedObjectTestDouble();

            _list.AddRange(new[] { obj1, obj2, obj3 });

            LinkedObjectTestDouble obj = new LinkedObjectTestDouble();

            _list.Insert(1, obj);

            Assert.Null(obj1.PreviousSibling);
            Assert.Same(obj, obj1.NextSibling);

            Assert.Same(obj1, obj.PreviousSibling);
            Assert.Same(obj2, obj.NextSibling);

            Assert.Same(obj, obj2.PreviousSibling);
            Assert.Same(obj3, obj2.NextSibling);

            Assert.Same(obj2, obj3.PreviousSibling);
            Assert.Null(obj3.NextSibling);
        }
Example #16
0
 public void Indexer_set_should_throw_exception_when_index_is_out_of_range()
 {
     Assert.Throws <ArgumentOutOfRangeException>(() => _list[1] = new LinkedObjectTestDouble());
 }
Example #17
0
 public LinkedObjectCollectionTests()
 {
     _parent = new LinkedObjectTestDouble();
     _list   = new LinkedObjectCollection <LinkedObjectTestDouble>(_parent);
 }