Add tests for member methods on relation models

This commit is contained in:
Tom Hughes 2013-12-05 00:38:25 +00:00
parent cd81a3f605
commit 1f52e5227f
6 changed files with 181 additions and 3 deletions

View file

@ -63,7 +63,7 @@ class OldRelation < ActiveRecord::Base
unless @members
@members = Array.new
self.old_members.order(:sequence_id).each do |m|
@members += [[m.type,m.id,m.role]]
@members += [[m.member_type,m.member_id,m.member_role]]
end
end
@members

View file

@ -1,29 +1,34 @@
t1:
relation_id: 1
sequence_id: 1
member_role: "some"
member_type: "Way"
member_id: 3
t2:
relation_id: 1
sequence_id: 2
member_role: "some"
member_type: "Node"
member_id: 5
t3:
relation_id: 1
sequence_id: 3
member_role: "some"
member_type: "Relation"
member_id: 3
t4:
relation_id: 3
sequence_id: 1
member_role: "some"
member_type: "Node"
member_id: 5
t5:
relation_id: 2
sequence_id: 1
member_role: "some"
member_type: "Node"
member_id: 5
@ -33,3 +38,24 @@ public_used:
member_role: "used by other relation"
member_type: "Relation"
member_id: 5
r8_m1:
relation_id: 8
sequence_id: 1
member_role: "some node"
member_type: "Node"
member_id: 15
r8_m2:
relation_id: 8
sequence_id: 2
member_role: "some way"
member_type: "Way"
member_id: 4
r8_m3:
relation_id: 8
sequence_id: 3
member_role: "some relation"
member_type: "Relation"
member_id: 7

View file

@ -1,23 +1,30 @@
t1:
relation_id: 1
sequence_id: 1
member_role: "some"
member_type: "Way"
member_id: 3
version: 1
t2:
relation_id: 1
sequence_id: 2
member_role: "some"
member_type: "Node"
member_id: 5
version: 1
t3:
relation_id: 1
sequence_id: 3
member_role: "some"
member_type: "Relation"
member_id: 3
version: 1
t4:
relation_id: 3
sequence_id: 1
member_role: "some"
member_type: "Node"
member_id: 5
@ -25,6 +32,7 @@ t4:
t5:
relation_id: 2
sequence_id: 1
member_role: "some"
member_type: "Node"
member_id: 5
@ -32,7 +40,64 @@ t5:
public_used:
relation_id: 6
sequence_id: 1
member_role: "used by other relation"
member_type: "Relation"
member_id: 5
version: 1
r8_v1_m1:
relation_id: 8
sequence_id: 1
member_role: "some node"
member_type: "Node"
member_id: 15
version: 1
r8_v2_m1:
relation_id: 8
sequence_id: 1
member_role: "some changed node"
member_type: "Node"
member_id: 15
version: 2
r8_v3_m1:
relation_id: 8
sequence_id: 1
member_role: "some changed node"
member_type: "Node"
member_id: 15
version: 3
r8_v3_m3:
relation_id: 8
sequence_id: 2
member_role: "some relation"
member_type: "Relation"
member_id: 7
version: 3
r8_v4_m1:
relation_id: 8
sequence_id: 1
member_role: "some node"
member_type: "Node"
member_id: 15
version: 4
r8_v4_m2:
relation_id: 8
sequence_id: 2
member_role: "some way"
member_type: "Way"
member_id: 4
version: 4
r8_v4_m3:
relation_id: 8
sequence_id: 3
member_role: "some relation"
member_type: "Relation"
member_id: 7
version: 4

View file

@ -35,6 +35,70 @@ class OldRelationTest < ActiveSupport::TestCase
assert_equal "modified in relation version 4", tags[1].v
end
def test_relation_members
relation = relations(:relation_with_versions_v1)
members = OldRelation.find(relation.id).relation_members
assert_equal 1, members.count
assert_equal "some node", members[0].member_role
assert_equal "Node", members[0].member_type
assert_equal 15, members[0].member_id
relation = relations(:relation_with_versions_v2)
members = OldRelation.find(relation.id).relation_members
assert_equal 1, members.count
assert_equal "some changed node", members[0].member_role
assert_equal "Node", members[0].member_type
assert_equal 15, members[0].member_id
relation = relations(:relation_with_versions_v3)
members = OldRelation.find(relation.id).relation_members
assert_equal 2, members.count
assert_equal "some changed node", members[0].member_role
assert_equal "Node", members[0].member_type
assert_equal 15, members[0].member_id
assert_equal "some relation", members[1].member_role
assert_equal "Relation", members[1].member_type
assert_equal 7, members[1].member_id
relation = relations(:relation_with_versions_v4)
members = OldRelation.find(relation.id).relation_members
assert_equal 3, members.count
assert_equal "some node", members[0].member_role
assert_equal "Node", members[0].member_type
assert_equal 15, members[0].member_id
assert_equal "some way", members[1].member_role
assert_equal "Way", members[1].member_type
assert_equal 4, members[1].member_id
assert_equal "some relation", members[2].member_role
assert_equal "Relation", members[2].member_type
assert_equal 7, members[2].member_id
end
def test_relations
relation = relations(:relation_with_versions_v1)
members = OldRelation.find(relation.id).members
assert_equal 1, members.count
assert_equal ["Node", 15, "some node"], members[0]
relation = relations(:relation_with_versions_v2)
members = OldRelation.find(relation.id).members
assert_equal 1, members.count
assert_equal ["Node", 15, "some changed node"], members[0]
relation = relations(:relation_with_versions_v3)
members = OldRelation.find(relation.id).members
assert_equal 2, members.count
assert_equal ["Node", 15, "some changed node"], members[0]
assert_equal ["Relation", 7, "some relation"], members[1]
relation = relations(:relation_with_versions_v4)
members = OldRelation.find(relation.id).members
assert_equal 3, members.count
assert_equal ["Node", 15, "some node"], members[0]
assert_equal ["Way", 4, "some way"], members[1]
assert_equal ["Relation", 7, "some relation"], members[2]
end
def test_tags
relation = relations(:relation_with_versions_v1)
tags = OldRelation.find(relation.id).tags

View file

@ -4,7 +4,6 @@ class RelationMemberTest < ActiveSupport::TestCase
api_fixtures
def test_relation_member_count
assert_equal 6, RelationMember.count
assert_equal 9, RelationMember.count
end
end

View file

@ -103,6 +103,30 @@ class RelationTest < ActiveSupport::TestCase
assert_equal "Element relation/23 has duplicate tags with key dup", message_update.message
end
def test_relation_members
relation = current_relations(:relation_with_versions)
members = Relation.find(relation.id).relation_members
assert_equal 3, members.count
assert_equal "some node", members[0].member_role
assert_equal "Node", members[0].member_type
assert_equal 15, members[0].member_id
assert_equal "some way", members[1].member_role
assert_equal "Way", members[1].member_type
assert_equal 4, members[1].member_id
assert_equal "some relation", members[2].member_role
assert_equal "Relation", members[2].member_type
assert_equal 7, members[2].member_id
end
def test_relations
relation = current_relations(:relation_with_versions)
members = Relation.find(relation.id).members
assert_equal 3, members.count
assert_equal ["Node", 15, "some node"], members[0]
assert_equal ["Way", 4, "some way"], members[1]
assert_equal ["Relation", 7, "some relation"], members[2]
end
def test_relation_tags
relation = current_relations(:relation_with_versions)
tags = Relation.find(relation.id).relation_tags.order(:k)