X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/9a9b045372a6f48420a9a6dacfde52c34ab7abce..f8f7ab15685403a2b440723f83fdd8451488c908:/test/models/old_relation_test.rb diff --git a/test/models/old_relation_test.rb b/test/models/old_relation_test.rb index c11cdcf72..62f5e720b 100644 --- a/test/models/old_relation_test.rb +++ b/test/models/old_relation_test.rb @@ -1,124 +1,145 @@ require "test_helper" class OldRelationTest < ActiveSupport::TestCase - api_fixtures - - def test_db_count - assert_equal 14, OldRelation.count - end - def test_relation_tags - relation = relations(:relation_with_versions_v1) - tags = OldRelation.find(relation.id).old_tags.order(:k) + old_relation_v1 = create(:old_relation, :version => 1) + old_relation_v2 = create(:old_relation, :current_relation => old_relation_v1.current_relation, :version => 2) + old_relation_v3 = create(:old_relation, :current_relation => old_relation_v1.current_relation, :version => 3) + old_relation_v4 = create(:old_relation, :current_relation => old_relation_v1.current_relation, :version => 4) + taglist_v3 = create_list(:old_relation_tag, 3, :old_relation => old_relation_v3) + taglist_v4 = create_list(:old_relation_tag, 2, :old_relation => old_relation_v4) + + tags = OldRelation.find(old_relation_v1.id).old_tags.order(:k) assert_equal 0, tags.count - relation = relations(:relation_with_versions_v2) - tags = OldRelation.find(relation.id).old_tags.order(:k) + tags = OldRelation.find(old_relation_v2.id).old_tags.order(:k) assert_equal 0, tags.count - relation = relations(:relation_with_versions_v3) - tags = OldRelation.find(relation.id).old_tags.order(:k) - assert_equal 3, tags.count - assert_equal "testing", tags[0].k - assert_equal "added in relation version 3", tags[0].v - assert_equal "testing three", tags[1].k - assert_equal "added in relation version 3", tags[1].v - assert_equal "testing two", tags[2].k - assert_equal "added in relation version 3", tags[2].v - - relation = relations(:relation_with_versions_v4) - tags = OldRelation.find(relation.id).old_tags.order(:k) - assert_equal 2, tags.count - assert_equal "testing", tags[0].k - assert_equal "added in relation version 3", tags[0].v - assert_equal "testing two", tags[1].k - assert_equal "modified in relation version 4", tags[1].v + tags = OldRelation.find(old_relation_v3.id).old_tags.order(:k) + assert_equal taglist_v3.count, tags.count + taglist_v3.sort_by!(&:k).each_index do |i| + assert_equal taglist_v3[i].k, tags[i].k + assert_equal taglist_v3[i].v, tags[i].v + end + + tags = OldRelation.find(old_relation_v4.id).old_tags.order(:k) + assert_equal taglist_v4.count, tags.count + taglist_v4.sort_by!(&:k).each_index do |i| + assert_equal taglist_v4[i].k, tags[i].k + assert_equal taglist_v4[i].v, tags[i].v + end end def test_relation_members - relation = relations(:relation_with_versions_v1) - members = OldRelation.find(relation.id).relation_members + old_relation_v1 = create(:old_relation) + old_relation_v2 = create(:old_relation, :current_relation => old_relation_v1.current_relation, :version => 2) + old_relation_v3 = create(:old_relation, :current_relation => old_relation_v1.current_relation, :version => 3) + old_relation_v4 = create(:old_relation, :current_relation => old_relation_v1.current_relation, :version => 4) + member_node = create(:node) + member_way = create(:way) + member_relation = create(:relation) + create(:old_relation_member, :old_relation => old_relation_v1, :member => member_node, :member_role => "some node") + create(:old_relation_member, :old_relation => old_relation_v2, :member => member_node, :member_role => "some changed node") + create(:old_relation_member, :old_relation => old_relation_v3, :member => member_node, :member_role => "some changed node") + create(:old_relation_member, :old_relation => old_relation_v3, :member => member_relation, :member_role => "some relation") + create(:old_relation_member, :old_relation => old_relation_v4, :member => member_node, :member_role => "some node") + create(:old_relation_member, :old_relation => old_relation_v4, :member => member_way, :member_role => "some way") + create(:old_relation_member, :old_relation => old_relation_v4, :member => member_relation, :member_role => "some relation") + + members = OldRelation.find(old_relation_v1.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 + assert_equal member_node.id, members[0].member_id - relation = relations(:relation_with_versions_v2) - members = OldRelation.find(relation.id).relation_members + members = OldRelation.find(old_relation_v2.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 + assert_equal member_node.id, members[0].member_id - relation = relations(:relation_with_versions_v3) - members = OldRelation.find(relation.id).relation_members + members = OldRelation.find(old_relation_v3.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 member_node.id, 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 + assert_equal member_relation.id, members[1].member_id - relation = relations(:relation_with_versions_v4) - members = OldRelation.find(relation.id).relation_members + members = OldRelation.find(old_relation_v4.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 member_node.id, 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 member_way.id, 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 + assert_equal member_relation.id, members[2].member_id end def test_relations - relation = relations(:relation_with_versions_v1) - members = OldRelation.find(relation.id).members + old_relation_v1 = create(:old_relation) + old_relation_v2 = create(:old_relation, :current_relation => old_relation_v1.current_relation, :version => 2) + old_relation_v3 = create(:old_relation, :current_relation => old_relation_v1.current_relation, :version => 3) + old_relation_v4 = create(:old_relation, :current_relation => old_relation_v1.current_relation, :version => 4) + member_node = create(:node) + member_way = create(:way) + member_relation = create(:relation) + create(:old_relation_member, :old_relation => old_relation_v1, :member => member_node, :member_role => "some node") + create(:old_relation_member, :old_relation => old_relation_v2, :member => member_node, :member_role => "some changed node") + create(:old_relation_member, :old_relation => old_relation_v3, :member => member_node, :member_role => "some changed node") + create(:old_relation_member, :old_relation => old_relation_v3, :member => member_relation, :member_role => "some relation") + create(:old_relation_member, :old_relation => old_relation_v4, :member => member_node, :member_role => "some node") + create(:old_relation_member, :old_relation => old_relation_v4, :member => member_way, :member_role => "some way") + create(:old_relation_member, :old_relation => old_relation_v4, :member => member_relation, :member_role => "some relation") + + members = OldRelation.find(old_relation_v1.id).members assert_equal 1, members.count - assert_equal ["Node", 15, "some node"], members[0] + assert_equal ["Node", member_node.id, "some node"], members[0] - relation = relations(:relation_with_versions_v2) - members = OldRelation.find(relation.id).members + members = OldRelation.find(old_relation_v2.id).members assert_equal 1, members.count - assert_equal ["Node", 15, "some changed node"], members[0] + assert_equal ["Node", member_node.id, "some changed node"], members[0] - relation = relations(:relation_with_versions_v3) - members = OldRelation.find(relation.id).members + members = OldRelation.find(old_relation_v3.id).members assert_equal 2, members.count - assert_equal ["Node", 15, "some changed node"], members[0] - assert_equal ["Relation", 7, "some relation"], members[1] + assert_equal ["Node", member_node.id, "some changed node"], members[0] + assert_equal ["Relation", member_relation.id, "some relation"], members[1] - relation = relations(:relation_with_versions_v4) - members = OldRelation.find(relation.id).members + members = OldRelation.find(old_relation_v4.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] + assert_equal ["Node", member_node.id, "some node"], members[0] + assert_equal ["Way", member_way.id, "some way"], members[1] + assert_equal ["Relation", member_relation.id, "some relation"], members[2] end def test_tags - relation = relations(:relation_with_versions_v1) - tags = OldRelation.find(relation.id).tags + old_relation_v1 = create(:old_relation, :version => 1) + old_relation_v2 = create(:old_relation, :current_relation => old_relation_v1.current_relation, :version => 2) + old_relation_v3 = create(:old_relation, :current_relation => old_relation_v1.current_relation, :version => 3) + old_relation_v4 = create(:old_relation, :current_relation => old_relation_v1.current_relation, :version => 4) + taglist_v3 = create_list(:old_relation_tag, 3, :old_relation => old_relation_v3) + taglist_v4 = create_list(:old_relation_tag, 2, :old_relation => old_relation_v4) + + tags = OldRelation.find(old_relation_v1.id).tags assert_equal 0, tags.size - relation = relations(:relation_with_versions_v2) - tags = OldRelation.find(relation.id).tags + tags = OldRelation.find(old_relation_v2.id).tags assert_equal 0, tags.size - relation = relations(:relation_with_versions_v3) - tags = OldRelation.find(relation.id).tags - assert_equal 3, tags.size - assert_equal "added in relation version 3", tags["testing"] - assert_equal "added in relation version 3", tags["testing two"] - assert_equal "added in relation version 3", tags["testing three"] - - relation = relations(:relation_with_versions_v4) - tags = OldRelation.find(relation.id).tags - assert_equal 2, tags.size - assert_equal "added in relation version 3", tags["testing"] - assert_equal "modified in relation version 4", tags["testing two"] + tags = OldRelation.find(old_relation_v3.id).tags + assert_equal taglist_v3.count, tags.count + taglist_v3.each do |tag| + assert_equal tag.v, tags[tag.k] + end + + tags = OldRelation.find(old_relation_v4.id).tags + assert_equal taglist_v4.count, tags.count + taglist_v4.each do |tag| + assert_equal tag.v, tags[tag.k] + end end end