summaryrefslogtreecommitdiffstats
path: root/spec/unit/network/http/mongrel
diff options
context:
space:
mode:
authorRick Bradley <rick@rickbradley.com>2007-10-16 15:38:41 -0500
committerRick Bradley <rick@rickbradley.com>2007-10-16 15:38:41 -0500
commit216dd8c47ea42338c2dee0bf6528cdd7e37e0028 (patch)
treef0e2ad2f1b52210b10427e6593820b0f6c09061c /spec/unit/network/http/mongrel
parentabbc824ff4a565f0a0f1362b779252e876b86168 (diff)
downloadpuppet-216dd8c47ea42338c2dee0bf6528cdd7e37e0028.tar.gz
puppet-216dd8c47ea42338c2dee0bf6528cdd7e37e0028.tar.xz
puppet-216dd8c47ea42338c2dee0bf6528cdd7e37e0028.zip
Refactoring, argument processing for model methods.
Diffstat (limited to 'spec/unit/network/http/mongrel')
-rw-r--r--spec/unit/network/http/mongrel/rest.rb34
1 files changed, 26 insertions, 8 deletions
diff --git a/spec/unit/network/http/mongrel/rest.rb b/spec/unit/network/http/mongrel/rest.rb
index 5bb40d777..15ee06c7e 100644
--- a/spec/unit/network/http/mongrel/rest.rb
+++ b/spec/unit/network/http/mongrel/rest.rb
@@ -60,8 +60,8 @@ describe Puppet::Network::HTTP::MongrelREST, "when receiving a request" do
end
it "should call the model find method if the request represents a singular HTTP GET" do
- @mock_request.stubs(:params).returns({ Mongrel::Const::REQUEST_METHOD => 'GET', Mongrel::Const::REQUEST_PATH => '/foo'})
- @mock_model_class.expects(:find)
+ @mock_request.stubs(:params).returns({ Mongrel::Const::REQUEST_METHOD => 'GET', Mongrel::Const::REQUEST_PATH => '/foo/key'})
+ @mock_model_class.expects(:find).with('key')
@handler.process(@mock_request, @mock_response)
end
@@ -72,15 +72,16 @@ describe Puppet::Network::HTTP::MongrelREST, "when receiving a request" do
end
it "should call the model destroy method if the request represents an HTTP DELETE" do
- @mock_request.stubs(:params).returns({ Mongrel::Const::REQUEST_METHOD => 'DELETE', Mongrel::Const::REQUEST_PATH => '/foo'})
- @mock_model_class.expects(:destroy)
+ @mock_request.stubs(:params).returns({ Mongrel::Const::REQUEST_METHOD => 'DELETE', Mongrel::Const::REQUEST_PATH => '/foo/key'})
+ @mock_model_class.expects(:destroy).with('key')
@handler.process(@mock_request, @mock_response)
end
it "should call the model save method if the request represents an HTTP PUT" do
@mock_request.stubs(:params).returns({ Mongrel::Const::REQUEST_METHOD => 'PUT', Mongrel::Const::REQUEST_PATH => '/foo'})
+ @mock_request.stubs(:body).returns('this is a fake request body')
mock_model_instance = mock('indirected model instance')
- mock_model_instance.expects(:save)
+ mock_model_instance.expects(:save).with(:data => 'this is a fake request body')
@mock_model_class.expects(:new).returns(mock_model_instance)
@handler.process(@mock_request, @mock_response)
end
@@ -91,17 +92,34 @@ describe Puppet::Network::HTTP::MongrelREST, "when receiving a request" do
end
it "should fail if the request's pluralization is wrong" do
- @mock_request.stubs(:params).returns({ Mongrel::Const::REQUEST_METHOD => 'DELETE', Mongrel::Const::REQUEST_PATH => '/foos'})
+ @mock_request.stubs(:params).returns({ Mongrel::Const::REQUEST_METHOD => 'DELETE', Mongrel::Const::REQUEST_PATH => '/foos/key'})
Proc.new { @handler.process(@mock_request, @mock_response) }.should raise_error(ArgumentError)
- @mock_request.stubs(:params).returns({ Mongrel::Const::REQUEST_METHOD => 'PUT', Mongrel::Const::REQUEST_PATH => '/foos'})
+ @mock_request.stubs(:params).returns({ Mongrel::Const::REQUEST_METHOD => 'PUT', Mongrel::Const::REQUEST_PATH => '/foos/key'})
Proc.new { @handler.process(@mock_request, @mock_response) }.should raise_error(ArgumentError)
end
it "should fail if the request is for an unknown path" do
- @mock_request.stubs(:params).returns({ Mongrel::Const::REQUEST_METHOD => 'GET', Mongrel::Const::REQUEST_PATH => '/bar'})
+ @mock_request.stubs(:params).returns({ Mongrel::Const::REQUEST_METHOD => 'GET', Mongrel::Const::REQUEST_PATH => '/bar/key'})
Proc.new { @handler.process(@mock_request, @mock_response) }.should raise_error(ArgumentError)
end
+
+ it "should fail to find model if key is not specified" do
+ @mock_request.stubs(:params).returns({ Mongrel::Const::REQUEST_METHOD => 'GET', Mongrel::Const::REQUEST_PATH => '/foo'})
+ Proc.new { @handler.process(@mock_request, @mock_response) }.should raise_error(ArgumentError)
+ end
+
+ it "should fail to destroy model if key is not specified" do
+ @mock_request.stubs(:params).returns({ Mongrel::Const::REQUEST_METHOD => 'DELETE', Mongrel::Const::REQUEST_PATH => '/foo'})
+ Proc.new { @handler.process(@mock_request, @mock_response) }.should raise_error(ArgumentError)
+ end
+
+ it "should fail to save model if data is not specified" do
+ @mock_request.stubs(:params).returns({ Mongrel::Const::REQUEST_METHOD => 'PUT', Mongrel::Const::REQUEST_PATH => '/foo'})
+ @mock_request.stubs(:body).returns('')
+ Proc.new { @handler.process(@mock_request, @mock_response) }.should raise_error(ArgumentError)
+ end
+
it "should unpack request information from Mongrel"
it "should unpack parameters from the request for passing to controller methods"