From: Andy Allan Date: Sun, 30 Oct 2016 15:32:11 +0000 (+0100) Subject: Replace fixtures with a factory for old_relation_tags X-Git-Tag: live~3685^2~5 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/aba28ec9e0fef281d0228cfd6b5fc4986c8e2f18?hp=e308da8daf91d4a720473111fef6f756d4510102 Replace fixtures with a factory for old_relation_tags --- diff --git a/test/factories/old_relation_tags.rb b/test/factories/old_relation_tags.rb new file mode 100644 index 000000000..08e417187 --- /dev/null +++ b/test/factories/old_relation_tags.rb @@ -0,0 +1,10 @@ +FactoryGirl.define do + factory :old_relation_tag do + sequence(:k) { |n| "Key #{n}" } + sequence(:v) { |n| "Value #{n}" } + + # Fixme requires old_relation factory + relation_id 1 + version 1 + end +end diff --git a/test/fixtures/relation_tags.yml b/test/fixtures/relation_tags.yml deleted file mode 100644 index daf3c6d0a..000000000 --- a/test/fixtures/relation_tags.yml +++ /dev/null @@ -1,77 +0,0 @@ -t1: - relation_id: 1 - k: 'test' - v: 'yes' - version: 1 - -t2: - relation_id: 2 - k: 'test' - v: 'yes' - version: 1 - -t3: - relation_id: 3 - k: 'test' - v: 'yes' - version: 1 - -t3_2: - relation_id: 3 - k: 'name' - v: 'Test Relation' - version: 1 - -mt_1: - relation_id: 4 - k: 'tag1' - v: 'val1' - version: 1 - -mt_2: - relation_id: 4 - k: 'tag2' - v: 'val2' - version: 1 - -mt_3: - relation_id: 4 - k: 'tag3' - v: 'val3' - version: 1 - -mt_4: - relation_id: 4 - k: 'tag4' - v: 'val4' - version: 1 - -rv3_t1: - relation_id: 8 - k: 'testing' - v: 'added in relation version 3' - version: 3 - -rv3_t2: - relation_id: 8 - k: 'testing two' - v: 'added in relation version 3' - version: 3 - -rv3_t3: - relation_id: 8 - k: 'testing three' - v: 'added in relation version 3' - version: 3 - -rv4_t1: - relation_id: 8 - k: 'testing' - v: 'added in relation version 3' - version: 4 - -rv4_t2: - relation_id: 8 - k: 'testing two' - v: 'modified in relation version 4' - version: 4 diff --git a/test/models/old_relation_tag_test.rb b/test/models/old_relation_tag_test.rb index 2c9638a2d..58c70cc9c 100644 --- a/test/models/old_relation_tag_test.rb +++ b/test/models/old_relation_tag_test.rb @@ -1,58 +1,34 @@ require "test_helper" class OldRelationTagTest < ActiveSupport::TestCase - api_fixtures - - def test_tag_count - assert_equal 13, OldRelationTag.count - end - def test_length_key_valid - key = "k" + tag = create(:old_relation_tag) (0..255).each do |i| - tag = OldRelationTag.new - tag.relation_id = relation_tags(:t1).relation_id - tag.version = 1 - tag.k = key * i - tag.v = "v" + tag.k = "k" * i assert tag.valid? end end def test_length_value_valid - val = "v" + tag = create(:old_relation_tag) (0..255).each do |i| - tag = OldRelationTag.new - tag.relation_id = relation_tags(:t1).relation_id - tag.version = 1 - tag.k = "k" - tag.v = val * i + tag.v = "v" * i assert tag.valid? end end def test_length_key_invalid - ["k" * 256].each do |i| - tag = OldRelationTag.new - tag.relation_id = relation_tags(:t1).relation_id - tag.version = 1 - tag.k = i - tag.v = "v" - assert !tag.valid?, "Key should be too long" - assert tag.errors[:k].any? - end + tag = create(:old_relation_tag) + tag.k = "k" * 256 + assert !tag.valid?, "Key should be too long" + assert tag.errors[:k].any? end def test_length_value_invalid - ["k" * 256].each do |i| - tag = OldRelationTag.new - tag.relation_id = relation_tags(:t1).relation_id - tag.version = 1 - tag.k = "k" - tag.v = i - assert !tag.valid?, "Value should be too long" - assert tag.errors[:v].any? - end + tag = create(:old_relation_tag) + tag.v = "v" * 256 + assert !tag.valid?, "Value should be too long" + assert tag.errors[:v].any? end def test_empty_tag_invalid @@ -62,11 +38,12 @@ class OldRelationTagTest < ActiveSupport::TestCase end def test_uniqueness + existing = create(:old_relation_tag) tag = OldRelationTag.new - tag.relation_id = relation_tags(:t1).relation_id - tag.version = relation_tags(:t1).version - tag.k = relation_tags(:t1).k - tag.v = relation_tags(:t1).v + tag.relation_id = existing.relation_id + tag.version = existing.version + tag.k = existing.k + tag.v = existing.v assert tag.new_record? assert !tag.valid? assert_raise(ActiveRecord::RecordInvalid) { tag.save! } diff --git a/test/models/old_relation_test.rb b/test/models/old_relation_test.rb index c11cdcf72..8b7b5e1f8 100644 --- a/test/models/old_relation_test.rb +++ b/test/models/old_relation_test.rb @@ -8,6 +8,9 @@ class OldRelationTest < ActiveSupport::TestCase end def test_relation_tags + taglist_v3 = create_list(:old_relation_tag, 3, :old_relation => relations(:relation_with_versions_v3)) + taglist_v4 = create_list(:old_relation_tag, 2, :old_relation => relations(:relation_with_versions_v4)) + relation = relations(:relation_with_versions_v1) tags = OldRelation.find(relation.id).old_tags.order(:k) assert_equal 0, tags.count @@ -19,20 +22,18 @@ class OldRelationTest < ActiveSupport::TestCase 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 + 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 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 + 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 @@ -100,6 +101,9 @@ class OldRelationTest < ActiveSupport::TestCase end def test_tags + taglist_v3 = create_list(:old_relation_tag, 3, :old_relation => relations(:relation_with_versions_v3)) + taglist_v4 = create_list(:old_relation_tag, 2, :old_relation => relations(:relation_with_versions_v4)) + relation = relations(:relation_with_versions_v1) tags = OldRelation.find(relation.id).tags assert_equal 0, tags.size @@ -111,14 +115,15 @@ class OldRelationTest < ActiveSupport::TestCase 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"] + taglist_v3.each do |tag| + assert_equal tag.v, tags[tag.k] + end 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"] + taglist_v4.each do |tag| + assert_equal tag.v, tags[tag.k] + end end end diff --git a/test/test_helper.rb b/test/test_helper.rb index df01a326a..933f040d5 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -46,9 +46,8 @@ module ActiveSupport fixtures :relations set_fixture_class :relations => OldRelation - fixtures :relation_members, :relation_tags + fixtures :relation_members set_fixture_class :relation_members => OldRelationMember - set_fixture_class :relation_tags => OldRelationTag fixtures :gpx_files, :gps_points, :gpx_file_tags set_fixture_class :gpx_files => Trace