public
Description: Ruby on Rails
Homepage: http://rubyonrails.org
Clone URL: git://github.com/rails/rails.git
Add test for named_scope#proxy_options. [#97 state:resolved]
duncanbeevers (author)
Sun May 11 12:33:25 -0700 2008
lifo (committer)
Sun May 11 12:33:25 -0700 2008
commit  0b8b582e0668416c6e6760e97a64b9fa3507782c
tree    9d6f5250628a777db52141dd95bd68e7e7799245
parent  3f0dccbbc7c98938349650033ff9a41a814d300d
...
71
72
73
 
 
 
 
 
 
 
 
 
 
 
 
74
75
76
...
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
0
@@ -71,6 +71,18 @@ module ActiveRecord
0
       #     end
0
       #   end
0
       #
0
+      #
0
+      # For testing complex named scopes, you can examine the scoping options using the
0
+      # <tt>proxy_options</tt> method on the proxy itself.
0
+      #
0
+      #   class Shirt < ActiveRecord::Base
0
+      #     named_scope :colored, lambda { |color|
0
+      #       { :conditions => { :color => color } }
0
+      #     }
0
+      #   end
0
+      #
0
+      #   expected_options = { :conditions => { :colored => 'red' } }
0
+      #   assert_equal expected_options, Shirt.colored('red').proxy_options
0
       def named_scope(name, options = {}, &block)
0
         scopes[name] = lambda do |parent_scope, *args|
0
           Scope.new(parent_scope, case options
...
112
113
114
 
 
 
 
 
 
115
...
112
113
114
115
116
117
118
119
120
121
0
@@ -112,4 +112,10 @@ class NamedScopeTest < ActiveRecord::TestCase
0
 
0
     assert_equal Topic.find(:all, scope), Topic.scoped(scope)
0
   end
0
+
0
+  def test_proxy_options
0
+    expected_proxy_options = { :conditions => { :approved => true } }
0
+    assert_equal expected_proxy_options, Topic.approved.proxy_options
0
+  end
0
+
0
 end

Comments