source: subversion/sites/rails_port/test/unit/changeset_tag_test.rb @ 15534

Last change on this file since 15534 was 14823, checked in by Shaun McDonald, 10 years ago

More changeset test improvements. Another fixture was required for one of the tests

File size: 1.5 KB
Line 
1require File.dirname(__FILE__) + '/../test_helper'
2
3class ChangesetTagTest < Test::Unit::TestCase
4  api_fixtures
5
6  def test_changeset_tag_count
7    assert_equal 2, ChangesetTag.count
8  end
9 
10  def test_length_key_valid
11    key = "k"
12    (0..255).each do |i|
13      tag = ChangesetTag.new
14      tag.id = 1
15      tag.k = key*i
16      tag.v = "v"
17      assert_valid tag
18    end
19  end
20 
21  def test_length_value_valid
22    val = "v"
23    (0..255).each do |i|
24      tag = ChangesetTag.new
25      tag.id = 1
26      tag.k = "k"
27      tag.v = val*i
28      assert_valid tag
29    end
30  end
31 
32  def test_length_key_invalid
33    ["k"*256].each do |k|
34      tag = ChangesetTag.new
35      tag.id = 1
36      tag.k = k
37      tag.v = "v"
38      assert !tag.valid?, "Key #{k} should be too long"
39      assert tag.errors.invalid?(:k)
40    end
41  end
42 
43  def test_length_value_invalid
44    ["v"*256].each do |v|
45      tag = ChangesetTag.new
46      tag.id = 1
47      tag.k = "k"
48      tag.v = v
49      assert !tag.valid?, "Value #{v} should be too long"
50      assert tag.errors.invalid?(:v)
51    end
52  end
53 
54  def test_empty_tag_invalid
55    tag = ChangesetTag.new
56    assert !tag.valid?, "Empty tag should be invalid"
57    assert tag.errors.invalid?(:id)
58  end
59 
60  def test_uniqueness
61    tag = ChangesetTag.new
62    tag.id = changeset_tags(:changeset_1_tag_1).id
63    tag.k = changeset_tags(:changeset_1_tag_1).k
64    tag.v = changeset_tags(:changeset_1_tag_1).v
65    assert tag.new_record?
66    assert !tag.valid?
67    assert_raise(ActiveRecord::RecordInvalid) {tag.save!}
68    assert tag.new_record?
69  end
70end
Note: See TracBrowser for help on using the repository browser.