aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/nested_attributes_test.rb
diff options
context:
space:
mode:
authorEloy Duran <eloy.de.enige@gmail.com>2009-12-28 21:08:20 +0100
committerEloy Duran <eloy.de.enige@gmail.com>2009-12-28 21:09:22 +0100
commitc23fbd0d475612fe9cd493bd08c8da2f8d7e6f03 (patch)
treeec206751fb4743393bbbf603c38dbdcd3fb405a2 /activerecord/test/cases/nested_attributes_test.rb
parent07b615fb897017d7acfaafa88606bc88be30f6e4 (diff)
downloadrails-c23fbd0d475612fe9cd493bd08c8da2f8d7e6f03.tar.gz
rails-c23fbd0d475612fe9cd493bd08c8da2f8d7e6f03.tar.bz2
rails-c23fbd0d475612fe9cd493bd08c8da2f8d7e6f03.zip
Refactored previous changes to nested attributes.
Diffstat (limited to 'activerecord/test/cases/nested_attributes_test.rb')
-rw-r--r--activerecord/test/cases/nested_attributes_test.rb41
1 files changed, 26 insertions, 15 deletions
diff --git a/activerecord/test/cases/nested_attributes_test.rb b/activerecord/test/cases/nested_attributes_test.rb
index 5e4fc2b8d9..60c5bad225 100644
--- a/activerecord/test/cases/nested_attributes_test.rb
+++ b/activerecord/test/cases/nested_attributes_test.rb
@@ -247,34 +247,24 @@ class TestNestedAttributesOnAHasOneAssociation < ActiveRecord::TestCase
end
def test_should_accept_update_only_option
- Pirate.accepts_nested_attributes_for :ship, :update_only => true
- @pirate.update_attribute(:ship_attributes, { :id => @pirate.ship.id, :name => 'Mayflower' })
-
- Pirate.accepts_nested_attributes_for :ship, :allow_destroy => true, :reject_if => proc { |attributes| attributes.empty? }
+ @pirate.update_attribute(:update_only_ship_attributes, { :id => @pirate.ship.id, :name => 'Mayflower' })
end
def test_should_create_new_model_when_nothing_is_there_and_update_only_is_true
- Pirate.accepts_nested_attributes_for :ship, :update_only => true
@ship.delete
-
assert_difference('Ship.count', 1) do
- @pirate.reload.update_attribute(:ship_attributes, { :name => 'Mayflower' })
+ @pirate.reload.update_attribute(:update_only_ship_attributes, { :name => 'Mayflower' })
end
-
- Pirate.accepts_nested_attributes_for :ship, :allow_destroy => true, :reject_if => proc { |attributes| attributes.empty? }
end
-
def test_should_update_existing_when_update_only_is_true_and_no_id_is_given
- Pirate.accepts_nested_attributes_for :ship, :update_only => true
+ @ship.delete
+ @ship = @pirate.create_update_only_ship(:name => 'Nights Dirty Lightning')
assert_no_difference('Ship.count') do
- @pirate.reload.update_attributes(:ship_attributes => { :name => 'Mayflower' })
+ @pirate.update_attributes(:update_only_ship_attributes => { :name => 'Mayflower' })
end
-
assert_equal 'Mayflower', @ship.reload.name
-
- Pirate.accepts_nested_attributes_for :ship, :allow_destroy => true, :reject_if => proc { |attributes| attributes.empty? }
end
end
@@ -393,6 +383,27 @@ class TestNestedAttributesOnABelongsToAssociation < ActiveRecord::TestCase
def test_should_automatically_enable_autosave_on_the_association
assert Ship.reflect_on_association(:pirate).options[:autosave]
end
+
+ def test_should_accept_update_only_option
+ @ship.update_attribute(:update_only_pirate_attributes, { :id => @pirate.ship.id, :catchphrase => 'Arr' })
+ end
+
+ def test_should_create_new_model_when_nothing_is_there_and_update_only_is_true
+ @pirate.delete
+ assert_difference('Pirate.count', 1) do
+ @ship.reload.update_attribute(:update_only_pirate_attributes, { :catchphrase => 'Arr' })
+ end
+ end
+
+ def test_should_update_existing_when_update_only_is_true_and_no_id_is_given
+ @pirate.delete
+ @pirate = @ship.create_update_only_pirate(:catchphrase => 'Aye')
+
+ assert_no_difference('Pirate.count') do
+ @ship.update_attributes(:update_only_pirate_attributes => { :catchphrase => 'Arr' })
+ end
+ assert_equal 'Arr', @pirate.reload.catchphrase
+ end
end
module NestedAttributesOnACollectionAssociationTests