From e64d74daeb1b29968be54a1a6481d2808af37f08 Mon Sep 17 00:00:00 2001 From: Matt Duncan Date: Fri, 7 Aug 2009 21:16:52 -0400 Subject: [PATCH] Adding test for decimal dirty tracking --- activerecord/test/cases/dirty_test.rb | 18 ++++++++++++++++++ 1 files changed, 18 insertions(+), 0 deletions(-) diff --git a/activerecord/test/cases/dirty_test.rb b/activerecord/test/cases/dirty_test.rb index ac95bac..d17553b 100644 --- a/activerecord/test/cases/dirty_test.rb +++ b/activerecord/test/cases/dirty_test.rb @@ -201,6 +201,24 @@ class DirtyTest < ActiveRecord::TestCase assert_not_equal old_updated_on, pirate.reload.updated_on end end + + def test_partial_update_with_decimal_column + numeric = NumericData.new(:world_population => 1_000_000) + old_world_population = 1_000_000 + + with_partial_updates NumericData, false do + assert_queries(2) { 2.times { numeric.save! } } + NumericData.update_all({ :world_population => old_world_population }, :id => numeric.id) + end + + with_partial_updates NumericData, true do + assert_queries(0) { 2.times { numeric.save! } } + assert_equal old_world_population, numeric.reload.world_population + + assert_queries(1) { numeric.world_population = 10_000_000; numeric.save! } + assert_not_equal old_world_population, numeric.reload.world_population + end + end def test_partial_update_with_optimistic_locking person = Person.new(:first_name => 'foo') -- 1.6.0