From 60756ad4ece2298e85353ed50853f1d260e0d27a Mon Sep 17 00:00:00 2001 From: Pratik Naik Date: Fri, 20 Mar 2009 15:07:49 +0000 Subject: Move relevant validation tests from Active Record to Active Model --- .../cases/validations/exclusion_validation_test.rb | 30 ++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 activemodel/test/cases/validations/exclusion_validation_test.rb (limited to 'activemodel/test/cases/validations/exclusion_validation_test.rb') diff --git a/activemodel/test/cases/validations/exclusion_validation_test.rb b/activemodel/test/cases/validations/exclusion_validation_test.rb new file mode 100644 index 0000000000..2e3da3c079 --- /dev/null +++ b/activemodel/test/cases/validations/exclusion_validation_test.rb @@ -0,0 +1,30 @@ +# encoding: utf-8 +require 'cases/helper' +require 'cases/test_database' + +require 'models/topic' + +class ExclusionValidationTest < ActiveModel::TestCase + include ActiveModel::TestDatabase + include ActiveModel::ValidationsRepairHelper + + repair_validations(Topic) + + def test_validates_exclusion_of + Topic.validates_exclusion_of( :title, :in => %w( abe monkey ) ) + + assert Topic.create("title" => "something", "content" => "abc").valid? + assert !Topic.create("title" => "monkey", "content" => "abc").valid? + end + + def test_validates_exclusion_of_with_formatted_message + Topic.validates_exclusion_of( :title, :in => %w( abe monkey ), :message => "option {{value}} is restricted" ) + + assert Topic.create("title" => "something", "content" => "abc") + + t = Topic.create("title" => "monkey") + assert !t.valid? + assert t.errors.on(:title) + assert_equal "option monkey is restricted", t.errors.on(:title) + end +end -- cgit v1.2.3 From 4367f39dea7eedb1bf6e7f52b4522c695befe1da Mon Sep 17 00:00:00 2001 From: Pratik Naik Date: Fri, 20 Mar 2009 16:02:12 +0000 Subject: TestDatabase -> TestsDatabase --- activemodel/test/cases/validations/exclusion_validation_test.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'activemodel/test/cases/validations/exclusion_validation_test.rb') diff --git a/activemodel/test/cases/validations/exclusion_validation_test.rb b/activemodel/test/cases/validations/exclusion_validation_test.rb index 2e3da3c079..b9b53ffb23 100644 --- a/activemodel/test/cases/validations/exclusion_validation_test.rb +++ b/activemodel/test/cases/validations/exclusion_validation_test.rb @@ -1,11 +1,11 @@ # encoding: utf-8 require 'cases/helper' -require 'cases/test_database' +require 'cases/tests_database' require 'models/topic' class ExclusionValidationTest < ActiveModel::TestCase - include ActiveModel::TestDatabase + include ActiveModel::TestsDatabase include ActiveModel::ValidationsRepairHelper repair_validations(Topic) -- cgit v1.2.3 From 37283a6aaec244cb484e24b3e9ff165e89eadd64 Mon Sep 17 00:00:00 2001 From: Pratik Naik Date: Fri, 20 Mar 2009 17:36:22 +0000 Subject: Deprecate Error#on(attribute) in favour of Errors#[attribute] --- activemodel/test/cases/validations/exclusion_validation_test.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'activemodel/test/cases/validations/exclusion_validation_test.rb') diff --git a/activemodel/test/cases/validations/exclusion_validation_test.rb b/activemodel/test/cases/validations/exclusion_validation_test.rb index b9b53ffb23..ad3123c1e4 100644 --- a/activemodel/test/cases/validations/exclusion_validation_test.rb +++ b/activemodel/test/cases/validations/exclusion_validation_test.rb @@ -24,7 +24,7 @@ class ExclusionValidationTest < ActiveModel::TestCase t = Topic.create("title" => "monkey") assert !t.valid? - assert t.errors.on(:title) - assert_equal "option monkey is restricted", t.errors.on(:title) + assert t.errors[:title].any? + assert_equal ["option monkey is restricted"], t.errors[:title] end end -- cgit v1.2.3 From 6173e5bfaec44729ecabc2e6e05aa2608a85981f Mon Sep 17 00:00:00 2001 From: Pratik Naik Date: Fri, 20 Mar 2009 22:21:27 +0000 Subject: Add ActiveModel::Validations tests for regular ruby classes --- .../test/cases/validations/exclusion_validation_test.rb | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'activemodel/test/cases/validations/exclusion_validation_test.rb') diff --git a/activemodel/test/cases/validations/exclusion_validation_test.rb b/activemodel/test/cases/validations/exclusion_validation_test.rb index ad3123c1e4..584f009e84 100644 --- a/activemodel/test/cases/validations/exclusion_validation_test.rb +++ b/activemodel/test/cases/validations/exclusion_validation_test.rb @@ -3,6 +3,7 @@ require 'cases/helper' require 'cases/tests_database' require 'models/topic' +require 'models/person' class ExclusionValidationTest < ActiveModel::TestCase include ActiveModel::TestsDatabase @@ -27,4 +28,19 @@ class ExclusionValidationTest < ActiveModel::TestCase assert t.errors[:title].any? assert_equal ["option monkey is restricted"], t.errors[:title] end + + def test_validates_exclusion_of_for_ruby_class + repair_validations(Person) do + Person.validates_exclusion_of :karma, :in => %w( abe monkey ) + + p = Person.new + p.karma = "abe" + assert p.invalid? + + assert_equal ["is reserved"], p.errors[:karma] + + p.karma = "Lifo" + assert p.valid? + end + end end -- cgit v1.2.3