aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/associations_test.rb
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2005-11-04 19:39:50 +0000
committerDavid Heinemeier Hansson <david@loudthinking.com>2005-11-04 19:39:50 +0000
commita5a82d978bd4a46ce73462a0adcb031aa5919ce4 (patch)
tree4ca0d93e5516f33053af1fdca568607921c34842 /activerecord/test/associations_test.rb
parent4506a463e4af0c7b8fb7fddea1c666520d895271 (diff)
downloadrails-a5a82d978bd4a46ce73462a0adcb031aa5919ce4.tar.gz
rails-a5a82d978bd4a46ce73462a0adcb031aa5919ce4.tar.bz2
rails-a5a82d978bd4a46ce73462a0adcb031aa5919ce4.zip
Added extension capabilities to has_many and has_and_belongs_to_many proxies [DHH] Added find_or_create_by_X as a second type of dynamic finder that'll create the record if it doesn't already exist [DHH] Added constrain scoping for creates using a hash of attributes bound to the :creation key [DHH]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@2872 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activerecord/test/associations_test.rb')
-rwxr-xr-xactiverecord/test/associations_test.rb8
1 files changed, 8 insertions, 0 deletions
diff --git a/activerecord/test/associations_test.rb b/activerecord/test/associations_test.rb
index 6a4beb4135..fc2afb721f 100755
--- a/activerecord/test/associations_test.rb
+++ b/activerecord/test/associations_test.rb
@@ -490,6 +490,14 @@ class HasManyAssociationsTest < Test::Unit::TestCase
assert_equal 3, companies(:first_firm).clients_of_firm(true).size
end
+ def test_find_or_create
+ number_of_clients = companies(:first_firm).clients.size
+ the_client = companies(:first_firm).clients.find_or_create_by_name("Yet another client")
+ assert_equal number_of_clients + 1, companies(:first_firm, :refresh).clients.size
+ assert_equal the_client, companies(:first_firm).clients.find_or_create_by_name("Yet another client")
+ assert_equal number_of_clients + 1, companies(:first_firm, :refresh).clients.size
+ end
+
def test_deleting
force_signal37_to_load_all_clients_of_firm
companies(:first_firm).clients_of_firm.delete(companies(:first_firm).clients_of_firm.first)