Convert fixtures to factory for old_way_tags
authorAndy Allan <git@gravitystorm.co.uk>
Sun, 30 Oct 2016 15:15:23 +0000 (16:15 +0100)
committerAndy Allan <git@gravitystorm.co.uk>
Sun, 30 Oct 2016 15:15:23 +0000 (16:15 +0100)
test/controllers/old_way_controller_test.rb
test/factories/old_way_tags.rb [new file with mode: 0644]
test/fixtures/way_tags.yml [deleted file]
test/models/old_node_tag_test.rb
test/models/old_node_test.rb
test/models/old_way_tag_test.rb
test/models/old_way_test.rb
test/test_helper.rb

index 612b4a6..a15f6ba 100644 (file)
@@ -46,6 +46,10 @@ class OldWayControllerTest < ActionController::TestCase
   ##
   # check that we can retrieve versions of a way
   def test_version
+    propogate_tags(current_ways(:visible_way), ways(:visible_way))
+    propogate_tags(current_ways(:used_way), ways(:used_way))
+    propogate_tags(current_ways(:way_with_versions), ways(:way_with_versions_v4))
+
     check_current_version(current_ways(:visible_way).id)
     check_current_version(current_ways(:used_way).id)
     check_current_version(current_ways(:way_with_versions).id)
@@ -276,4 +280,10 @@ class OldWayControllerTest < ActionController::TestCase
     # now redact it
     post :redact, :id => way.way_id, :version => way.version, :redaction => redaction.id
   end
+
+  def propogate_tags(way, old_way)
+    way.tags.each do |k, v|
+      create(:old_way_tag, :old_way => old_way, :k => k, :v => v)
+    end
+  end
 end
diff --git a/test/factories/old_way_tags.rb b/test/factories/old_way_tags.rb
new file mode 100644 (file)
index 0000000..c639c06
--- /dev/null
@@ -0,0 +1,10 @@
+FactoryGirl.define do
+  factory :old_way_tag do
+    sequence(:k) { |n| "Key #{n}" }
+    sequence(:v) { |n| "Value #{n}" }
+
+    # Fixme requires old_way factory
+    way_id 1
+    version 1
+  end
+end
diff --git a/test/fixtures/way_tags.yml b/test/fixtures/way_tags.yml
deleted file mode 100644 (file)
index 3361f74..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-t1:
-  way_id: 1
-  k: 'test'
-  v: 'yes'
-  version: 1
-
-t2:
-  way_id: 2
-  k: 'test'
-  v: 'yes'
-  version: 1
-
-t3:
-  way_id: 3
-  k: 'test'
-  v: 'yes'
-  version: 1
-
-t3_t2:
-  way_id: 3
-  k: 'name'
-  v: 'Test Way'
-  version: 1
-
-wv3_t1:
-  way_id: 4
-  k: 'testing'
-  v: 'added in way version 3'
-  version: 3
-
-wv3_t2:
-  way_id: 4
-  k: 'testing two'
-  v: 'added in way version 3'
-  version: 3
-
-wv3_t3:
-  way_id: 4
-  k: 'testing three'
-  v: 'added in way version 3'
-  version: 3
-
-wv4_t1:
-  way_id: 4
-  k: 'testing'
-  v: 'added in way version 3'
-  version: 4
-
-wv4_t2:
-  way_id: 4
-  k: 'testing two'
-  v: 'modified in way version 4'
-  version: 4
-
-t6_v1:
-  way_id: 6
-  k: 'test'
-  v: 'yes'
-  version: 1
-
-t6_v2:
-  way_id: 6
-  k: 'test'
-  v: 'yes'
-  version: 2
-
-t6_v3:
-  way_id: 6
-  k: 'test'
-  v: 'yes'
-  version: 3
-
-t6_v4:
-  way_id: 6
-  k: 'test'
-  v: 'yes'
-  version: 4
index f49be92..3f0867a 100644 (file)
@@ -1,8 +1,6 @@
 require "test_helper"
 
 class OldNodeTagTest < ActiveSupport::TestCase
-  api_fixtures
-
   def test_length_key_valid
     tag = create(:old_node_tag)
     (0..255).each do |i|
index 6d25d76..a4c317c 100644 (file)
@@ -90,7 +90,7 @@ class OldNodeTest < ActiveSupport::TestCase
     node = nodes(:node_with_versions_v3)
     tags = OldNode.find(node.id).old_tags.order(:k)
     assert_equal 3, tags.count
