Adding validations for the length of node tags, and the presence of the id (and version). More tests, including some boiler plate tests.

This commit is contained in:
Shaun McDonald 2008-11-17 18:53:09 +00:00
parent 495bd7f1f0
commit 9a4ea6bfd0
10 changed files with 179 additions and 33 deletions

View file

@ -2,4 +2,7 @@ class NodeTag < ActiveRecord::Base
set_table_name 'current_node_tags'
belongs_to :node, :foreign_key => 'id'
validates_presence_of :id
validates_length_of :k, :v, :within => 0..255, :allow_blank => true
end

View file

@ -3,5 +3,7 @@ class OldNodeTag < ActiveRecord::Base
set_table_name 'node_tags'
validates_presence_of :id, :version
validates_length_of :k, :v, :within => 0..255, :allow_blank => true
end

4
test/fixtures/friends.yml vendored Normal file
View file

@ -0,0 +1,4 @@
normal_user_with_second_user:
id: 1
user_id: 1
friend_user_id: 2

View file

@ -1,22 +0,0 @@
require File.dirname(__FILE__) + '/../test_helper'
class CurrentNodeTagTest < Test::Unit::TestCase
fixtures :current_node_tags, :current_nodes
set_fixture_class :current_nodes => Node
set_fixture_class :current_node_tags => NodeTag
def test_tag_count
assert_equal 6, 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
end

View file

@ -0,0 +1,11 @@
require File.dirname(__FILE__) + '/../test_helper'
class DiaryCommentTest < Test::Unit::TestCase
fixtures :diary_comments
def test_diary_comment_count
assert_equal 1, DiaryComment.count
end
end

View file

@ -0,0 +1,11 @@
require File.dirname(__FILE__) + '/../test_helper'
class DiaryEntryTest < Test::Unit::TestCase
fixtures :diary_entries
def test_diary_entry_count
assert_equal 2, DiaryEntry.count
end
end

11
test/unit/friend_test.rb Normal file
View file

@ -0,0 +1,11 @@
require File.dirname(__FILE__) + '/../test_helper'
class FriendTest < Test::Unit::TestCase
fixtures :friends
def test_friend_count
assert_equal 1, Friend.count
end
end

View file

@ -1,11 +1,71 @@
require File.dirname(__FILE__) + '/../test_helper'
class NodeTagTest < Test::Unit::TestCase
fixtures :current_node_tags
fixtures :current_node_tags, :current_nodes
set_fixture_class :current_nodes => Node
set_fixture_class :current_node_tags => NodeTag
def test_node_tag_count
def test_tag_count
assert_equal 6, 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.id = current_node_tags(:t1).id
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 = NodeTag.new
tag.id = current_node_tags(:t1).id
tag.k = "k"
tag.v = val*i
assert_valid tag
end
end
def test_length_key_invalid
["k"*256].each do |i|
tag = NodeTag.new
tag.id = current_node_tags(:t1).id
tag.k = i
tag.v = "v", "Key should be too long"
assert !tag.valid?
assert tag.errors.invalid?(:k)
end
end
def test_length_value_invalid
["k"*256].each do |i|
tag = NodeTag.new
tag.id = current_node_tags(:t1).id
tag.k = "k"
tag.v = i
assert !tag.valid?, "Value should be too long"
assert tag.errors.invalid?(:v)
end
end
def test_empty_node_tag_invalid
tag = NodeTag.new
assert !tag.valid?, "Empty tag should be invalid"
assert tag.errors.invalid?(:id)
end
end

View file

@ -0,0 +1,66 @@
require File.dirname(__FILE__) + '/../test_helper'
class OldNodeTest < Test::Unit::TestCase
set_fixture_class :nodes => OldNode
set_fixture_class :node_tags => OldNodeTag
fixtures :users, :nodes, :node_tags
def test_old_node_tag_count
assert_equal 8, OldNodeTag.count, "Unexpected number of fixtures loaded."
end
def test_length_key_valid
key = "k"
(0..255).each do |i|
tag = OldNodeTag.new
tag.id = node_tags(:t1).id
tag.version = node_tags(:t1).version
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 = OldNodeTag.new
tag.id = node_tags(:t1).id
tag.version = node_tags(:t1).version
tag.k = "k"
tag.v = val*i
assert_valid tag
end
end
def test_length_key_invalid
["k"*256].each do |i|
tag = OldNodeTag.new
tag.id = node_tags(:t1).id
tag.version = node_tags(:t1).version
tag.k = i
tag.v = "v", "Key should be too long"
assert !tag.valid?
assert tag.errors.invalid?(:k)
end
end
def test_length_value_invalid
["k"*256].each do |i|
tag = OldNodeTag.new
tag.id = node_tags(:t1).id
tag.version = node_tags(:t1).version
tag.k = "k"
tag.v = i
assert !tag.valid?, "Value should be too long"
assert tag.errors.invalid?(:v)
end
end
def test_empty_old_node_tag_invalid
tag = OldNodeTag.new
assert !tag.valid?, "Empty tag should be invalid"
assert tag.errors.invalid?(:id)
assert tag.errors.invalid?(:version)
end
end

View file

@ -96,7 +96,7 @@ class UserTest < Test::Unit::TestCase
end
def test_friend_with
assert_equal false, users(:normal_user).is_friends_with?(users(:second_user))
assert_equal true, users(:normal_user).is_friends_with?(users(:second_user))
assert_equal false, users(:normal_user).is_friends_with?(users(:inactive_user))
assert_equal false, users(:second_user).is_friends_with?(users(:normal_user))
assert_equal false, users(:second_user).is_friends_with?(users(:inactive_user))
@ -114,15 +114,15 @@ class UserTest < Test::Unit::TestCase
end
def test_friends_with
# make normal user a friend of second user
# normal user is a friend of second user
# it should be a one way friend accossitation
assert_equal 0, Friend.count
assert_equal 1, Friend.count
norm = users(:normal_user)
sec = users(:second_user)
friend = Friend.new
friend.befriender = norm
friend.befriendee = sec
friend.save
#friend = Friend.new
#friend.befriender = norm
#friend.befriendee = sec
#friend.save
assert_equal [sec], norm.nearby
assert_equal 1, norm.nearby.size
assert_equal 1, Friend.count
@ -133,7 +133,7 @@ class UserTest < Test::Unit::TestCase
assert_equal false, users(:second_user).is_friends_with?(users(:inactive_user))
assert_equal false, users(:inactive_user).is_friends_with?(users(:normal_user))
assert_equal false, users(:inactive_user).is_friends_with?(users(:second_user))
Friend.delete(friend)
assert_equal 0, Friend.count
#Friend.delete(friend)
#assert_equal 0, Friend.count
end
end