diff options
author | Brendon Murphy <xternal1+github@gmail.com> | 2013-01-23 01:47:23 -0800 |
---|---|---|
committer | Brendon Murphy <xternal1+github@gmail.com> | 2013-02-26 00:04:05 -0800 |
commit | 1dc98c143c4bf84ccfb55b30c7d41b29b62d50cf (patch) | |
tree | f3d8f59817cca43e77d7564f4f3a37b95c73fc16 /activerecord/test | |
parent | 92aa789ce1ee9d7a2220bb49d22288f292d05367 (diff) | |
download | rails-1dc98c143c4bf84ccfb55b30c7d41b29b62d50cf.tar.gz rails-1dc98c143c4bf84ccfb55b30c7d41b29b62d50cf.tar.bz2 rails-1dc98c143c4bf84ccfb55b30c7d41b29b62d50cf.zip |
cache_key consults updated_on timestamp if present
- Extract max timestamp retrieval for cache_key
- Update changelog for cache_key changes
Diffstat (limited to 'activerecord/test')
-rw-r--r-- | activerecord/test/cases/base_test.rb | 22 | ||||
-rw-r--r-- | activerecord/test/schema/schema.rb | 2 |
2 files changed, 22 insertions, 2 deletions
diff --git a/activerecord/test/cases/base_test.rb b/activerecord/test/cases/base_test.rb index af1845c937..5d558d5093 100644 --- a/activerecord/test/cases/base_test.rb +++ b/activerecord/test/cases/base_test.rb @@ -1441,12 +1441,30 @@ class BasicsTest < ActiveRecord::TestCase assert_not_equal key, car.cache_key end - def test_cache_key_format_for_existing_record_with_nil_updated_at + def test_cache_key_format_for_existing_record_with_nil_updated_timestamps dev = Developer.first - dev.update_columns(updated_at: nil) + dev.update_columns(updated_at: nil, updated_on: nil) assert_match(/\/#{dev.id}$/, dev.cache_key) end + def test_cache_key_for_updated_on + dev = Developer.first + dev.updated_at = nil + assert_equal "developers/#{dev.id}-#{dev.updated_on.utc.to_s(:nsec)}", dev.cache_key + end + + def test_cache_key_for_newer_updated_at + dev = Developer.first + dev.updated_at += 3600 + assert_equal "developers/#{dev.id}-#{dev.updated_at.utc.to_s(:nsec)}", dev.cache_key + end + + def test_cache_key_for_newer_updated_on + dev = Developer.first + dev.updated_on += 3600 + assert_equal "developers/#{dev.id}-#{dev.updated_on.utc.to_s(:nsec)}", dev.cache_key + end + def test_touch_should_raise_error_on_a_new_object company = Company.new(:rating => 1, :name => "37signals", :firm_name => "37signals") assert_raises(ActiveRecord::ActiveRecordError) do diff --git a/activerecord/test/schema/schema.rb b/activerecord/test/schema/schema.rb index d789b6cb7a..a323b1e722 100644 --- a/activerecord/test/schema/schema.rb +++ b/activerecord/test/schema/schema.rb @@ -219,6 +219,8 @@ ActiveRecord::Schema.define do t.integer :salary, :default => 70000 t.datetime :created_at t.datetime :updated_at + t.datetime :created_on + t.datetime :updated_on end create_table :developers_projects, :force => true, :id => false do |t| |