-    taglist_v3.sort_by(&:k).each_index do |i|
+    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
@@ -98,7 +98,7 @@ class OldNodeTest < ActiveSupport::TestCase
     node = nodes(:node_with_versions_v4)
     tags = OldNode.find(node.id).old_tags.order(:k)
     assert_equal 2, tags.count
-    taglist_v4.sort_by(&:k).each_index do |i|
+    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
index b8757d5..057bdf4 100644 (file)
@@ -1,58 +1,34 @@
 require "test_helper"
 
 class OldWayTagTest < ActiveSupport::TestCase
-  api_fixtures
-
-  def test_tag_count
-    assert_equal 13, OldWayTag.count
-  end
-
   def test_length_key_valid
-    key = "k"
+    tag = create(:old_way_tag)
     (0..255).each do |i|
-      tag = OldWayTag.new
-      tag.way_id = way_tags(:t1).way_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_way_tag)
     (0..255).each do |i|
-      tag = OldWayTag.new
-      tag.way_id = way_tags(:t1).way_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 = OldWayTag.new
-      tag.way_id = way_tags(:t1).way_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_way_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 = OldWayTag.new
-      tag.way_id = way_tags(:t1).way_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_way_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 OldWayTagTest < ActiveSupport::TestCase
   end
 
   def test_uniqueness
+    existing = create(:old_way_tag)
     tag = OldWayTag.new
-    tag.way_id = way_tags(:t1).way_id
-    tag.version = way_tags(:t1).version
-    tag.k = way_tags(:t1).k
-    tag.v = way_tags(:t1).v
+    tag.way_id = existing.way_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! }
index 37dfcca..b659632 100644 (file)
@@ -38,6 +38,9 @@ class OldWayTest < ActiveSupport::TestCase
   end
 
   def test_way_tags
+    taglist_v3 = create_list(:old_way_tag, 3, :old_way => ways(:way_with_versions_v3))
+    taglist_v4 = create_list(:old_way_tag, 2, :old_way => ways(:way_with_versions_v4))
+
     way = ways(:way_with_versions_v1)
     tags = OldWay.find(way.id).old_tags.order(:k)
     assert_equal 0, tags.count
@@ -49,23 +52,24 @@ class OldWayTest < ActiveSupport::TestCase
     way = ways(:way_with_versions_v3)
     tags = OldWay.find(way.id).old_tags.order(:k)
     assert_equal 3, tags.count
-    assert_equal "testing", tags[0].k
-    assert_equal "added in way version 3", tags[0].v
-    assert_equal "testing three", tags[1].k
-    assert_equal "added in way version 3", tags[1].v
-    assert_equal "testing two", tags[2].k
-    assert_equal "added in way 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
 
     way = ways(:way_with_versions_v4)
     tags = OldWay.find(way.id).old_tags.order(:k)
     assert_equal 2, tags.count
-    assert_equal "testing", tags[0].k
-    assert_equal "added in way version 3", tags[0].v
-    assert_equal "testing two", tags[1].k
-    assert_equal "modified in way 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_tags
+    taglist_v3 = create_list(:old_way_tag, 3, :old_way => ways(:way_with_versions_v3))
+    taglist_v4 = create_list(:old_way_tag, 2, :old_way => ways(:way_with_versions_v4))
+
     way = ways(:way_with_versions_v1)
     tags = OldWay.find(way.id).tags
     assert_equal 0, tags.size
@@ -77,15 +81,16 @@ class OldWayTest < ActiveSupport::TestCase
     way = ways(:way_with_versions_v3)
     tags = OldWay.find(way.id).tags
     assert_equal 3, tags.size
-    assert_equal "added in way version 3", tags["testing"]
-    assert_equal "added in way version 3", tags["testing two"]
-    assert_equal "added in way version 3", tags["testing three"]
+    taglist_v3.each do |tag|
+      assert_equal tag.v, tags[tag.k]
+    end
 
     way = ways(:way_with_versions_v4)
     tags = OldWay.find(way.id).tags
     assert_equal 2, tags.size
-    assert_equal "added in way version 3", tags["testing"]
-    assert_equal "modified in way version 4", tags["testing two"]
+    taglist_v4.each do |tag|
+      assert_equal tag.v, tags[tag.k]
+    end
   end
 
   def test_get_nodes_undelete
index 0fced7b..df01a32 100644 (file)
@@ -33,9 +33,8 @@ module ActiveSupport
       fixtures :ways
       set_fixture_class :ways => OldWay
 
-      fixtures :way_nodes, :way_tags
+      fixtures :way_nodes
       set_fixture_class :way_nodes => OldWayNode
-      set_fixture_class :way_tags => OldWayTag
 
       fixtures :current_relations
       set_fixture_class :current_relations => Relation