Add tests for node methods on way models
authorTom Hughes <tom@compton.nu>
Wed, 4 Dec 2013 21:44:39 +0000 (21:44 +0000)
committerTom Hughes <tom@compton.nu>
Wed, 4 Dec 2013 21:44:39 +0000 (21:44 +0000)
test/fixtures/current_way_nodes.yml
test/fixtures/current_ways.yml
test/fixtures/way_nodes.yml
test/fixtures/ways.yml
test/unit/old_way_test.rb
test/unit/way_node_test.rb
test/unit/way_test.rb

index 75c4a99..45ef92a 100644 (file)
@@ -27,3 +27,18 @@ w5_n2:
   way_id: 5
   node_id: 4
   sequence_id: 2
+
+w7_n1:
+  way_id: 7
+  node_id: 4
+  sequence_id: 1
+
+w7_n2:
+  way_id: 7
+  node_id: 15
+  sequence_id: 2
+
+w7_n3:
+  way_id: 7
+  node_id: 6
+  sequence_id: 3
index 255be4a..e6e5d84 100644 (file)
@@ -39,3 +39,10 @@ way_with_redacted_versions:
   timestamp: 2008-01-01 00:04:13
   visible: true
   version: 4
+
+way_with_multiple_nodes:
+  id: 7
+  changeset_id: 4
+  timestamp: 2008-01-01 00:00:00
+  visible: true
+  version: 2
index 262f29b..51bf4b8 100644 (file)
@@ -130,6 +130,32 @@ w6_v4_n3:
   sequence_id: 3
   version: 4
 
+w7_v1_n1:
+  way_id: 7
+  node_id: 2
+  sequence_id: 1
+  version: 1
 
+w7_v1_n2:
+  way_id: 7
+  node_id: 6
+  sequence_id: 2
+  version: 1
+
+w7_v2_n1:
+  way_id: 7
+  node_id: 4
+  sequence_id: 1
+  version: 2
 
+w7_v2_n2:
+  way_id: 7
+  node_id: 15
+  sequence_id: 2
+  version: 2
 
+w7_v2_n3:
+  way_id: 7
+  node_id: 6
+  sequence_id: 3
+  version: 2
index dfb48b4..94fd5ae 100644 (file)
@@ -83,3 +83,17 @@ way_with_redacted_versions_v4:
   timestamp: 2008-01-01 00:04:13
   visible: true
   version: 4
+
+way_with_multiple_nodes_v1:
+  way_id: 7
+  changeset_id: 2
+  timestamp: 2007-01-01 00:00:00
+  visible: true
+  version: 1
+
+way_with_multiple_nodes_v2:
+  way_id: 7
+  changeset_id: 4
+  timestamp: 2008-01-01 00:00:00
+  visible: true
+  version: 2
index e75f98b..909f9de 100644 (file)
@@ -4,7 +4,37 @@ class OldWayTest < ActiveSupport::TestCase
   api_fixtures
 
   def test_db_count
-    assert_equal 12, OldWay.count
+    assert_equal 14, OldWay.count
+  end
+
+  def test_old_nodes
+    way = ways(:way_with_multiple_nodes_v1)
+    nodes = OldWay.find(way.id).old_nodes.order(:sequence_id)
+    assert_equal 2, nodes.count
+    assert_equal 2, nodes[0].node_id
+    assert_equal 6, nodes[1].node_id
+
+    way = ways(:way_with_multiple_nodes_v2)
+    nodes = OldWay.find(way.id).old_nodes.order(:sequence_id)
+    assert_equal 3, nodes.count
+    assert_equal 4, nodes[0].node_id
+    assert_equal 15, nodes[1].node_id
+    assert_equal 6, nodes[2].node_id
+  end
+
+  def test_nds
+    way = ways(:way_with_multiple_nodes_v1)
+    nodes = OldWay.find(way.id).nds
+    assert_equal 2, nodes.count
+    assert_equal 2, nodes[0]
+    assert_equal 6, nodes[1]
+
+    way = ways(:way_with_multiple_nodes_v2)
+    nodes = OldWay.find(way.id).nds
+    assert_equal 3, nodes.count
+    assert_equal 4, nodes[0]
+    assert_equal 15, nodes[1]
+    assert_equal 6, nodes[2]
   end
 
   def test_way_tags
index 18162b4..9d6a3b7 100644 (file)
@@ -4,6 +4,6 @@ class WayNodeTest < ActiveSupport::TestCase
   api_fixtures
 
   def test_way_nodes_count
-    assert_equal 6, WayNode.count
+    assert_equal 9, WayNode.count
   end
 end
index 6c2cdc0..6b9237d 100644 (file)
@@ -6,7 +6,7 @@ class WayTest < ActiveSupport::TestCase
   # Check that we have the correct number of currnet ways in the db
   # This will need to updated whenever the current_ways.yml is updated
   def test_db_count
-    assert_equal 6, Way.count
+    assert_equal 7, Way.count
   end
   
   def test_bbox
@@ -136,6 +136,33 @@ class WayTest < ActiveSupport::TestCase
     assert_equal "Element way/23 has duplicate tags with key dup", message_update.message
   end
 
+  def test_way_nodes
+    way = current_ways(:way_with_multiple_nodes)
+    nodes = Way.find(way.id).way_nodes
+    assert_equal 3, nodes.count
+    assert_equal 4, nodes[0].node_id
+    assert_equal 15, nodes[1].node_id
+    assert_equal 6, nodes[2].node_id
+  end
+
+  def test_nodes
+    way = current_ways(:way_with_multiple_nodes)
+    nodes = Way.find(way.id).nodes
+    assert_equal 3, nodes.count
+    assert_equal 4, nodes[0].id
+    assert_equal 15, nodes[1].id
+    assert_equal 6, nodes[2].id
+  end
+
+  def test_nds
+    way = current_ways(:way_with_multiple_nodes)
+    nodes = Way.find(way.id).nds
+    assert_equal 3, nodes.count
+    assert_equal 4, nodes[0]
+    assert_equal 15, nodes[1]
+    assert_equal 6, nodes[2]
+  end
+
   def test_way_tags
     way = current_ways(:way_with_versions)
     tags = Way.find(way.id).way_tags.order(:k)