diff options
author | Neeraj Singh <neerajdotname@gmail.com> | 2010-08-03 04:32:48 -0400 |
---|---|---|
committer | José Valim <jose.valim@gmail.com> | 2010-08-03 10:46:16 +0200 |
commit | fb2b8fec245a96da015c5c6223ad264fa47d90bd (patch) | |
tree | 02bee3c13e573fce671ebc68269954233243d2e0 /activemodel/test | |
parent | db1c484c55758e25c56615d6efdab8a22cff4a46 (diff) | |
download | rails-fb2b8fec245a96da015c5c6223ad264fa47d90bd.tar.gz rails-fb2b8fec245a96da015c5c6223ad264fa47d90bd.tar.bz2 rails-fb2b8fec245a96da015c5c6223ad264fa47d90bd.zip |
adding test cases for ActiveModel::Errors
Signed-off-by: José Valim <jose.valim@gmail.com>
Diffstat (limited to 'activemodel/test')
-rw-r--r-- | activemodel/test/cases/errors_test.rb | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/activemodel/test/cases/errors_test.rb b/activemodel/test/cases/errors_test.rb new file mode 100644 index 0000000000..79b45bb298 --- /dev/null +++ b/activemodel/test/cases/errors_test.rb @@ -0,0 +1,65 @@ +require "cases/helper" + +class ErrorsTest < ActiveModel::TestCase + class Person + extend ActiveModel::Naming + def initialize + @errors = ActiveModel::Errors.new(self) + end + + attr_accessor :name + attr_reader :errors + + def validate! + errors.add(:name, "can not be nil") if name == nil + end + + def read_attribute_for_validation(attr) + send(attr) + end + + def self.human_attribute_name(attr, options = {}) + attr + end + + def self.lookup_ancestors + [self] + end + + end + + test "method validate! should work" do + person = Person.new + person.validate! + assert_equal ["name can not be nil"], person.errors.full_messages + assert_equal ["can not be nil"], person.errors[:name] + + end + + test 'should be able to assign error' do + person = Person.new + person.errors[:name] = 'should not be nil' + assert_equal ["should not be nil"], person.errors[:name] + end + + test 'should be able to add an error on an attribute' do + person = Person.new + person.errors.add(:name, "can not be blank") + assert_equal ["can not be blank"], person.errors[:name] + end + + test 'should respond to size' do + person = Person.new + person.errors.add(:name, "can not be blank") + assert_equal 1, person.errors.size + end + + test 'to_a should return an array' do + person = Person.new + person.errors.add(:name, "can not be blank") + person.errors.add(:name, "can not be nil") + assert_equal ["name can not be blank", "name can not be nil"], person.errors.to_a + + end + +end |