diff options
| author | Rick Bradley <rick@rickbradley.com> | 2007-10-16 15:38:41 -0500 |
|---|---|---|
| committer | Rick Bradley <rick@rickbradley.com> | 2007-10-16 15:38:41 -0500 |
| commit | 216dd8c47ea42338c2dee0bf6528cdd7e37e0028 (patch) | |
| tree | f0e2ad2f1b52210b10427e6593820b0f6c09061c /spec/unit/network/http/mongrel | |
| parent | abbc824ff4a565f0a0f1362b779252e876b86168 (diff) | |
| download | puppet-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.rb | 34 |
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" |
