From: Tom Hughes Date: Wed, 4 Dec 2013 21:44:39 +0000 (+0000) Subject: Add tests for node methods on way models X-Git-Tag: live~5105 X-Git-Url: https://git.openstreetmap.org./rails.git/commitdiff_plain/cd81a3f60506cc0da60a0c84e04f9ed63c9bfe9f?ds=sidebyside Add tests for node methods on way models --- diff --git a/test/fixtures/current_way_nodes.yml b/test/fixtures/current_way_nodes.yml index 75c4a9981..45ef92af4 100644 --- a/test/fixtures/current_way_nodes.yml +++ b/test/fixtures/current_way_nodes.yml @@ -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 diff --git a/test/fixtures/current_ways.yml b/test/fixtures/current_ways.yml index 255be4a97..e6e5d8419 100644 --- a/test/fixtures/current_ways.yml +++ b/test/fixtures/current_ways.yml @@ -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 diff --git a/test/fixtures/way_nodes.yml b/test/fixtures/way_nodes.yml index 262f29b31..51bf4b878 100644 --- a/test/fixtures/way_nodes.yml +++ b/test/fixtures/way_nodes.yml @@ -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 diff --git a/test/fixtures/ways.yml b/test/fixtures/ways.yml index dfb48b450..94fd5aebd 100644 --- a/test/fixtures/ways.yml +++ b/test/fixtures/ways.yml @@ -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 diff --git a/test/unit/old_way_test.rb b/test/unit/old_way_test.rb index e75f98b9c..909f9de1e 100644 --- a/test/unit/old_way_test.rb +++ b/test/unit/old_way_test.rb @@ -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 diff --git a/test/unit/way_node_test.rb b/test/unit/way_node_test.rb index 18162b44a..9d6a3b755 100644 --- a/test/unit/way_node_test.rb +++ b/test/unit/way_node_test.rb @@ -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 diff --git a/test/unit/way_test.rb b/test/unit/way_test.rb index 6c2cdc0be..6b9237da7 100644 --- a/test/unit/way_test.rb +++ b/test/unit/way_test.rb @@ -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)