3 class Mixin
< ActiveRecord
::Base
6 # Let us control what Time.now returns for the TouchTest suite
8 @
@forced_now_time = nil
9 cattr_accessor
:forced_now_time
19 alias_method_chain
:now, :forcing
24 class TouchTest
< ActiveRecord
::TestCase
28 Time
.forced_now_time
= Time
.now
32 Time
.forced_now_time
= nil
36 five_minutes_ago
= 5.minutes
.ago
37 Time
.forced_now_time
= five_minutes_ago
38 assert_equal five_minutes_ago
, Time
.now
40 Time
.forced_now_time
= nil
41 assert_not_equal five_minutes_ago
, Time
.now
47 assert_nil stamped
.updated_at
48 assert_nil stamped
.created_at
50 assert_equal Time
.now
, stamped
.updated_at
51 assert_equal Time
.now
, stamped
.created_at
56 assert_equal Time
.now
, obj
.updated_at
57 assert_equal Time
.now
, obj
.created_at
63 assert_nil stamped
.updated_at
64 assert_nil stamped
.created_at
66 assert_equal Time
.now
, stamped
.created_at
67 assert_equal Time
.now
, stamped
.updated_at
69 old_updated_at
= stamped
.updated_at
71 Time
.forced_now_time
= 5.minutes
.from_now
72 stamped
.lft_will_change
!
75 assert_equal Time
.now
, stamped
.updated_at
76 assert_equal old_updated_at
, stamped
.created_at
79 def test_create_turned_off
80 Mixin
.record_timestamps
= false
84 assert_nil mixin
.updated_at
86 assert_nil mixin
.updated_at
88 # Make sure Mixin.record_timestamps gets reset, even if this test fails,
89 # so that other tests do not fail because Mixin.record_timestamps == false
93 Mixin
.record_timestamps
= true