So your rule will only run when customer.IsPreferredCustomer is true, as specified in the when clause, but your test code sets it to false. Because of this, no rules will run and therefore the validator will be valid.
Did you mean for the validator to check customer.IsPreferedCustomer is false instead?
Jeremy
Did you mean for the validator to check customer.IsPreferedCustomer is false instead?
Jeremy