From: Andy Allan Date: Tue, 25 Apr 2017 13:42:30 +0000 (+0200) Subject: Create an old_relation_member factory, and start using it for tests. X-Git-Tag: live~3479 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/b46028b4f7d48d4768ff54a36eaafe299749eb51 Create an old_relation_member factory, and start using it for tests. --- diff --git a/test/factories/old_relation_member.rb b/test/factories/old_relation_member.rb new file mode 100644 index 000000000..ad7eeb078 --- /dev/null +++ b/test/factories/old_relation_member.rb @@ -0,0 +1,9 @@ +FactoryGirl.define do + factory :old_relation_member do + member_role "" + + old_relation + # Default to creating nodes, but could be ways or relations as members + association :member, :factory => :node + end +end diff --git a/test/models/old_relation_test.rb b/test/models/old_relation_test.rb index 78f0cb478..3858fd1ac 100644 --- a/test/models/old_relation_test.rb +++ b/test/models/old_relation_test.rb @@ -33,67 +33,89 @@ class OldRelationTest < ActiveSupport::TestCase 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