X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/6bca4b66d14f01f716af0f11ddb96c275a3ad0dd..fc25c3d412829774abf0454e4dcc92e41f47454c:/test/unit/node_tag_test.rb diff --git a/test/unit/node_tag_test.rb b/test/unit/node_tag_test.rb index 5e4d47953..2f2631792 100644 --- a/test/unit/node_tag_test.rb +++ b/test/unit/node_tag_test.rb @@ -1,11 +1,80 @@ require File.dirname(__FILE__) + '/../test_helper' -class NodeTagTest < Test::Unit::TestCase - fixtures :current_node_tags - set_fixture_class :current_node_tags => NodeTag +class NodeTagTest < ActiveSupport::TestCase + api_fixtures - def test_node_tag_count - assert_equal 6, NodeTag.count + def test_tag_count + assert_equal 7, NodeTag.count + node_tag_count(:visible_node, 1) + node_tag_count(:invisible_node, 1) + node_tag_count(:used_node_1, 1) + node_tag_count(:used_node_2, 1) + node_tag_count(:node_with_versions, 2) end + def node_tag_count (node, count) + nod = current_nodes(node) + assert_equal count, nod.node_tags.count + end + + def test_length_key_valid + key = "k" + (0..255).each do |i| + tag = NodeTag.new + tag.node_id = current_node_tags(:t1).node_id + tag.k = key*i + tag.v = "v" + assert tag.valid? + end + end + + def test_length_value_valid + val = "v" + (0..255).each do |i| + tag = NodeTag.new + tag.node_id = current_node_tags(:t1).node_id + tag.k = "k" + tag.v = val*i + assert tag.valid? + end + end + + def test_length_key_invalid + ["k"*256].each do |i| + tag = NodeTag.new + tag.node_id = current_node_tags(:t1).node_id + tag.k = i + tag.v = "v" + assert !tag.valid?, "Key should be too long" + assert tag.errors[:k].any? + end + end + + def test_length_value_invalid + ["k"*256].each do |i| + tag = NodeTag.new + tag.node_id = current_node_tags(:t1).node_id + tag.k = "k" + tag.v = i + assert !tag.valid?, "Value should be too long" + assert tag.errors[:v].any? + end + end + + def test_empty_node_tag_invalid + tag = NodeTag.new + assert !tag.valid?, "Empty tag should be invalid" + assert tag.errors[:node].any? + end + + def test_uniqueness + tag = NodeTag.new + tag.node_id = current_node_tags(:t1).node_id + tag.k = current_node_tags(:t1).k + tag.v = current_node_tags(:t1).v + assert tag.new_record? + assert !tag.valid? + assert_raise(ActiveRecord::RecordInvalid) {tag.save!} + assert tag.new_record? + end end