diff options
author | James Sanders & Jason Noble <comvergepair+jsanders+jnoble@gmail.com> | 2012-04-30 11:37:31 -0600 |
---|---|---|
committer | James Sanders & Jason Noble <comvergepair+jsanders+jnoble@gmail.com> | 2012-04-30 11:37:31 -0600 |
commit | 13823a4cf35e99582c9b634a94c362d565b7841c (patch) | |
tree | e7be84cdce9adbefe437f7adc3e3af5b35fc4762 /activerecord/test/cases | |
parent | c435feb4044f6c62bb188c459c3be5d81cc77b07 (diff) | |
download | rails-13823a4cf35e99582c9b634a94c362d565b7841c.tar.gz rails-13823a4cf35e99582c9b634a94c362d565b7841c.tar.bz2 rails-13823a4cf35e99582c9b634a94c362d565b7841c.zip |
Don't type cast values that don't respond to to_i to 1
Diffstat (limited to 'activerecord/test/cases')
-rw-r--r-- | activerecord/test/cases/column_test.rb | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/activerecord/test/cases/column_test.rb b/activerecord/test/cases/column_test.rb index ccc57cb876..4fcf8a33a4 100644 --- a/activerecord/test/cases/column_test.rb +++ b/activerecord/test/cases/column_test.rb @@ -24,6 +24,30 @@ module ActiveRecord assert !column.type_cast('off') assert !column.type_cast('OFF') end + + def test_type_cast_integer + column = Column.new("field", nil, "integer") + assert_equal 1, column.type_cast(1) + assert_equal 1, column.type_cast('1') + assert_equal 1, column.type_cast('1ignore') + assert_equal 0, column.type_cast('bad1') + assert_equal 0, column.type_cast('bad') + assert_equal 1, column.type_cast(1.7) + assert_nil column.type_cast(nil) + end + + def test_type_cast_non_integer_to_integer + column = Column.new("field", nil, "integer") + assert_raises(NoMethodError) do + column.type_cast([]) + end + assert_raises(NoMethodError) do + column.type_cast(true) + end + assert_raises(NoMethodError) do + column.type_cast(false) + end + end end end end |