diff test/integration/api_test/issue_categories_test.rb @ 1526:404aa68d4227

Merge from live branch
author Chris Cannam
date Thu, 11 Sep 2014 12:46:20 +0100
parents dffacf8a6908
children
line wrap: on
line diff
--- a/test/integration/api_test/issue_categories_test.rb	Mon Mar 17 08:57:04 2014 +0000
+++ b/test/integration/api_test/issue_categories_test.rb	Thu Sep 11 12:46:20 2014 +0100
@@ -1,5 +1,5 @@
 # Redmine - project management software
-# Copyright (C) 2006-2012  Jean-Philippe Lang
+# Copyright (C) 2006-2014  Jean-Philippe Lang
 #
 # This program is free software; you can redistribute it and/or
 # modify it under the terms of the GNU General Public License
@@ -17,7 +17,7 @@
 
 require File.expand_path('../../../test_helper', __FILE__)
 
-class ApiTest::IssueCategoriesTest < ActionController::IntegrationTest
+class Redmine::ApiTest::IssueCategoriesTest < Redmine::ApiTest::Base
   fixtures :projects, :users, :issue_categories, :issues,
            :roles,
            :member_roles,
@@ -28,99 +28,83 @@
     Setting.rest_api_enabled = '1'
   end
 
-  context "GET /projects/:project_id/issue_categories.xml" do
-    should "return issue categories" do
-      get '/projects/1/issue_categories.xml', {}, credentials('jsmith')
-      assert_response :success
-      assert_equal 'application/xml', @response.content_type
-      assert_tag :tag => 'issue_categories',
-        :child => {:tag => 'issue_category', :child => {:tag => 'id', :content => '2'}}
-    end
+  test "GET /projects/:project_id/issue_categories.xml should return the issue categories" do
+    get '/projects/1/issue_categories.xml', {}, credentials('jsmith')
+    assert_response :success
+    assert_equal 'application/xml', @response.content_type
+    assert_tag :tag => 'issue_categories',
+      :child => {:tag => 'issue_category', :child => {:tag => 'id', :content => '2'}}
   end
 
-  context "GET /issue_categories/2.xml" do
-    should "return requested issue category" do
-      get '/issue_categories/2.xml', {}, credentials('jsmith')
-      assert_response :success
-      assert_equal 'application/xml', @response.content_type
-      assert_tag :tag => 'issue_category',
-        :child => {:tag => 'id', :content => '2'}
-    end
+  test "GET /issue_categories/:id.xml should return the issue category" do
+    get '/issue_categories/2.xml', {}, credentials('jsmith')
+    assert_response :success
+    assert_equal 'application/xml', @response.content_type
+    assert_tag :tag => 'issue_category',
+      :child => {:tag => 'id', :content => '2'}
   end
 
-  context "POST /projects/:project_id/issue_categories.xml" do
-    should "return create issue category" do
-      assert_difference 'IssueCategory.count' do
-        post '/projects/1/issue_categories.xml', {:issue_category => {:name => 'API'}}, credentials('jsmith')
-      end
-      assert_response :created
-      assert_equal 'application/xml', @response.content_type
+  test "POST /projects/:project_id/issue_categories.xml should return create issue category" do
+    assert_difference 'IssueCategory.count' do
+      post '/projects/1/issue_categories.xml', {:issue_category => {:name => 'API'}}, credentials('jsmith')
+    end
+    assert_response :created
+    assert_equal 'application/xml', @response.content_type
 
-      category = IssueCategory.first(:order => 'id DESC')
-      assert_equal 'API', category.name
-      assert_equal 1, category.project_id
+    category = IssueCategory.order('id DESC').first
+    assert_equal 'API', category.name
+    assert_equal 1, category.project_id
+  end
+
+  test "POST /projects/:project_id/issue_categories.xml with invalid parameters should return errors" do
+    assert_no_difference 'IssueCategory.count' do
+      post '/projects/1/issue_categories.xml', {:issue_category => {:name => ''}}, credentials('jsmith')
     end
+    assert_response :unprocessable_entity
+    assert_equal 'application/xml', @response.content_type
 
