blob: c6f7e3ef1661530262c5227447a9e68df0040c5d (
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
|
require "cases/helper"
require 'models/topic'
module ActiveRecord
class DuplicationTest < ActiveRecord::TestCase
fixtures :topics
def test_dup
assert !Topic.new.freeze.dup.frozen?
end
def test_dup_not_persisted
topic = Topic.first
duped = topic.dup
assert !duped.persisted?, 'topic not persisted'
assert duped.new_record?, 'topic is new'
end
def test_dup_has_no_id
topic = Topic.first
duped = topic.dup
assert_nil duped.id
end
def test_clone_persisted
topic = Topic.first
cloned = topic.clone
assert topic.persisted?, 'topic persisted'
assert cloned.persisted?, 'topic persisted'
assert !cloned.new_record?, 'topic is not new'
end
def test_clone_keeps_frozen
topic = Topic.first
topic.freeze
cloned = topic.clone
assert cloned.persisted?, 'topic persisted'
assert !cloned.new_record?, 'topic is not new'
assert cloned.frozen?, 'topic should be frozen'
end
def test_dup_with_modified_attributes
topic = Topic.first
topic.author_name = 'Aaron'
duped = topic.dup
assert_equal 'Aaron', duped.author_name
end
def test_dup_with_changes
topic = Topic.first
topic.author_name = 'Aaron'
duped = topic.dup
assert_equal topic.changes, duped.changes
end
def test_dup_topics_are_independent
topic = Topic.first
topic.author_name = 'Aaron'
duped = topic.dup
duped.author_name = 'meow'
assert_not_equal topic.changes, duped.changes
end
end
end
|