eq is diffable, be_empty is not
split #validate to #validate_consumer and #validate_provider