i18n_generate_message_validation_test.rb 6.6 KB
Newer Older
1
require "cases/helper"
2 3

require 'models/person'
4

5
class I18nGenerateMessageValidationTest < ActiveModel::TestCase
6
  def setup
7
    Person.clear_validators!
8 9 10
    @person = Person.new
  end

A
AvnerCohen 已提交
11
  # validates_inclusion_of: generate_message(attr_name, :inclusion, message: custom_message, value: value)
12
  def test_generate_message_inclusion_with_default_message
13
    assert_equal 'is not included in the list', @person.errors.generate_message(:title, :inclusion, value: 'title')
14 15 16
  end

  def test_generate_message_inclusion_with_custom_message
17
    assert_equal 'custom message title', @person.errors.generate_message(:title, :inclusion, message: 'custom message %{value}', value: 'title')
18 19
  end

A
AvnerCohen 已提交
20
  # validates_exclusion_of: generate_message(attr_name, :exclusion, message: custom_message, value: value)
21
  def test_generate_message_exclusion_with_default_message
22
    assert_equal 'is reserved', @person.errors.generate_message(:title, :exclusion, value: 'title')
23 24 25
  end

  def test_generate_message_exclusion_with_custom_message
26
    assert_equal 'custom message title', @person.errors.generate_message(:title, :exclusion, message: 'custom message %{value}', value: 'title')
27 28
  end

A
AvnerCohen 已提交
29
  # validates_format_of:  generate_message(attr_name, :invalid, message: custom_message, value: value)
30
  def test_generate_message_invalid_with_default_message
31
    assert_equal 'is invalid', @person.errors.generate_message(:title, :invalid, value: 'title')
32 33 34
  end

  def test_generate_message_invalid_with_custom_message
35
    assert_equal 'custom message title', @person.errors.generate_message(:title, :invalid, message: 'custom message %{value}', value: 'title')
36 37
  end

A
AvnerCohen 已提交
38
  # validates_confirmation_of: generate_message(attr_name, :confirmation, message: custom_message)
39
  def test_generate_message_confirmation_with_default_message
40
    assert_equal "doesn't match Title", @person.errors.generate_message(:title, :confirmation)
41 42 43
  end

  def test_generate_message_confirmation_with_custom_message
44
    assert_equal 'custom message', @person.errors.generate_message(:title, :confirmation, message: 'custom message')
45 46
  end

A
AvnerCohen 已提交
47
  # validates_acceptance_of: generate_message(attr_name, :accepted, message: custom_message)
48
  def test_generate_message_accepted_with_default_message
49
    assert_equal "must be accepted", @person.errors.generate_message(:title, :accepted)
50 51 52
  end

  def test_generate_message_accepted_with_custom_message
53
    assert_equal 'custom message', @person.errors.generate_message(:title, :accepted, message: 'custom message')
54 55
  end

A
AvnerCohen 已提交
56
  # add_on_empty: generate_message(attr, :empty, message: custom_message)
57
  def test_generate_message_empty_with_default_message
58
    assert_equal "can't be empty", @person.errors.generate_message(:title, :empty)
59 60 61
  end

  def test_generate_message_empty_with_custom_message
62
    assert_equal 'custom message', @person.errors.generate_message(:title, :empty, message: 'custom message')
63 64
  end

A
AvnerCohen 已提交
65
  # add_on_blank: generate_message(attr, :blank, message: custom_message)
66
  def test_generate_message_blank_with_default_message
67
    assert_equal "can't be blank", @person.errors.generate_message(:title, :blank)
68 69 70
  end

  def test_generate_message_blank_with_custom_message
71
    assert_equal 'custom message', @person.errors.generate_message(:title, :blank, message: 'custom message')
72 73
  end

A
AvnerCohen 已提交
74
  # validates_length_of: generate_message(attr, :too_long, message: custom_message, count: option_value.end)
75
  def test_generate_message_too_long_with_default_message
76
    assert_equal "is too long (maximum is 10 characters)", @person.errors.generate_message(:title, :too_long, count: 10)
77 78 79
  end

  def test_generate_message_too_long_with_custom_message
80
    assert_equal 'custom message 10', @person.errors.generate_message(:title, :too_long, message: 'custom message %{count}', count: 10)
81 82
  end

A
AvnerCohen 已提交
83
  # validates_length_of: generate_message(attr, :too_short, default: custom_message, count: option_value.begin)
84
  def test_generate_message_too_short_with_default_message
85
    assert_equal "is too short (minimum is 10 characters)", @person.errors.generate_message(:title, :too_short, count: 10)
86 87 88
  end

  def test_generate_message_too_short_with_custom_message
89
    assert_equal 'custom message 10', @person.errors.generate_message(:title, :too_short, message: 'custom message %{count}', count: 10)
90 91
  end

A
AvnerCohen 已提交
92
  # validates_length_of: generate_message(attr, :wrong_length, message: custom_message, count: option_value)
93
  def test_generate_message_wrong_length_with_default_message
94
    assert_equal "is the wrong length (should be 10 characters)", @person.errors.generate_message(:title, :wrong_length, count: 10)
95 96 97
  end

  def test_generate_message_wrong_length_with_custom_message
98
    assert_equal 'custom message 10', @person.errors.generate_message(:title, :wrong_length, message: 'custom message %{count}', count: 10)
99 100
  end

A
AvnerCohen 已提交
101
  # validates_numericality_of: generate_message(attr_name, :not_a_number, value: raw_value, message: custom_message)
102
  def test_generate_message_not_a_number_with_default_message
103
    assert_equal "is not a number", @person.errors.generate_message(:title, :not_a_number, value: 'title')
104 105 106
  end

  def test_generate_message_not_a_number_with_custom_message
107
    assert_equal 'custom message title', @person.errors.generate_message(:title, :not_a_number, message: 'custom message %{value}', value: 'title')
108 109
  end

A
AvnerCohen 已提交
110
  # validates_numericality_of: generate_message(attr_name, option, value: raw_value, default: custom_message)
111
  def test_generate_message_greater_than_with_default_message
112
    assert_equal "must be greater than 10", @person.errors.generate_message(:title, :greater_than, value: 'title', count: 10)
113 114 115
  end

  def test_generate_message_greater_than_or_equal_to_with_default_message
116
    assert_equal "must be greater than or equal to 10", @person.errors.generate_message(:title, :greater_than_or_equal_to, value: 'title', count: 10)
117 118 119
  end

  def test_generate_message_equal_to_with_default_message
120
    assert_equal "must be equal to 10", @person.errors.generate_message(:title, :equal_to, value: 'title', count: 10)
121 122 123
  end

  def test_generate_message_less_than_with_default_message
124
    assert_equal "must be less than 10", @person.errors.generate_message(:title, :less_than, value: 'title', count: 10)
125 126 127
  end

  def test_generate_message_less_than_or_equal_to_with_default_message
128
    assert_equal "must be less than or equal to 10", @person.errors.generate_message(:title, :less_than_or_equal_to, value: 'title', count: 10)
129 130 131
  end

  def test_generate_message_odd_with_default_message
132
    assert_equal "must be odd", @person.errors.generate_message(:title, :odd, value: 'title', count: 10)
133 134 135
  end

  def test_generate_message_even_with_default_message
136
    assert_equal "must be even", @person.errors.generate_message(:title, :even, value: 'title', count: 10)
137 138
  end
end