diff test/integration/api_test/issue_relations_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_relations_test.rb	Mon Mar 17 08:57:04 2014 +0000
+++ b/test/integration/api_test/issue_relations_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::IssueRelationsTest < ActionController::IntegrationTest
+class Redmine::ApiTest::IssueRelationsTest < Redmine::ApiTest::Base
   fixtures :projects, :trackers, :issue_statuses, :issues,
            :enumerations, :users, :issue_categories,
            :projects_trackers,
@@ -25,83 +25,68 @@
            :member_roles,
            :members,
            :enabled_modules,
-           :workflows,
            :issue_relations
 
   def setup
     Setting.rest_api_enabled = '1'
   end
 
-  context "/issues/:issue_id/relations" do
-    context "GET" do
-      should "return issue relations" do
-        get '/issues/9/relations.xml', {}, credentials('jsmith')
+  test "GET /issues/:issue_id/relations.xml should return issue relations" do
+    get '/issues/9/relations.xml', {}, credentials('jsmith')
 
-        assert_response :success
-        assert_equal 'application/xml', @response.content_type
+    assert_response :success
+    assert_equal 'application/xml', @response.content_type
 
-        assert_tag :tag => 'relations',
-          :attributes => { :type => 'array' },
-          :child => {
-            :tag => 'relation',
-            :child => {
-              :tag => 'id',
-              :content => '1'
-            }
-          }
-      end
+    assert_tag :tag => 'relations',
+      :attributes => { :type => 'array' },
+      :child => {
+        :tag => 'relation',
+        :child => {
+          :tag => 'id',
+          :content => '1'
+        }
+      }
+  end
+
+  test "POST /issues/:issue_id/relations.xml should create the relation" do
+    assert_difference('IssueRelation.count') do
+      post '/issues/2/relations.xml', {:relation => {:issue_to_id => 7, :relation_type => 'relates'}}, credentials('jsmith')
     end
 
-    context "POST" do
-      should "create a relation" do
-        assert_difference('IssueRelation.count') do
-          post '/issues/2/relations.xml', {:relation => {:issue_to_id => 7, :relation_type => 'relates'}}, credentials('jsmith')
-        end
+    relation = IssueRelation.order('id DESC').first
+    assert_equal 2, relation.issue_from_id
+    assert_equal 7, relation.issue_to_id
+    assert_equal 'relates', relation.relation_type
 
-        relation = IssueRelation.first(:order => 'id DESC')
-        assert_equal 2, relation.issue_from_id
-        assert_equal 7, relation.issue_to_id
-        assert_equal 'relates', relation.relation_type
-
-        assert_response :created
-        assert_equal 'application/xml', @response.content_type
-        assert_tag 'relation', :child => {:tag => 'id', :content => relation.id.to_s}
-      end
-
-      context "with failure" do
-        should "return the errors" do
-          assert_no_difference('IssueRelation.count') do
-            post '/issues/2/relations.xml', {:relation => {:issue_to_id => 7, :relation_type => 'foo'}}, credentials('jsmith')
-          end
-
-          assert_response :unprocessable_entity
-          assert_tag :errors, :child => {:tag => 'error', :content => /relation_type is not included in the list/}
-        end
-      end
-    end
+    assert_response :created
+    assert_equal 'application/xml', @response.content_type
+    assert_tag 'relation', :child => {:tag => 'id', :content => relation.id.to_s}
   end
 
-  context "/relations/:id" do
-    context "GET" do
-      should "return the relation" do
-        get '/relations/2.xml', {}, credentials('jsmith')
-
-        assert_response :success
-        assert_equal 'application/xml', @response.content_type
-        assert_tag 'relation', :child => {:tag => 'id', :content => '2'}
-      end
+  test "POST /issues/:issue_id/relations.xml with failure should return errors" do
+    assert_no_difference('IssueRelation.count') do
+      post '/issues/2/relations.xml', {:relation => {:issue_to_id => 7, :relation_type => 'foo'}}, credentials('jsmith')
     end
 
-    context "DELETE" do
-      should "delete the relation" do
-        assert_difference('IssueRelation.count', -1) do
-          delete '/relations/2.xml', {}, credentials('jsmith')
-        end
+    assert_response :unprocessable_entity
+    assert_tag :errors, :child => {:tag => 'error', :content => /relation_type is not included in the list/}
+  end
 
-        assert_response :ok
-        assert_equal '', @response.body
-        assert_nil IssueRelation.find_by_id(2)
-      end
+  test "GET /relations/:id.xml should return the relation" do
+    get '/relations/2.xml', {}, credentials('jsmith')
+
+    assert_response :success
+    assert_equal 'application/xml', @response.content_type
+    assert_tag 'relation', :child => {:tag => 'id', :content => '2'}
+  end
+
+  test "DELETE /relations/:id.xml should delete the relation" do
+    assert_difference('IssueRelation.count', -1) do
+      delete '/relations/2.xml', {}, credentials('jsmith')
     end
+
+    assert_response :ok
+    assert_equal '', @response.body
+    assert_nil IssueRelation.find_by_id(2)
   end
 end