2011-06-06 18:17:44 +00:00
|
|
|
require "cases/helper"
|
2007-09-11 03:25:59 +00:00
|
|
|
|
|
|
|
class Mixin < ActiveRecord::Base
|
|
|
|
end
|
2004-12-15 00:46:26 +00:00
|
|
|
|
2008-01-21 17:20:51 +00:00
|
|
|
class TouchTest < ActiveRecord::TestCase
|
2004-12-15 00:46:26 +00:00
|
|
|
fixtures :mixins
|
2008-01-18 07:30:42 +00:00
|
|
|
|
2014-01-30 00:41:30 +00:00
|
|
|
setup do
|
2013-11-20 13:36:58 +00:00
|
|
|
travel_to Time.now
|
2006-09-14 00:50:42 +00:00
|
|
|
end
|
2005-11-10 06:24:33 +00:00
|
|
|
|
2014-01-30 00:41:30 +00:00
|
|
|
teardown do
|
|
|
|
travel_back
|
|
|
|
end
|
|
|
|
|
2004-12-15 00:46:26 +00:00
|
|
|
def test_update
|
2005-11-10 06:24:33 +00:00
|
|
|
stamped = Mixin.new
|
|
|
|
|
2004-12-19 13:01:47 +00:00
|
|
|
assert_nil stamped.updated_at
|
|
|
|
assert_nil stamped.created_at
|
|
|
|
stamped.save
|
2006-09-14 00:50:42 +00:00
|
|
|
assert_equal Time.now, stamped.updated_at
|
|
|
|
assert_equal Time.now, stamped.created_at
|
2005-11-10 06:24:33 +00:00
|
|
|
end
|
2004-12-15 00:46:26 +00:00
|
|
|
|
|
|
|
def test_create
|
2006-09-14 00:50:42 +00:00
|
|
|
obj = Mixin.create
|
|
|
|
assert_equal Time.now, obj.updated_at
|
|
|
|
assert_equal Time.now, obj.created_at
|
2005-11-10 06:24:33 +00:00
|
|
|
end
|
2004-12-19 13:01:47 +00:00
|
|
|
|
|
|
|
def test_many_updates
|
2005-11-10 06:24:33 +00:00
|
|
|
stamped = Mixin.new
|
2004-12-19 13:01:47 +00:00
|
|
|
|
|
|
|
assert_nil stamped.updated_at
|
|
|
|
assert_nil stamped.created_at
|
|
|
|
stamped.save
|
2006-09-14 00:50:42 +00:00
|
|
|
assert_equal Time.now, stamped.created_at
|
|
|
|
assert_equal Time.now, stamped.updated_at
|
2005-11-10 06:24:33 +00:00
|
|
|
|
2004-12-19 13:01:47 +00:00
|
|
|
old_updated_at = stamped.updated_at
|
|
|
|
|
2013-11-20 13:36:58 +00:00
|
|
|
travel 5.minutes do
|
|
|
|
stamped.lft_will_change!
|
|
|
|
stamped.save
|
2004-12-19 13:01:47 +00:00
|
|
|
|
2013-11-20 13:36:58 +00:00
|
|
|
assert_equal Time.now, stamped.updated_at
|
|
|
|
assert_equal old_updated_at, stamped.created_at
|
|
|
|
end
|
2004-12-19 13:01:47 +00:00
|
|
|
end
|
|
|
|
|
2004-12-16 15:21:16 +00:00
|
|
|
def test_create_turned_off
|
|
|
|
Mixin.record_timestamps = false
|
|
|
|
|
2007-11-26 22:45:43 +00:00
|
|
|
mixin = Mixin.new
|
2004-12-16 15:21:16 +00:00
|
|
|
|
2007-11-26 22:45:43 +00:00
|
|
|
assert_nil mixin.updated_at
|
|
|
|
mixin.save
|
|
|
|
assert_nil mixin.updated_at
|
|
|
|
|
|
|
|
# Make sure Mixin.record_timestamps gets reset, even if this test fails,
|
|
|
|
# so that other tests do not fail because Mixin.record_timestamps == false
|
|
|
|
rescue Exception => e
|
|
|
|
raise e
|
|
|
|
ensure
|
2004-12-16 15:21:16 +00:00
|
|
|
Mixin.record_timestamps = true
|
|
|
|
end
|
2005-09-09 08:32:47 +00:00
|
|
|
|
2007-09-11 06:47:27 +00:00
|
|
|
end
|