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 })); }