diff options
author | chrisfinne <chris.finne@gmail.com> | 2011-12-16 08:10:05 -0800 |
---|---|---|
committer | Carlos Antonio da Silva <carlosantoniodasilva@gmail.com> | 2012-05-28 23:16:07 -0300 |
commit | 9cc2bf69ce296b7351dc612a8366193390a305f3 (patch) | |
tree | 5fd70bde4f778e07703a521c07e04f378ccd58d6 /activerecord/test/cases | |
parent | 6f1d9d00ffd9d411b2bd488da4eb92b7e2fd972e (diff) | |
download | rails-9cc2bf69ce296b7351dc612a8366193390a305f3.tar.gz rails-9cc2bf69ce296b7351dc612a8366193390a305f3.tar.bz2 rails-9cc2bf69ce296b7351dc612a8366193390a305f3.zip |
Allow blocks for count with ActiveRecord::Relation. Document and test that sum allows blocks
Diffstat (limited to 'activerecord/test/cases')
-rw-r--r-- | activerecord/test/cases/calculations_test.rb | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/activerecord/test/cases/calculations_test.rb b/activerecord/test/cases/calculations_test.rb index 041f8ffb7c..a279b0e77c 100644 --- a/activerecord/test/cases/calculations_test.rb +++ b/activerecord/test/cases/calculations_test.rb @@ -376,6 +376,22 @@ class CalculationsTest < ActiveRecord::TestCase Company.where(:type => "Firm").from('companies').count(:type) end + def test_count_with_block_acts_as_array + accounts = Account.where('id > 0') + assert_equal Account.count, accounts.count { true } + assert_equal 0, accounts.count { false } + assert_equal Account.where('credit_limit > 50').size, accounts.count { |account| account.credit_limit > 50 } + assert_equal Account.count, Account.count { true } + assert_equal 0, Account.count { false } + end + + def test_sum_with_block_acts_as_array + accounts = Account.where('id > 0') + assert_equal Account.sum(:credit_limit), accounts.sum { |account| account.credit_limit } + assert_equal Account.sum(:credit_limit) + Account.count, accounts.sum{ |account| account.credit_limit + 1 } + assert_equal 0, accounts.sum { |account| 0 } + end + def test_sum_with_from_option assert_equal Account.sum(:credit_limit), Account.from('accounts').sum(:credit_limit) assert_equal Account.where("credit_limit > 50").sum(:credit_limit), |