public void Insert_CanCancelInsertion()
        {
            bool insertedRaised = false;

            var subject = new NotifyingList <int>();

            subject.Inserting += ((sender, e) => e.Cancel());
            subject.Inserted  += (sender, args) => insertedRaised = true;

            subject.Insert(0, 3);

            Assert.That(insertedRaised, Is.False);
        }
        public void Insert_EventsRaised()
        {
            bool insertingRaised = false, insertedRaised = false;

            var subject = new NotifyingList <int>();

            subject.Inserting += (sender, args) => insertingRaised = true;
            subject.Inserted  += (sender, args) => insertedRaised = true;

            subject.Insert(0, 3);

            Assert.That(insertingRaised, Is.True);
            Assert.That(insertedRaised, Is.True);
        }
        public void Set_CanCancelSetting()
        {
            bool setRaised = false;

            var subject = new NotifyingList <int>();

            subject.Setting += ((sender, e) => e.Cancel());

            subject.Set += (sender, args) => setRaised = true;

            subject.Insert(0, 1);
            subject[0] = 3;

            Assert.That(setRaised, Is.False);
        }
        public void Insert_EventsRaisedWithCorrectArgumentsAndItemAdded()
        {
            int index = 0, item = 3;

            var subject = new NotifyingList <int>();

            subject.Inserting += (sender, e) =>
            {
                Assert.That(e.Index, Is.EqualTo(index));
                Assert.That(e.Value, Is.EqualTo(item));
                Assert.That(e.IsCancelled, Is.False);
            };

            subject.Inserted += (sender, e) =>
            {
                Assert.That(e.Index, Is.EqualTo(index));
                Assert.That(e.Value, Is.EqualTo(item));
            };

            subject.Insert(index, item);

            Assert.That(subject.Count, Is.EqualTo(1));
            Assert.That(subject[index], Is.EqualTo(item));
        }