diff options
author | Pratik Naik <pratiknaik@gmail.com> | 2009-10-09 16:08:11 +0100 |
---|---|---|
committer | Pratik Naik <pratiknaik@gmail.com> | 2009-10-09 16:08:11 +0100 |
commit | 68d416a58fb5a47df2365c4f3a6da9f8db5c7cb7 (patch) | |
tree | 8c3aa0b85df3179b91b25082b41a59b0b670a37d /activerecord/test/cases | |
parent | e94caf0788df87b139e575f33cdeea12b06f2609 (diff) | |
download | rails-68d416a58fb5a47df2365c4f3a6da9f8db5c7cb7.tar.gz rails-68d416a58fb5a47df2365c4f3a6da9f8db5c7cb7.tar.bz2 rails-68d416a58fb5a47df2365c4f3a6da9f8db5c7cb7.zip |
Add a :limit option to specify the maximum number of records that can be processed by accepts_nested_attributes_for
Diffstat (limited to 'activerecord/test/cases')
-rw-r--r-- | activerecord/test/cases/nested_attributes_test.rb | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/activerecord/test/cases/nested_attributes_test.rb b/activerecord/test/cases/nested_attributes_test.rb index 2a2a19fd4c..53fd168e1b 100644 --- a/activerecord/test/cases/nested_attributes_test.rb +++ b/activerecord/test/cases/nested_attributes_test.rb @@ -603,3 +603,33 @@ class TestNestedAttributesOnAHasAndBelongsToManyAssociation < ActiveRecord::Test include NestedAttributesOnACollectionAssociationTests end + +class TestNestedAttributesLimit < ActiveRecord::TestCase + def setup + Pirate.accepts_nested_attributes_for :parrots, :limit => 2 + + @pirate = Pirate.create!(:catchphrase => "Don' botharrr talkin' like one, savvy?") + end + + def teardown + Pirate.accepts_nested_attributes_for :parrots, :allow_destroy => true, :reject_if => proc { |attributes| attributes.empty? } + end + + def test_limit_with_less_records + @pirate.attributes = { :parrots_attributes => { 'foo' => { :name => 'Big Big Love' } } } + assert_difference('Parrot.count') { @pirate.save! } + end + + def test_limit_with_number_exact_records + @pirate.attributes = { :parrots_attributes => { 'foo' => { :name => 'Lovely Day' }, 'bar' => { :name => 'Blown Away' } } } + assert_difference('Parrot.count', 2) { @pirate.save! } + end + + def test_limit_with_exceeding_records + assert_raises(ActiveRecord::NestedAttributes::TooManyRecords) do + @pirate.attributes = { :parrots_attributes => { 'foo' => { :name => 'Lovely Day' }, + 'bar' => { :name => 'Blown Away' }, + 'car' => { :name => 'The Happening' }} } + end + end +end |