From f99e5bba192938ed7e812f1ae82785ad796c636d Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Fri, 21 Sep 2007 23:31:21 +0000 Subject: Increase test coverage (closes #8699, #8700) [josh] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@7532 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- activeresource/test/base/custom_methods_test.rb | 26 ++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) (limited to 'activeresource/test/base') diff --git a/activeresource/test/base/custom_methods_test.rb b/activeresource/test/base/custom_methods_test.rb index 0e1c00c478..9864e9876f 100644 --- a/activeresource/test/base/custom_methods_test.rb +++ b/activeresource/test/base/custom_methods_test.rb @@ -18,12 +18,14 @@ class CustomMethodsTest < Test::Unit::TestCase mock.get "/people/1/deep.xml", {}, @matz_deep mock.get "/people/retrieve.xml?name=Matz", {}, @matz_array mock.get "/people/managers.xml", {}, @matz_array + mock.post "/people/hire.xml?name=Matz", {}, nil, 201 mock.put "/people/1/promote.xml?position=Manager", {}, nil, 204 mock.put "/people/promote.xml?name=Matz", {}, nil, 204, {} mock.put "/people/sort.xml?by=name", {}, nil, 204 mock.delete "/people/deactivate.xml?name=Matz", {}, nil, 200 mock.delete "/people/1/deactivate.xml", {}, nil, 200 mock.post "/people/new/register.xml", {}, @ryan, 201, 'Location' => '/people/5.xml' + mock.post "/people/1/register.xml", {}, @matz, 201 mock.get "/people/1/addresses/1.xml", {}, @addy mock.get "/people/1/addresses/1/deep.xml", {}, @addy_deep mock.put "/people/1/addresses/1/normalize_phone.xml?locale=US", {}, nil, 204 @@ -35,23 +37,26 @@ class CustomMethodsTest < Test::Unit::TestCase def teardown ActiveResource::HttpMock.reset! end - + def test_custom_collection_method # GET assert_equal([{ "id" => 1, "name" => 'Matz' }], Person.get(:retrieve, :name => 'Matz')) - + + # POST + assert_equal(ActiveResource::Response.new("", 201, {}), Person.post(:hire, :name => 'Matz')) + # PUT assert_equal ActiveResource::Response.new("", 204, {}), Person.put(:promote, {:name => 'Matz'}, 'atestbody') assert_equal ActiveResource::Response.new("", 204, {}), Person.put(:sort, :by => 'name') - + # DELETE Person.delete :deactivate, :name => 'Matz' - + # Nested resource assert_equal ActiveResource::Response.new("", 204, {}), StreetAddress.put(:sort, :person_id => 1, :by => 'name') end - + def test_custom_element_method # Test GET against an element URL assert_equal Person.find(1).get(:shallow), {"id" => 1, "name" => 'Matz'} @@ -69,20 +74,23 @@ class CustomMethodsTest < Test::Unit::TestCase assert_equal ActiveResource::Response.new("", 204, {}), StreetAddress.find(1, :params => { :person_id => 1 }).put(:normalize_phone, :locale => 'US') end - + def test_custom_new_element_method # Test POST against a new element URL ryan = Person.new(:name => 'Ryan') assert_equal ActiveResource::Response.new(@ryan, 201, {'Location' => '/people/5.xml'}), ryan.post(:register) - + # Test POST against a nested collection URL addy = StreetAddress.new(:street => '123 Test Dr.', :person_id => 1) assert_equal ActiveResource::Response.new({ :street => '12345 Street' }.to_xml(:root => 'address'), 201, {'Location' => '/people/1/addresses/2.xml'}), addy.post(:link) + + matz = Person.new(:id => 1, :name => 'Matz') + assert_equal ActiveResource::Response.new(@matz, 201), matz.post(:register) end - + def test_find_custom_resources assert_equal 'Matz', Person.find(:all, :from => :managers).first.name end -end \ No newline at end of file +end -- cgit v1.2.3