3 class OldRelationTest < ActiveSupport::TestCase
5 old_relation_v1 = create(:old_relation, :version => 1)
6 old_relation_v2 = create(:old_relation, :current_relation => old_relation_v1.current_relation, :version => 2)
7 old_relation_v3 = create(:old_relation, :current_relation => old_relation_v1.current_relation, :version => 3)
8 old_relation_v4 = create(:old_relation, :current_relation => old_relation_v1.current_relation, :version => 4)
9 taglist_v3 = create_list(:old_relation_tag, 3, :old_relation => old_relation_v3)
10 taglist_v4 = create_list(:old_relation_tag, 2, :old_relation => old_relation_v4)
12 tags = OldRelation.find(old_relation_v1.id).old_tags.order(:k)
13 assert_equal 0, tags.count
15 tags = OldRelation.find(old_relation_v2.id).old_tags.order(:k)
16 assert_equal 0, tags.count
18 tags = OldRelation.find(old_relation_v3.id).old_tags.order(:k)
19 assert_equal taglist_v3.count, tags.count
20 taglist_v3.sort_by!(&:k).each_index do |i|
21 assert_equal taglist_v3[i].k, tags[i].k
22 assert_equal taglist_v3[i].v, tags[i].v
25 tags = OldRelation.find(old_relation_v4.id).old_tags.order(:k)
26 assert_equal taglist_v4.count, tags.count
27 taglist_v4.sort_by!(&:k).each_index do |i|
28 assert_equal taglist_v4[i].k, tags[i].k
29 assert_equal taglist_v4[i].v, tags[i].v
33 def test_relation_members
34 old_relation_v1 = create(:old_relation)
35 old_relation_v2 = create(:old_relation, :current_relation => old_relation_v1.current_relation, :version => 2)
36 old_relation_v3 = create(:old_relation, :current_relation => old_relation_v1.current_relation, :version => 3)
37 old_relation_v4 = create(:old_relation, :current_relation => old_relation_v1.current_relation, :version => 4)
38 member_node = create(:node)
39 member_way = create(:way)
40 member_relation = create(:relation)
41 create(:old_relation_member, :old_relation => old_relation_v1, :member => member_node, :member_role => "some node")
42 create(:old_relation_member, :old_relation => old_relation_v2, :member => member_node, :member_role => "some changed node")
43 create(:old_relation_member, :old_relation => old_relation_v3, :member => member_node, :member_role => "some changed node")
44 create(:old_relation_member, :old_relation => old_relation_v3, :member => member_relation, :member_role => "some relation")
45 create(:old_relation_member, :old_relation => old_relation_v4, :member => member_node, :member_role => "some node")
46 create(:old_relation_member, :old_relation => old_relation_v4, :member => member_way, :member_role => "some way")
47 create(:old_relation_member, :old_relation => old_relation_v4, :member => member_relation, :member_role => "some relation")
49 members = OldRelation.find(old_relation_v1.id).relation_members
50 assert_equal 1, members.count
51 assert_equal "some node", members[0].member_role
52 assert_equal "Node", members[0].member_type
53 assert_equal member_node.id, members[0].member_id
55 members = OldRelation.find(old_relation_v2.id).relation_members
56 assert_equal 1, members.count
57 assert_equal "some changed node", members[0].member_role
58 assert_equal "Node", members[0].member_type
59 assert_equal member_node.id, members[0].member_id
61 members = OldRelation.find(old_relation_v3.id).relation_members
62 assert_equal 2, members.count
63 assert_equal "some changed node", members[0].member_role
64 assert_equal "Node", members[0].member_type
65 assert_equal member_node.id, members[0].member_id
66 assert_equal "some relation", members[1].member_role
67 assert_equal "Relation", members[1].member_type
68 assert_equal member_relation.id, members[1].member_id
70 members = OldRelation.find(old_relation_v4.id).relation_members
71 assert_equal 3, members.count
72 assert_equal "some node", members[0].member_role
73 assert_equal "Node", members[0].member_type
74 assert_equal member_node.id, members[0].member_id
75 assert_equal "some way", members[1].member_role
76 assert_equal "Way", members[1].member_type
77 assert_equal member_way.id, members[1].member_id
78 assert_equal "some relation", members[2].member_role
79 assert_equal "Relation", members[2].member_type
80 assert_equal member_relation.id, members[2].member_id
84 old_relation_v1 = create(:old_relation)
85 old_relation_v2 = create(:old_relation, :current_relation => old_relation_v1.current_relation, :version => 2)
86 old_relation_v3 = create(:old_relation, :current_relation => old_relation_v1.current_relation, :version => 3)
87 old_relation_v4 = create(:old_relation, :current_relation => old_relation_v1.current_relation, :version => 4)
88 member_node = create(:node)
89 member_way = create(:way)
90 member_relation = create(:relation)
91 create(:old_relation_member, :old_relation => old_relation_v1, :member => member_node, :member_role => "some node")
92 create(:old_relation_member, :old_relation => old_relation_v2, :member => member_node, :member_role => "some changed node")
93 create(:old_relation_member, :old_relation => old_relation_v3, :member => member_node, :member_role => "some changed node")
94 create(:old_relation_member, :old_relation => old_relation_v3, :member => member_relation, :member_role => "some relation")
95 create(:old_relation_member, :old_relation => old_relation_v4, :member => member_node, :member_role => "some node")
96 create(:old_relation_member, :old_relation => old_relation_v4, :member => member_way, :member_role => "some way")
97 create(:old_relation_member, :old_relation => old_relation_v4, :member => member_relation, :member_role => "some relation")
99 members = OldRelation.find(old_relation_v1.id).members
100 assert_equal 1, members.count
101 assert_equal ["Node", member_node.id, "some node"], members[0]
103 members = OldRelation.find(old_relation_v2.id).members
104 assert_equal 1, members.count
105 assert_equal ["Node", member_node.id, "some changed node"], members[0]
107 members = OldRelation.find(old_relation_v3.id).members
108 assert_equal 2, members.count
109 assert_equal ["Node", member_node.id, "some changed node"], members[0]
110 assert_equal ["Relation", member_relation.id, "some relation"], members[1]
112 members = OldRelation.find(old_relation_v4.id).members
113 assert_equal 3, members.count
114 assert_equal ["Node", member_node.id, "some node"], members[0]
115 assert_equal ["Way", member_way.id, "some way"], members[1]
116 assert_equal ["Relation", member_relation.id, "some relation"], members[2]
120 old_relation_v1 = create(:old_relation, :version => 1)
121 old_relation_v2 = create(:old_relation, :current_relation => old_relation_v1.current_relation, :version => 2)
122 old_relation_v3 = create(:old_relation, :current_relation => old_relation_v1.current_relation, :version => 3)
123 old_relation_v4 = create(:old_relation, :current_relation => old_relation_v1.current_relation, :version => 4)
124 taglist_v3 = create_list(:old_relation_tag, 3, :old_relation => old_relation_v3)
125 taglist_v4 = create_list(:old_relation_tag, 2, :old_relation => old_relation_v4)
127 tags = OldRelation.find(old_relation_v1.id).tags
128 assert_equal 0, tags.size
130 tags = OldRelation.find(old_relation_v2.id).tags
131 assert_equal 0, tags.size
133 tags = OldRelation.find(old_relation_v3.id).tags
134 assert_equal taglist_v3.count, tags.count
135 taglist_v3.each do |tag|
136 assert_equal tag.v, tags[tag.k]
139 tags = OldRelation.find(old_relation_v4.id).tags
140 assert_equal taglist_v4.count, tags.count
141 taglist_v4.each do |tag|
142 assert_equal tag.v, tags[tag.k]