-    context "with invalid parameters" do
-      should "return errors" do
-        assert_no_difference 'IssueCategory.count' do
-          post '/projects/1/issue_categories.xml', {:issue_category => {:name => ''}}, credentials('jsmith')
-        end
-        assert_response :unprocessable_entity
-        assert_equal 'application/xml', @response.content_type
+    assert_tag 'errors', :child => {:tag => 'error', :content => "Name can't be blank"}
+  end
 
-        assert_tag 'errors', :child => {:tag => 'error', :content => "Name can't be blank"}
+  test "PUT /issue_categories/:id.xml with valid parameters should update the issue category" do
+    assert_no_difference 'IssueCategory.count' do
+      put '/issue_categories/2.xml', {:issue_category => {:name => 'API Update'}}, credentials('jsmith')
+    end
+    assert_response :ok
+    assert_equal '', @response.body
+    assert_equal 'API Update', IssueCategory.find(2).name
+  end
+
+  test "PUT /issue_categories/:id.xml with invalid parameters should return errors" do
+    assert_no_difference 'IssueCategory.count' do
+      put '/issue_categories/2.xml', {:issue_category => {:name => ''}}, credentials('jsmith')
+    end
+    assert_response :unprocessable_entity
+    assert_equal 'application/xml', @response.content_type
+
+    assert_tag 'errors', :child => {:tag => 'error', :content => "Name can't be blank"}
+  end
+
+  test "DELETE /issue_categories/:id.xml should destroy the issue category" do
+    assert_difference 'IssueCategory.count', -1 do
+      delete '/issue_categories/1.xml', {}, credentials('jsmith')
+    end
+    assert_response :ok
+    assert_equal '', @response.body
+    assert_nil IssueCategory.find_by_id(1)
+  end
+    
+  test "DELETE /issue_categories/:id.xml should reassign issues with :reassign_to_id param" do
+    issue_count = Issue.where(:category_id => 1).count
+    assert issue_count > 0
+
+    assert_difference 'IssueCategory.count', -1 do
+      assert_difference 'Issue.where(:category_id => 2).count', 3 do
+        delete '/issue_categories/1.xml', {:reassign_to_id => 2}, credentials('jsmith')
       end
     end
-  end
-
-  context "PUT /issue_categories/2.xml" do
-    context "with valid parameters" do
-      should "update issue category" do
-        assert_no_difference 'IssueCategory.count' do
-          put '/issue_categories/2.xml', {:issue_category => {:name => 'API Update'}}, credentials('jsmith')
-        end
-        assert_response :ok
-        assert_equal '', @response.body
-        assert_equal 'API Update', IssueCategory.find(2).name
-      end
-    end
-
-    context "with invalid parameters" do
-      should "return errors" do
-        assert_no_difference 'IssueCategory.count' do
-          put '/issue_categories/2.xml', {:issue_category => {:name => ''}}, credentials('jsmith')
-        end
-        assert_response :unprocessable_entity
-        assert_equal 'application/xml', @response.content_type
-
-        assert_tag 'errors', :child => {:tag => 'error', :content => "Name can't be blank"}
-      end
-    end
-  end
-
-  context "DELETE /issue_categories/1.xml" do
-    should "destroy issue categories" do
-      assert_difference 'IssueCategory.count', -1 do
-        delete '/issue_categories/1.xml', {}, credentials('jsmith')
-      end
-      assert_response :ok
-      assert_equal '', @response.body
-      assert_nil IssueCategory.find_by_id(1)
-    end
-    
-    should "reassign issues with :reassign_to_id param" do
-      issue_count = Issue.count(:conditions => {:category_id => 1})
-      assert issue_count > 0
-
-      assert_difference 'IssueCategory.count', -1 do
-        assert_difference 'Issue.count(:conditions => {:category_id => 2})', 3 do
-          delete '/issue_categories/1.xml', {:reassign_to_id => 2}, credentials('jsmith')
-        end
-      end
-      assert_response :ok
-      assert_equal '', @response.body
-      assert_nil IssueCategory.find_by_id(1)
-    end
+    assert_response :ok
+    assert_equal '', @response.body
+    assert_nil IssueCategory.find_by_id(1)
   end
 end