Changeset tag unit tests
This commit is contained in:
parent
ffbc4d5cb2
commit
d6b4b8c8a1
3 changed files with 68 additions and 5 deletions
|
@ -1,5 +1,8 @@
|
||||||
class ChangesetTag < ActiveRecord::Base
|
class ChangesetTag < ActiveRecord::Base
|
||||||
|
|
||||||
belongs_to :changeset, :foreign_key => 'id'
|
belongs_to :changeset, :foreign_key => 'id'
|
||||||
|
|
||||||
|
validates_presence_of :id
|
||||||
|
validates_length_of :k, :v, :maximum => 255, :allow_blank => true
|
||||||
|
validates_uniqueness_of :id, :scope => :k
|
||||||
|
validates_numericality_of :id, :only_integer => true
|
||||||
end
|
end
|
||||||
|
|
|
@ -2,10 +2,69 @@ require File.dirname(__FILE__) + '/../test_helper'
|
||||||
|
|
||||||
class ChangesetTagTest < Test::Unit::TestCase
|
class ChangesetTagTest < Test::Unit::TestCase
|
||||||
fixtures :changeset_tags
|
fixtures :changeset_tags
|
||||||
|
|
||||||
|
def test_changeset_tag_count
|
||||||
def test_changeset_tags_count
|
|
||||||
assert_equal 1, ChangesetTag.count
|
assert_equal 1, ChangesetTag.count
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_length_key_valid
|
||||||
|
key = "k"
|
||||||
|
(0..255).each do |i|
|
||||||
|
tag = ChangesetTag.new
|
||||||
|
tag.id = 1
|
||||||
|
tag.k = key*i
|
||||||
|
tag.v = "v"
|
||||||
|
assert_valid tag
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_length_value_valid
|
||||||
|
val = "v"
|
||||||
|
(0..255).each do |i|
|
||||||
|
tag = ChangesetTag.new
|
||||||
|
tag.id = 1
|
||||||
|
tag.k = "k"
|
||||||
|
tag.v = val*i
|
||||||
|
assert_valid tag
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_length_key_invalid
|
||||||
|
["k"*256].each do |k|
|
||||||
|
tag = ChangesetTag.new
|
||||||
|
tag.id = 1
|
||||||
|
tag.k = k
|
||||||
|
tag.v = "v"
|
||||||
|
assert !tag.valid?, "Key #{k} should be too long"
|
||||||
|
assert tag.errors.invalid?(:k)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_length_value_invalid
|
||||||
|
["v"*256].each do |v|
|
||||||
|
tag = ChangesetTag.new
|
||||||
|
tag.id = 1
|
||||||
|
tag.k = "k"
|
||||||
|
tag.v = v
|
||||||
|
assert !tag.valid?, "Value #{v} should be too long"
|
||||||
|
assert tag.errors.invalid?(:v)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_empty_tag_invalid
|
||||||
|
tag = ChangesetTag.new
|
||||||
|
assert !tag.valid?, "Empty tag should be invalid"
|
||||||
|
assert tag.errors.invalid?(:id)
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_uniqueness
|
||||||
|
tag = ChangesetTag.new
|
||||||
|
tag.id = changeset_tags(:changeset_1_tag_1).id
|
||||||
|
tag.k = changeset_tags(:changeset_1_tag_1).k
|
||||||
|
tag.v = changeset_tags(:changeset_1_tag_1).v
|
||||||
|
assert tag.new_record?
|
||||||
|
assert !tag.valid?
|
||||||
|
assert_raise(ActiveRecord::RecordInvalid) {tag.save!}
|
||||||
|
assert tag.new_record?
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -48,6 +48,7 @@ class WayTagTest < Test::Unit::TestCase
|
||||||
tag.k = "k"
|
tag.k = "k"
|
||||||
tag.v = i
|
tag.v = i
|
||||||
assert !tag.valid?, "Value #{i} should be too long"
|
assert !tag.valid?, "Value #{i} should be too long"
|
||||||
|
assert tag.errors.invalid?(:v)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -57,7 +58,7 @@ class WayTagTest < Test::Unit::TestCase
|
||||||
assert tag.errors.invalid?(:id)
|
assert tag.errors.invalid?(:id)
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_uniquness
|
def test_uniqueness
|
||||||
tag = WayTag.new
|
tag = WayTag.new
|
||||||
tag.id = current_way_tags(:t1).id
|
tag.id = current_way_tags(:t1).id
|
||||||
tag.k = current_way_tags(:t1).k
|
tag.k = current_way_tags(:t1).k
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue