diff options
author | Joshua Peek <josh@joshpeek.com> | 2008-04-17 23:30:01 -0500 |
---|---|---|
committer | Joshua Peek <josh@joshpeek.com> | 2008-04-17 23:30:01 -0500 |
commit | cf04e621270bb2e5e9e7971d2c59e73d6797482d (patch) | |
tree | af14a01cb712d6ade17f39da3a8103d7bf3bfd8c /activesupport/test | |
parent | 82b4faf81218bbd8916ab559590db236c7f80e46 (diff) | |
download | rails-cf04e621270bb2e5e9e7971d2c59e73d6797482d.tar.gz rails-cf04e621270bb2e5e9e7971d2c59e73d6797482d.tar.bz2 rails-cf04e621270bb2e5e9e7971d2c59e73d6797482d.zip |
Tidy up ActiveSupport::Callbacks::CallbackChain instance API.
Diffstat (limited to 'activesupport/test')
-rw-r--r-- | activesupport/test/callbacks_test.rb | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/activesupport/test/callbacks_test.rb b/activesupport/test/callbacks_test.rb index 3f8cb7f01a..7f71ca2262 100644 --- a/activesupport/test/callbacks_test.rb +++ b/activesupport/test/callbacks_test.rb @@ -96,6 +96,8 @@ class ConditionalCallbackTest < Test::Unit::TestCase end class CallbackTest < Test::Unit::TestCase + include ActiveSupport::Callbacks + def test_eql callback = Callback.new(:before, :save, :identifier => :lifesaver) assert callback.eql?(Callback.new(:before, :save, :identifier => :lifesaver)) @@ -115,3 +117,32 @@ class CallbackTest < Test::Unit::TestCase assert_equal({}, a.options) end end + +class CallbackChainTest < Test::Unit::TestCase + include ActiveSupport::Callbacks + + def setup + @chain = CallbackChain.build(:make, :bacon, :lettuce, :tomato) + end + + def test_build + assert_equal 3, @chain.size + assert_equal [:bacon, :lettuce, :tomato], @chain.map(&:method) + end + + def test_find + assert_equal :bacon, @chain.find(:bacon).method + end + + def test_union + assert_equal [:bacon, :lettuce, :tomato], (@chain | Callback.new(:make, :bacon)).map(&:method) + assert_equal [:bacon, :lettuce, :tomato, :turkey], (@chain | CallbackChain.build(:make, :bacon, :lettuce, :tomato, :turkey)).map(&:method) + assert_equal [:bacon, :lettuce, :tomato, :turkey, :mayo], (@chain | Callback.new(:make, :mayo)).map(&:method) + end + + def test_delete + assert_equal [:bacon, :lettuce, :tomato], @chain.map(&:method) + @chain.delete(:bacon) + assert_equal [:lettuce, :tomato], @chain.map(&:method) + end +end |