diff options
author | jamie <jamie@soniciq.com> | 2010-01-07 18:44:35 +0100 |
---|---|---|
committer | José Valim <jose.valim@gmail.com> | 2010-01-07 19:23:59 +0100 |
commit | 0a79eb7889e7ac711ff171a453d65f3df57b9237 (patch) | |
tree | 24b32f38be5aee38a950d75178cc59054c4c288c /activemodel/test/cases/validations/with_validation_test.rb | |
parent | 2dcc53bdbc1103693626625b29df8bfea7c3bcd4 (diff) | |
download | rails-0a79eb7889e7ac711ff171a453d65f3df57b9237.tar.gz rails-0a79eb7889e7ac711ff171a453d65f3df57b9237.tar.bz2 rails-0a79eb7889e7ac711ff171a453d65f3df57b9237.zip |
Add validates method as shortcut to setup validators for a given set of attributes:
class Person < ActiveRecord::Base
include MyValidators
validates :name, :presence => true, :uniqueness => true, :length => { :maximum => 100 }
validates :email, :presence => true, :email => true
end
[#3058 status:resolved]
Signed-off-by: José Valim <jose.valim@gmail.com>
Diffstat (limited to 'activemodel/test/cases/validations/with_validation_test.rb')
-rw-r--r-- | activemodel/test/cases/validations/with_validation_test.rb | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/activemodel/test/cases/validations/with_validation_test.rb b/activemodel/test/cases/validations/with_validation_test.rb index 7540ccb580..66b072ea38 100644 --- a/activemodel/test/cases/validations/with_validation_test.rb +++ b/activemodel/test/cases/validations/with_validation_test.rb @@ -120,6 +120,28 @@ class ValidatesWithTest < ActiveRecord::TestCase Topic.validates_with(validator, :if => "1 == 1", :foo => :bar) assert topic.valid? end + + test "calls setup method of validator passing in self when validator has setup method" do + topic = Topic.new + validator = stub_everything + validator.stubs(:new).returns(validator) + validator.stubs(:validate) + validator.stubs(:respond_to?).with(:setup).returns(true) + validator.expects(:setup).with(Topic).once + Topic.validates_with(validator) + assert topic.valid? + end + + test "doesn't call setup method of validator when validator has no setup method" do + topic = Topic.new + validator = stub_everything + validator.stubs(:new).returns(validator) + validator.stubs(:validate) + validator.stubs(:respond_to?).with(:setup).returns(false) + validator.expects(:setup).with(Topic).never + Topic.validates_with(validator) + assert topic.valid? + end test "validates_with with options" do Topic.validates_with(ValidatorThatValidatesOptions, :field => :first_name) |