Use old_node factory for OldNode model tests.

The valid/invalid tests were simplified, since there is little to be
gained from inserting (invalid) nodes into the database and comparing
the node with another copy of itself.
This commit is contained in:
Andy Allan 2017-03-22 17:10:48 +00:00
parent 6b6d922239
commit 2d3ca85751

View file

@ -1,93 +1,68 @@
require "test_helper"
class OldNodeTest < ActiveSupport::TestCase
api_fixtures
def test_node_count
assert_equal 23, OldNode.count
end
def test_node_too_far_north
invalid_node_test(:node_too_far_north)
node = build(:old_node, :latitude => 90.01 * OldNode::SCALE)
assert_equal false, node.valid?
end
def test_node_north_limit
valid_node_test(:node_north_limit)
end
def test_node_too_far_south
invalid_node_test(:node_too_far_south)
end
def test_node_south_limit
valid_node_test(:node_south_limit)
end
def test_node_too_far_west
invalid_node_test(:node_too_far_west)
end
def test_node_west_limit
valid_node_test(:node_west_limit)
end
def test_node_too_far_east
invalid_node_test(:node_too_far_east)
end
def test_node_east_limit
valid_node_test(:node_east_limit)
end
def test_totally_wrong
invalid_node_test(:node_totally_wrong)
end
# This helper method will check to make sure that a node is within the world, and
# has the the same lat, lon and timestamp than what was put into the db by
# the fixture
def valid_node_test(nod)
node = nodes(nod)
dbnode = Node.find(node.node_id)
assert_equal dbnode.lat, node.latitude.to_f / OldNode::SCALE
assert_equal dbnode.lon, node.longitude.to_f / OldNode::SCALE
assert_equal dbnode.changeset_id, node.changeset_id
assert_equal dbnode.version, node.version
assert_equal dbnode.visible, node.visible
assert_equal dbnode.timestamp, node.timestamp
# assert_equal node.tile, QuadTile.tile_for_point(nodes(nod).lat, nodes(nod).lon)
node = build(:old_node, :latitude => 90 * OldNode::SCALE)
assert node.valid?
end
# This helpermethod will check to make sure that a node is outwith the world,
# and has the same lat, lon and timesamp than what was put into the db by the
# fixture
def invalid_node_test(nod)
node = nodes(nod)
dbnode = Node.find(node.node_id)
assert_equal dbnode.lat, node.latitude.to_f / OldNode::SCALE
assert_equal dbnode.lon, node.longitude.to_f / OldNode::SCALE
assert_equal dbnode.changeset_id, node.changeset_id
assert_equal dbnode.version, node.version
assert_equal dbnode.visible, node.visible
assert_equal dbnode.timestamp, node.timestamp
# assert_equal node.tile, QuadTile.tile_for_point(nodes(nod).lat, nodes(nod).lon)
def test_node_too_far_south
node = build(:old_node, :latitude => -90.01 * OldNode::SCALE)
assert_equal false, node.valid?
end
def test_node_south_limit
node = build(:old_node, :latitude => -90 * OldNode::SCALE)
assert node.valid?
end
def test_node_too_far_west
node = build(:old_node, :longitude => -180.01 * OldNode::SCALE)
assert_equal false, node.valid?
end
def test_node_west_limit
node = build(:old_node, :longitude => -180 * OldNode::SCALE)
assert node.valid?
end
def test_node_too_far_east
node = build(:old_node, :longitude => 180.01 * OldNode::SCALE)
assert_equal false, node.valid?
end
def test_node_east_limit
node = build(:old_node, :longitude => 180 * OldNode::SCALE)
assert node.valid?
end
def test_totally_wrong
node = build(:old_node, :latitude => 200 * OldNode::SCALE, :longitude => 200 * OldNode::SCALE)
assert_equal false, node.valid?
end
def test_node_tags
taglist_v3 = create_list(:old_node_tag, 3, :old_node => nodes(:node_with_versions_v3))
taglist_v4 = create_list(:old_node_tag, 2, :old_node => nodes(:node_with_versions_v4))
node_v1 = create(:old_node, :version => 1)
node_v2 = create(:old_node, :node_id => node_v1.node_id, :version => 2)
node_v3 = create(:old_node, :node_id => node_v1.node_id, :version => 3)
node_v4 = create(:old_node, :node_id => node_v1.node_id, :version => 4)
taglist_v3 = create_list(:old_node_tag, 3, :old_node => node_v3)
taglist_v4 = create_list(:old_node_tag, 2, :old_node => node_v4)
node = nodes(:node_with_versions_v1)
node = node_v1
tags = OldNode.find(node.id).old_tags.order(:k)
assert_equal 0, tags.count
node = nodes(:node_with_versions_v2)
node = node_v2
tags = OldNode.find(node.id).old_tags.order(:k)
assert_equal 0, tags.count
node = nodes(:node_with_versions_v3)
node = node_v3
tags = OldNode.find(node.id).old_tags.order(:k)
assert_equal taglist_v3.count, tags.count
taglist_v3.sort_by!(&:k).each_index do |i|
@ -95,7 +70,7 @@ class OldNodeTest < ActiveSupport::TestCase
assert_equal taglist_v3[i].v, tags[i].v
end
node = nodes(:node_with_versions_v4)
node = node_v4
tags = OldNode.find(node.id).old_tags.order(:k)
assert_equal taglist_v4.count, tags.count
taglist_v4.sort_by!(&:k).each_index do |i|
@ -105,25 +80,29 @@ class OldNodeTest < ActiveSupport::TestCase
end
def test_tags
taglist_v3 = create_list(:old_node_tag, 3, :old_node => nodes(:node_with_versions_v3))
taglist_v4 = create_list(:old_node_tag, 2, :old_node => nodes(:node_with_versions_v4))
node_v1 = create(:old_node, :version => 1)
node_v2 = create(:old_node, :node_id => node_v1.node_id, :version => 2)
node_v3 = create(:old_node, :node_id => node_v1.node_id, :version => 3)
node_v4 = create(:old_node, :node_id => node_v1.node_id, :version => 4)
taglist_v3 = create_list(:old_node_tag, 3, :old_node => node_v3)
taglist_v4 = create_list(:old_node_tag, 2, :old_node => node_v4)
node = nodes(:node_with_versions_v1)
node = node_v1
tags = OldNode.find(node.id).tags
assert_equal 0, tags.size
node = nodes(:node_with_versions_v2)
node = node_v2
tags = OldNode.find(node.id).tags
assert_equal 0, tags.size
node = nodes(:node_with_versions_v3)
node = node_v3
tags = OldNode.find(node.id).tags
assert_equal taglist_v3.count, tags.count
taglist_v3.each do |tag|
assert_equal tag.v, tags[tag.k]
end
node = nodes(:node_with_versions_v4)
node = node_v4
tags = OldNode.find(node.id).tags
assert_equal taglist_v4.count, tags.count
taglist_v4.each do |tag|