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