1 require File.dirname(__FILE__) + '/../test_helper'
3 class RelationTagTest < ActiveSupport::TestCase
6 def test_relation_tag_count
7 assert_equal 9, RelationTag.count
10 def test_length_key_valid
21 def test_length_value_valid
32 def test_length_key_invalid
38 assert !tag.valid?, "Key #{i} should be too long"
39 assert tag.errors[:k].any?
43 def test_length_value_invalid
49 assert !tag.valid?, "Value #{i} should be too long"
50 assert tag.errors[:v].any?
54 def test_empty_tag_invalid
56 assert !tag.valid?, "Empty relation tag should be invalid"
57 assert tag.errors[:relation].any?
62 tag.relation_id = current_relation_tags(:t1).relation_id
63 tag.k = current_relation_tags(:t1).k
64 tag.v = current_relation_tags(:t1).v
65 assert tag.new_record?
67 assert_raise(ActiveRecord::RecordInvalid) {tag.save!}
68 assert tag.new_record?
72 # test that tags can be updated and saved uniquely, i.e: tag.save!
73 # only affects the single tag that the activerecord object
74 # represents. this amounts to testing that the primary key is
77 # Commenting this out - I attempted to fix it, but composite primary keys
78 # wasn't playing nice with the column already called :id. Seemed to be
79 # impossible to have validations on the :id column. If someone knows better
80 # please fix, otherwise this test is shelved.
83 # v = "probably unique string here 3142592654"
84 # assert_equal 0, RelationTag.count(:conditions => ['v=?', v])
86 # # make sure we select a tag on a relation which has more than one tag
87 # id = current_relations(:multi_tag_relation).relation_id
88 # tag = RelationTag.find(:first, :conditions => ["id = ?", id])
92 # assert_equal 1, RelationTag.count(:conditions => ['v=?', v])