aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/finder_test.rb
diff options
context:
space:
mode:
authorSean Griffin <sean@seantheprogrammer.com>2014-10-31 12:16:48 -0600
committerSean Griffin <sean@seantheprogrammer.com>2014-10-31 12:16:48 -0600
commitecb31131fb7c917baa9d53fde3021fb037861808 (patch)
tree4ab007de2bc283e34b63d0099f84ce374370fbf2 /activerecord/test/cases/finder_test.rb
parent0249c360a301fb927472e6e59264d435ff3b9c24 (diff)
parente62fff40edde10bd04bbb91ce242f4a7f7ea64a8 (diff)
downloadrails-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/cases/finder_test.rb')
-rw-r--r--activerecord/test/cases/finder_test.rb27
1 files changed, 14 insertions, 13 deletions
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