1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

ActiveResource validation tests did not test ActiveModel validations. Adjust the test to be done the Rails3 way.

Signed-off-by: Santiago Pastorino <santiago@wyeworks.com>
This commit is contained in:
Ken Mazaika 2011-02-13 19:32:27 -05:00 committed by Santiago Pastorino
parent 471327169d
commit 1bedee5631
2 changed files with 12 additions and 13 deletions

View file

@ -48,6 +48,12 @@ class ValidationsTest < ActiveModel::TestCase
assert p.save, "should have saved after fixing the validation, but had: #{p.errors.inspect}"
end
def test_client_side_validation_maximum
project = Project.new(:description => '123456789012345')
assert ! project.valid?
assert_equal ['is too long (maximum is 10 characters)'], project.errors[:description]
end
protected
# quickie helper to create a new project with all the required

View file

@ -1,25 +1,18 @@
# used to test validations
class Project < ActiveResource::Base
self.site = "http://37s.sunrise.i:3000"
schema do
string :email
string :name
end
validates_presence_of :name
validates :name, :presence => true
validates :description, :presence => false, :length => {:maximum => 10}
validate :description_greater_than_three_letters
# to test the validate *callback* works
def description_greater_than_three_letters
errors.add :description, 'must be greater than three letters long' if description.length < 3 unless description.blank?
end
# stop-gap accessor to default this attribute to nil
# Otherwise the validations fail saying that the method does not exist.
# In future, method_missing will be updated to not explode on a known
# attribute.
def name
attributes['name'] || nil
end
def description
attributes['description'] || nil
end
end