blob: 7ddb2bfee1cdad9293f7fafa1711d70cd72befbc (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
require "cases/helper"
class Mixin < ActiveRecord::Base
end
class TouchTest < ActiveRecord::TestCase
fixtures :mixins
setup do
travel_to Time.now
end
teardown do
travel_back
end
def test_update
stamped = Mixin.new
assert_nil stamped.updated_at
assert_nil stamped.created_at
stamped.save
assert_equal Time.now, stamped.updated_at
assert_equal Time.now, stamped.created_at
end
def test_create
obj = Mixin.create
assert_equal Time.now, obj.updated_at
assert_equal Time.now, obj.created_at
end
def test_many_updates
stamped = Mixin.new
assert_nil stamped.updated_at
assert_nil stamped.created_at
stamped.save
assert_equal Time.now, stamped.created_at
assert_equal Time.now, stamped.updated_at
old_updated_at = stamped.updated_at
travel 5.minutes do
stamped.lft_will_change!
stamped.save
assert_equal Time.now, stamped.updated_at
assert_equal old_updated_at, stamped.created_at
end
end
def test_create_turned_off
Mixin.record_timestamps = false
mixin = Mixin.new
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
Mixin.record_timestamps = true
end
end
|