aboutsummaryrefslogtreecommitdiffstats
path: root/activemodel/test/cases/validations/numericality_validation_test.rb
diff options
context:
space:
mode:
authorPratik Naik <pratiknaik@gmail.com>2009-03-20 22:21:27 +0000
committerPratik Naik <pratiknaik@gmail.com>2009-03-20 22:21:27 +0000
commit6173e5bfaec44729ecabc2e6e05aa2608a85981f (patch)
treed3379362c0cfb3f16867b56d1c2931bb02d12b86 /activemodel/test/cases/validations/numericality_validation_test.rb
parent08a99d0eac9370b590220953283475e00e3183e6 (diff)
downloadrails-6173e5bfaec44729ecabc2e6e05aa2608a85981f.tar.gz
rails-6173e5bfaec44729ecabc2e6e05aa2608a85981f.tar.bz2
rails-6173e5bfaec44729ecabc2e6e05aa2608a85981f.zip
Add ActiveModel::Validations tests for regular ruby classes
Diffstat (limited to 'activemodel/test/cases/validations/numericality_validation_test.rb')
-rw-r--r--activemodel/test/cases/validations/numericality_validation_test.rb52
1 files changed, 34 insertions, 18 deletions
diff --git a/activemodel/test/cases/validations/numericality_validation_test.rb b/activemodel/test/cases/validations/numericality_validation_test.rb
index 53d3621149..0af6eb69ce 100644
--- a/activemodel/test/cases/validations/numericality_validation_test.rb
+++ b/activemodel/test/cases/validations/numericality_validation_test.rb
@@ -4,6 +4,7 @@ require 'cases/tests_database'
require 'models/topic'
require 'models/developer'
+require 'models/person'
class NumericalityValidationTest < ActiveModel::TestCase
include ActiveModel::TestsDatabase
@@ -119,6 +120,39 @@ class NumericalityValidationTest < ActiveModel::TestCase
assert_equal ["greater than 4"], topic.errors[:approved]
end
+ def test_numericality_with_getter_method
+ repair_validations(Developer) do
+ Developer.validates_numericality_of( :salary )
+ developer = Developer.new("name" => "michael", "salary" => nil)
+ developer.instance_eval("def salary; read_attribute('salary') ? read_attribute('salary') : 100000; end")
+ assert developer.valid?
+ end
+ end
+
+ def test_numericality_with_allow_nil_and_getter_method
+ repair_validations(Developer) do
+ Developer.validates_numericality_of( :salary, :allow_nil => true)
+ developer = Developer.new("name" => "michael", "salary" => nil)
+ developer.instance_eval("def salary; read_attribute('salary') ? read_attribute('salary') : 100000; end")
+ assert developer.valid?
+ end
+ end
+
+ def test_validates_numericality_of_for_ruby_class
+ repair_validations(Person) do
+ Person.validates_numericality_of :karma, :allow_nil => false
+
+ p = Person.new
+ p.karma = "Pix"
+ assert p.invalid?
+
+ assert_equal ["is not a number"], p.errors[:karma]
+
+ p.karma = "1234"
+ assert p.valid?
+ end
+ end
+
private
def invalid!(values, error = nil)
@@ -142,22 +176,4 @@ class NumericalityValidationTest < ActiveModel::TestCase
yield topic, value
end
end
-
- def test_numericality_with_getter_method
- repair_validations(Developer) do
- Developer.validates_numericality_of( :salary )
- developer = Developer.new("name" => "michael", "salary" => nil)
- developer.instance_eval("def salary; read_attribute('salary') ? read_attribute('salary') : 100000; end")
- assert developer.valid?
- end
- end
-
- def test_numericality_with_allow_nil_and_getter_method
- repair_validations(Developer) do
- Developer.validates_numericality_of( :salary, :allow_nil => true)
- developer = Developer.new("name" => "michael", "salary" => nil)
- developer.instance_eval("def salary; read_attribute('salary') ? read_attribute('salary') : 100000; end")
- assert developer.valid?
- end
- end
end