public void ExtractPropertyValidatorsToRemove()
        {
            var addingComponentPropertyRule = MockRepository.GenerateStub <IAddingComponentPropertyRule>();

            addingComponentPropertyRule.Stub(stub => stub.Validators)
            .Return(
                new IPropertyValidator[]
                { _stubPropertyValidator1, _stubPropertyValidator2, _stubPropertyValidator3, _stubPropertyValidator4 });
            addingComponentPropertyRule.Stub(stub => stub.CollectorType).Return(typeof(CustomerValidationCollector1));
            addingComponentPropertyRule.Stub(stub => stub.Property).Return(PropertyInfoAdapter.Create(typeof(Customer).GetProperty("LastName")));

            _logContextMock.Expect(
                mock =>
                mock.ValidatorRemoved(
                    Arg <IPropertyValidator> .Is.Same(_stubPropertyValidator2),
                    Arg <ValidatorRegistrationWithContext[]> .List.Equal(new[] { _registrationWithContext1, _registrationWithContext6 }),
                    Arg <IValidationRule> .Is.Same(addingComponentPropertyRule))).Repeat.Once();
            _logContextMock.Expect(
                mock =>
                mock.ValidatorRemoved(
                    Arg <IPropertyValidator> .Is.Same(_stubPropertyValidator3),
                    Arg <ValidatorRegistrationWithContext[]> .List.Equal(new[] { _registrationWithContext2 }),
                    Arg <IValidationRule> .Is.Same(addingComponentPropertyRule))).Repeat.Once();

            var result = _extractor.ExtractPropertyValidatorsToRemove(addingComponentPropertyRule).ToArray();

            _logContextMock.VerifyAllExpectations();
            Assert.That(result, Is.EqualTo(new IPropertyValidator[] { _stubPropertyValidator2, _stubPropertyValidator3 }));
        }