Permalink
Browse files

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>
  • Loading branch information...
1 parent 4713271 commit 1bedee56314ff1de2d186ca56adbe4059f4b0af3 @kenmazaika kenmazaika committed with spastorino Feb 14, 2011
Showing with 12 additions and 13 deletions.
  1. +6 −0 activeresource/test/cases/validations_test.rb
  2. +6 −13 activeresource/test/fixtures/project.rb
@@ -48,6 +48,12 @@ def test_validate_callback
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
@@ -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

0 comments on commit 1bedee5

Please sign in to comment.