diff options
author | José Valim <jose.valim@plataformatec.com.br> | 2012-07-27 11:02:29 -0700 |
---|---|---|
committer | José Valim <jose.valim@plataformatec.com.br> | 2012-07-27 11:02:29 -0700 |
commit | 1fab518c6a75dac5773654646eb724a59741bc13 (patch) | |
tree | 39f815f60ca380dd799fdfe3ebcd8fb567bd36e7 /activerecord/test/cases | |
parent | 04998cd0c92a13332844d04145a4ede3184c7bd0 (diff) | |
parent | 9feda929409ab687befaed8d1c9878d94e955adc (diff) | |
download | rails-1fab518c6a75dac5773654646eb724a59741bc13.tar.gz rails-1fab518c6a75dac5773654646eb724a59741bc13.tar.bz2 rails-1fab518c6a75dac5773654646eb724a59741bc13.zip |
Merge pull request #6827 from zephyr-dev/master
Validates_presence_of associated object marked for destruction
Diffstat (limited to 'activerecord/test/cases')
-rw-r--r-- | activerecord/test/cases/validations/presence_validation_test.rb | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/activerecord/test/cases/validations/presence_validation_test.rb b/activerecord/test/cases/validations/presence_validation_test.rb new file mode 100644 index 0000000000..cd9175f454 --- /dev/null +++ b/activerecord/test/cases/validations/presence_validation_test.rb @@ -0,0 +1,44 @@ +# encoding: utf-8 +require "cases/helper" +require 'models/man' +require 'models/face' +require 'models/interest' + +class PresenceValidationTest < ActiveRecord::TestCase + class Boy < Man; end + + repair_validations(Boy) + + def test_validates_presence_of_non_association + Boy.validates_presence_of(:name) + b = Boy.new + assert b.invalid? + + b.name = "Alex" + assert b.valid? + end + + def test_validates_presence_of_has_one_marked_for_destruction + Boy.validates_presence_of(:face) + b = Boy.new + f = Face.new + b.face = f + assert b.valid? + + f.mark_for_destruction + assert b.invalid? + end + + def test_validates_presence_of_has_many_marked_for_destruction + Boy.validates_presence_of(:interests) + b = Boy.new + b.interests << [i1 = Interest.new, i2 = Interest.new] + assert b.valid? + + i1.mark_for_destruction + assert b.valid? + + i2.mark_for_destruction + assert b.invalid? + end +end |