From df5691aa94f209a59945d60d750a5040b24dbc40 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Valim?= <jose.valim@gmail.com>
Date: Mon, 11 Apr 2011 17:47:55 +0200
Subject: No need to rescue here. Invoking the wrong method in an object can
 happen anywhere if you are not careful. In other words, test your shit.

---
 activemodel/lib/active_model/validations/exclusion.rb    |  2 --
 activemodel/lib/active_model/validations/format.rb       |  2 --
 activemodel/lib/active_model/validations/inclusion.rb    |  2 --
 .../test/cases/validations/exclusion_validation_test.rb  |  9 ---------
 .../test/cases/validations/format_validation_test.rb     | 16 ----------------
 .../test/cases/validations/inclusion_validation_test.rb  |  9 ---------
 6 files changed, 40 deletions(-)

(limited to 'activemodel')

diff --git a/activemodel/lib/active_model/validations/exclusion.rb b/activemodel/lib/active_model/validations/exclusion.rb
index abc1bfae78..d135d0164a 100644
--- a/activemodel/lib/active_model/validations/exclusion.rb
+++ b/activemodel/lib/active_model/validations/exclusion.rb
@@ -19,8 +19,6 @@ module ActiveModel
         if exclusions.send(inclusion_method(exclusions), value)
           record.errors.add(attribute, :exclusion, options.except(:in).merge!(:value => value))
         end
-      rescue NoMethodError
-        raise ArgumentError, "Exclusion validation for :#{attribute} in #{record.class.name}: #{ERROR_MESSAGE}"
       end
 
     private
diff --git a/activemodel/lib/active_model/validations/format.rb b/activemodel/lib/active_model/validations/format.rb
index 2ec052c74b..349e110a4b 100644
--- a/activemodel/lib/active_model/validations/format.rb
+++ b/activemodel/lib/active_model/validations/format.rb
@@ -19,8 +19,6 @@ module ActiveModel
             raise ArgumentError, "A proc or lambda given to :without option must returns a regular expression"
           end
         end
-      rescue TypeError
-        raise ArgumentError, "A proc or lambda given to :with or :without option must returns a regular expression"
       end
 
       def check_validity!
diff --git a/activemodel/lib/active_model/validations/inclusion.rb b/activemodel/lib/active_model/validations/inclusion.rb
index cb46547e92..43b1d87d0b 100644
--- a/activemodel/lib/active_model/validations/inclusion.rb
+++ b/activemodel/lib/active_model/validations/inclusion.rb
@@ -19,8 +19,6 @@ module ActiveModel
         unless exclusions.send(inclusion_method(exclusions), value)
           record.errors.add(attribute, :inclusion, options.except(:in).merge!(:value => value))
         end
-      rescue NoMethodError
-        raise ArgumentError, "Exclusion validation for :#{attribute} in #{record.class.name}: #{ERROR_MESSAGE}"
       end
 
     private
diff --git a/activemodel/test/cases/validations/exclusion_validation_test.rb b/activemodel/test/cases/validations/exclusion_validation_test.rb
index fe0d13ec33..72a383f128 100644
--- a/activemodel/test/cases/validations/exclusion_validation_test.rb
+++ b/activemodel/test/cases/validations/exclusion_validation_test.rb
@@ -54,13 +54,4 @@ class ExclusionValidationTest < ActiveModel::TestCase
     p.title = "wasabi"
     assert p.valid?
   end
-
-  def test_validates_exclustion_with_invalid_lambda_return
-    Topic.validates_exclusion_of :title, :in => lambda{ |topic| false }
-
-    p = Topic.new
-    p.title = "wasabi"
-    p.author_name = "sikachu"
-    assert_raise(ArgumentError){ p.valid? }
-  end
 end
diff --git a/activemodel/test/cases/validations/format_validation_test.rb b/activemodel/test/cases/validations/format_validation_test.rb
index 1ff29134ee..73647efea5 100644
--- a/activemodel/test/cases/validations/format_validation_test.rb
+++ b/activemodel/test/cases/validations/format_validation_test.rb
@@ -122,22 +122,6 @@ class PresenceValidationTest < ActiveModel::TestCase
     assert p.valid?
   end
 
-  def test_validates_format_of_with_lambda_not_returns_regexp
-    Topic.validates_format_of :content, :with => lambda{ |topic| false }
-
-    p = Topic.new
-    p.content = "Pixies"
-    assert_raise(ArgumentError){ p.valid? }
-  end
-
-  def test_validates_format_of_without_lambda_not_returns_regexp
-    Topic.validates_format_of :content, :without => lambda{ |topic| false }
-
-    p = Topic.new
-    p.content = "Pixies"
-    assert_raise(ArgumentError){ p.valid? }
-  end
-
   def test_validates_format_of_for_ruby_class
     Person.validates_format_of :karma, :with => /\A\d+\Z/
 
diff --git a/activemodel/test/cases/validations/inclusion_validation_test.rb b/activemodel/test/cases/validations/inclusion_validation_test.rb
index e6adb6d187..92c473de0e 100644
--- a/activemodel/test/cases/validations/inclusion_validation_test.rb
+++ b/activemodel/test/cases/validations/inclusion_validation_test.rb
@@ -86,13 +86,4 @@ class InclusionValidationTest < ActiveModel::TestCase
     p.title = "elephant"
     assert p.valid?
   end
-
-  def test_validates_inclustion_with_invalid_lambda_return
-    Topic.validates_inclusion_of :title, :in => lambda{ |topic| false }
-
-    p = Topic.new
-    p.title = "monkey"
-    p.author_name = "sikachu"
-    assert_raise(ArgumentError){ p.valid? }
-  end
 end
-- 
cgit v1.2.3