summaryrefslogtreecommitdiffstats
path: root/spec
diff options
context:
space:
mode:
authorLuke Kanies <luke@madstop.com>2008-08-23 21:59:14 -0500
committerLuke Kanies <luke@madstop.com>2008-08-26 22:40:40 -0700
commit6335b143a312481aaa200f71cd25dffd4f88c8ae (patch)
tree7faa499dcbf7f1a61deb4c171aa4b36e15c63ff3 /spec
parent1104edb13926a53ee90685d96700cb03eaeca509 (diff)
Causing the Indirection to fail if a terminus selection hook does not return a value.
Signed-off-by: Luke Kanies <luke@madstop.com>
Diffstat (limited to 'spec')
-rwxr-xr-xspec/unit/indirector/indirection.rb16
1 files changed, 16 insertions, 0 deletions
diff --git a/spec/unit/indirector/indirection.rb b/spec/unit/indirector/indirection.rb
index e52be31e1..166065ecf 100755
--- a/spec/unit/indirector/indirection.rb
+++ b/spec/unit/indirector/indirection.rb
@@ -34,6 +34,22 @@ describe "Indirection Delegator", :shared => true do
@indirection.send(@method, "me")
end
+ it "should fail if the :select_terminus hook does not return a terminus name" do
+ # Define the method, so our respond_to? hook matches.
+ class << @indirection
+ def select_terminus(request)
+ end
+ end
+
+ request = stub 'request', :key => "me", :options => {}
+
+ @indirection.stubs(:request).returns request
+
+ @indirection.expects(:select_terminus).with(request).returns nil
+
+ lambda { @indirection.send(@method, "me") }.should raise_error(ArgumentError)
+ end
+
it "should choose the terminus returned by the :terminus_class method if no :select_terminus method is available" do
@indirection.expects(:terminus_class).returns :test_terminus