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 75c4a9981ff154f70b66c8eb913d85c0afba8a14..45ef92af49795e019a6d91c16a24a3b600e1bebd 100644 (file)
@@ -27,3 +27,18 @@ w5_n2:
   way_id: 5
   node_id: 4
   sequence_id: 2
   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 255be4a97c079775b78829fdac0668286a159e76..e6e5d841994c524d23ea46f26b0079c0cb30335f 100644 (file)
@@ -39,3 +39,10 @@ way_with_redacted_versions:
   timestamp: 2008-01-01 00:04:13
   visible: true
   version: 4
   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 262f29b3179cf3594ab2500808d67c6e6f08c77c..51bf4b878aa1336e2698a144c7c0741ce2eec381 100644 (file)
@@ -130,6 +130,32 @@ w6_v4_n3:
   sequence_id: 3
   version: 4
 
   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 dfb48b4506ca3032ad001dc8c998b5e378462118..94fd5aebda5402c243a6daaad73e0ae70fb42d49 100644 (file)
@@ -83,3 +83,17 @@ way_with_redacted_versions_v4:
   timestamp: 2008-01-01 00:04:13
   visible: true
   version: 4
   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 e75f98b9cad7f2727624bb4be2acb06dcbcac3a0..909f9de1ed960d13009d89efa5a458a28a529327 100644 (file)
@@ -4,7 +4,37 @@ class OldWayTest < ActiveSupport::TestCase
   api_fixtures
 
   def test_db_count
   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
   end
 
   def test_way_tags
index 18162b44ab82a9e328f0eef7c8f90dcd5ed099da..9d6a3b75597a83425fbb319ac8af4cfbb44fda0c 100644 (file)
@@ -4,6 +4,6 @@ class WayNodeTest < ActiveSupport::TestCase
   api_fixtures
 
   def test_way_nodes_count
   api_fixtures
 
   def test_way_nodes_count
-    assert_equal 6, WayNode.count
+    assert_equal 9, WayNode.count
   end
 end
   end
 end
index 6c2cdc0be4037ad09bd0ec1d22df295596dcb4ec..6b9237da765d60e770a7b1d6751279e1909ce80a 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
   # 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
   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
 
     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)
   def test_way_tags
     way = current_ways(:way_with_versions)
     tags = Way.find(way.id).way_tags.order(:k)