diff test/unit/issue_status_test.rb @ 524:1248a47e81b3 feature_36

Merge from branch "luisf"
author luisf <luis.figueira@eecs.qmul.ac.uk>
date Mon, 25 Jul 2011 14:39:38 +0100
parents 051f544170fe
children cbb26bc654de
line wrap: on
line diff
--- a/test/unit/issue_status_test.rb	Fri Jul 15 17:21:05 2011 +0100
+++ b/test/unit/issue_status_test.rb	Mon Jul 25 14:39:38 2011 +0100
@@ -15,10 +15,10 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require File.dirname(__FILE__) + '/../test_helper'
+require File.expand_path('../../test_helper', __FILE__)
 
 class IssueStatusTest < ActiveSupport::TestCase
-  fixtures :issue_statuses, :issues
+  fixtures :issue_statuses, :issues, :roles, :trackers
 
   def test_create
     status = IssueStatus.new :name => "Assigned"
@@ -68,6 +68,30 @@
     status.reload
     assert status.is_default?
   end
+  
+  def test_new_statuses_allowed_to
+    Workflow.delete_all
+    
+    Workflow.create!(:role_id => 1, :tracker_id => 1, :old_status_id => 1, :new_status_id => 2, :author => false, :assignee => false)
+    Workflow.create!(:role_id => 1, :tracker_id => 1, :old_status_id => 1, :new_status_id => 3, :author => true, :assignee => false)
+    Workflow.create!(:role_id => 1, :tracker_id => 1, :old_status_id => 1, :new_status_id => 4, :author => false, :assignee => true)
+    Workflow.create!(:role_id => 1, :tracker_id => 1, :old_status_id => 1, :new_status_id => 5, :author => true, :assignee => true)
+    status = IssueStatus.find(1)
+    role = Role.find(1)
+    tracker = Tracker.find(1)
+
+    assert_equal [2], status.new_statuses_allowed_to([role], tracker, false, false).map(&:id)
+    assert_equal [2], status.find_new_statuses_allowed_to([role], tracker, false, false).map(&:id)
+    
+    assert_equal [2, 3], status.new_statuses_allowed_to([role], tracker, true, false).map(&:id)
+    assert_equal [2, 3], status.find_new_statuses_allowed_to([role], tracker, true, false).map(&:id)
+    
+    assert_equal [2, 4], status.new_statuses_allowed_to([role], tracker, false, true).map(&:id)
+    assert_equal [2, 4], status.find_new_statuses_allowed_to([role], tracker, false, true).map(&:id)
+    
+    assert_equal [2, 3, 4, 5], status.new_statuses_allowed_to([role], tracker, true, true).map(&:id)
+    assert_equal [2, 3, 4, 5], status.find_new_statuses_allowed_to([role], tracker, true, true).map(&:id)
+  end
 
   context "#update_done_ratios" do
     setup do