From 0b8b582e0668416c6e6760e97a64b9fa3507782c Mon Sep 17 00:00:00 2001 From: Duncan Beevers Date: Sun, 11 May 2008 20:33:25 +0100 Subject: [PATCH] Add test for named_scope#proxy_options. [#97 state:resolved] --- activerecord/lib/active_record/named_scope.rb | 12 ++++++++++++ activerecord/test/cases/named_scope_test.rb | 6 ++++++ 2 files changed, 18 insertions(+) diff --git a/activerecord/lib/active_record/named_scope.rb b/activerecord/lib/active_record/named_scope.rb index 81b99f8e968a3..d43ebefc3ba34 100644 --- a/activerecord/lib/active_record/named_scope.rb +++ b/activerecord/lib/active_record/named_scope.rb @@ -71,6 +71,18 @@ def scopes # end # end # + # + # For testing complex named scopes, you can examine the scoping options using the + # proxy_options method on the proxy itself. + # + # class Shirt < ActiveRecord::Base + # named_scope :colored, lambda { |color| + # { :conditions => { :color => color } } + # } + # end + # + # expected_options = { :conditions => { :colored => 'red' } } + # assert_equal expected_options, Shirt.colored('red').proxy_options def named_scope(name, options = {}, &block) scopes[name] = lambda do |parent_scope, *args| Scope.new(parent_scope, case options diff --git a/activerecord/test/cases/named_scope_test.rb b/activerecord/test/cases/named_scope_test.rb index e99448c23ede3..30c074c9d8c4c 100644 --- a/activerecord/test/cases/named_scope_test.rb +++ b/activerecord/test/cases/named_scope_test.rb @@ -112,4 +112,10 @@ def test_active_records_have_scope_named__scoped__ assert_equal Topic.find(:all, scope), Topic.scoped(scope) end + + def test_proxy_options + expected_proxy_options = { :conditions => { :approved => true } } + assert_equal expected_proxy_options, Topic.approved.proxy_options + end + end