aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/relations_test.rb
diff options
context:
space:
mode:
authorPratik Naik <pratiknaik@gmail.com>2009-12-27 16:14:04 +0530
committerPratik Naik <pratiknaik@gmail.com>2009-12-27 16:15:29 +0530
commitd92c4a84023bc0c8dd75869c9b4d5e50277f4650 (patch)
tree8d2bee87318b36b2ea5ac7492dd38a663715e398 /activerecord/test/cases/relations_test.rb
parent81608cf8fa61973d65f24efbc4ae4931016888e7 (diff)
downloadrails-d92c4a84023bc0c8dd75869c9b4d5e50277f4650.tar.gz
rails-d92c4a84023bc0c8dd75869c9b4d5e50277f4650.tar.bz2
rails-d92c4a84023bc0c8dd75869c9b4d5e50277f4650.zip
Add find(ids) to relations
Diffstat (limited to 'activerecord/test/cases/relations_test.rb')
-rw-r--r--activerecord/test/cases/relations_test.rb24
1 files changed, 23 insertions, 1 deletions
diff --git a/activerecord/test/cases/relations_test.rb b/activerecord/test/cases/relations_test.rb
index 893ac9caf8..9c5a38a399 100644
--- a/activerecord/test/cases/relations_test.rb
+++ b/activerecord/test/cases/relations_test.rb
@@ -275,5 +275,27 @@ class RelationTest < ActiveRecord::TestCase
assert_equal authors(:david), authors.find_or_create_by_name(:name => 'David')
end
-end
+ def test_find_id
+ authors = Author.scoped
+
+ david = authors.find(authors(:david).id)
+ assert_equal 'David', david.name
+
+ assert_raises(ActiveRecord::RecordNotFound) { authors.where(:name => 'lifo').find('invalid') }
+ end
+ def test_find_ids
+ authors = Author.order('id ASC')
+
+ results = authors.find(authors(:david).id, authors(:mary).id)
+ assert_kind_of Array, results
+ assert_equal 2, results.size
+ assert_equal 'David', results[0].name
+ assert_equal 'Mary', results[1].name
+ assert_equal results, authors.find([authors(:david).id, authors(:mary).id])
+
+ assert_raises(ActiveRecord::RecordNotFound) { authors.where(:name => 'lifo').find(authors(:david).id, 'invalid') }
+ assert_raises(ActiveRecord::RecordNotFound) { authors.find(['invalid', 'oops']) }
+ end
+
+end