diff options
author | Sean Griffin <sean@seantheprogrammer.com> | 2014-10-31 12:16:48 -0600 |
---|---|---|
committer | Sean Griffin <sean@seantheprogrammer.com> | 2014-10-31 12:16:48 -0600 |
commit | ecb31131fb7c917baa9d53fde3021fb037861808 (patch) | |
tree | 4ab007de2bc283e34b63d0099f84ce374370fbf2 /activerecord/test | |
parent | 0249c360a301fb927472e6e59264d435ff3b9c24 (diff) | |
parent | e62fff40edde10bd04bbb91ce242f4a7f7ea64a8 (diff) | |
download | rails-ecb31131fb7c917baa9d53fde3021fb037861808.tar.gz rails-ecb31131fb7c917baa9d53fde3021fb037861808.tar.bz2 rails-ecb31131fb7c917baa9d53fde3021fb037861808.zip |
Merge pull request #17459 from sgrif/sg-find-by-large-numbers
Treat strings greater than int max value as out of range
Diffstat (limited to 'activerecord/test')
-rw-r--r-- | activerecord/test/cases/base_test.rb | 1 | ||||
-rw-r--r-- | activerecord/test/cases/finder_test.rb | 27 | ||||
-rw-r--r-- | activerecord/test/cases/migration_test.rb | 1 |
3 files changed, 14 insertions, 15 deletions
diff --git a/activerecord/test/cases/base_test.rb b/activerecord/test/cases/base_test.rb index 4ad27c0e8d..4e1685f151 100644 --- a/activerecord/test/cases/base_test.rb +++ b/activerecord/test/cases/base_test.rb @@ -985,7 +985,6 @@ class BasicsTest < ActiveRecord::TestCase class NumericData < ActiveRecord::Base self.table_name = 'numeric_data' - attribute :world_population, Type::Integer.new attribute :my_house_population, Type::Integer.new attribute :atoms_in_universe, Type::Integer.new end diff --git a/activerecord/test/cases/finder_test.rb b/activerecord/test/cases/finder_test.rb index ac570ecbe0..d1ff8516e8 100644 --- a/activerecord/test/cases/finder_test.rb +++ b/activerecord/test/cases/finder_test.rb @@ -99,21 +99,10 @@ class FinderTest < ActiveRecord::TestCase end def test_exists_fails_when_parameter_has_invalid_type - if current_adapter?(:PostgreSQLAdapter, :MysqlAdapter) - assert_raises ActiveRecord::StatementInvalid do - Topic.exists?(("9"*53).to_i) # number that's bigger than int - end - else + assert_raises(RangeError) do assert_equal false, Topic.exists?(("9"*53).to_i) # number that's bigger than int end - - if current_adapter?(:PostgreSQLAdapter) - assert_raises ActiveRecord::StatementInvalid do - Topic.exists?("foo") - end - else - assert_equal false, Topic.exists?("foo") - end + assert_equal false, Topic.exists?("foo") end def test_exists_does_not_select_columns_without_alias @@ -209,6 +198,18 @@ class FinderTest < ActiveRecord::TestCase assert_equal 2, last_devs.size end + def test_find_with_large_number + assert_raises(ActiveRecord::RecordNotFound) { Topic.find('9999999999999999999999999999999') } + end + + def test_find_by_with_large_number + assert_nil Topic.find_by(id: '9999999999999999999999999999999') + end + + def test_find_by_id_with_large_number + assert_nil Topic.find_by_id('9999999999999999999999999999999') + end + def test_find_an_empty_array assert_equal [], Topic.find([]) end diff --git a/activerecord/test/cases/migration_test.rb b/activerecord/test/cases/migration_test.rb index 270e446c69..8db01fc847 100644 --- a/activerecord/test/cases/migration_test.rb +++ b/activerecord/test/cases/migration_test.rb @@ -15,7 +15,6 @@ class BigNumber < ActiveRecord::Base unless current_adapter?(:PostgreSQLAdapter, :SQLite3Adapter) attribute :value_of_e, Type::Integer.new end - attribute :world_population, Type::Integer.new attribute :my_house_population, Type::Integer.new end |