diff test/unit/issue_status_test.rb @ 1337:077b8890835a cannam

Merge from live branch
author Chris Cannam
date Thu, 20 Jun 2013 13:14:02 +0100
parents 433d4f72a19b
children 622f24f53b42 261b3d9a4903
line wrap: on
line diff
--- a/test/unit/issue_status_test.rb	Fri Jun 14 11:30:07 2013 +0100
+++ b/test/unit/issue_status_test.rb	Thu Jun 20 13:14:02 2013 +0100
@@ -1,5 +1,5 @@
 # Redmine - project management software
-# Copyright (C) 2006-2011  Jean-Philippe Lang
+# Copyright (C) 2006-2012  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
@@ -36,8 +36,8 @@
     assert_difference 'IssueStatus.count', -1 do
       assert status.destroy
     end
-    assert_nil Workflow.first(:conditions => {:old_status_id => status.id})
-    assert_nil Workflow.first(:conditions => {:new_status_id => status.id})
+    assert_nil WorkflowTransition.first(:conditions => {:old_status_id => status.id})
+    assert_nil WorkflowTransition.first(:conditions => {:new_status_id => status.id})
   end
 
   def test_destroy_status_in_use
@@ -70,12 +70,12 @@
   end
 
   def test_new_statuses_allowed_to
-    Workflow.delete_all
+    WorkflowTransition.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)
+    WorkflowTransition.create!(:role_id => 1, :tracker_id => 1, :old_status_id => 1, :new_status_id => 2, :author => false, :assignee => false)
+    WorkflowTransition.create!(:role_id => 1, :tracker_id => 1, :old_status_id => 1, :new_status_id => 3, :author => true, :assignee => false)
+    WorkflowTransition.create!(:role_id => 1, :tracker_id => 1, :old_status_id => 1, :new_status_id => 4, :author => false, :assignee => true)
+    WorkflowTransition.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)
@@ -93,39 +93,32 @@
     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
-      @issue = Issue.find(1)
-      @issue_status = IssueStatus.find(1)
-      @issue_status.update_attribute(:default_done_ratio, 50)
-    end
+  def test_update_done_ratios_with_issue_done_ratio_set_to_issue_field_should_change_nothing
+    IssueStatus.find(1).update_attribute(:default_done_ratio, 50)
 
-    context "with Setting.issue_done_ratio using the issue_field" do
-      setup do
-        Setting.issue_done_ratio = 'issue_field'
-      end
-
-      should "change nothing" do
-        IssueStatus.update_issue_done_ratios
-
-        assert_equal 0, Issue.count(:conditions => {:done_ratio => 50})
-      end
-    end
-
-    context "with Setting.issue_done_ratio using the issue_status" do
-      setup do
-        Setting.issue_done_ratio = 'issue_status'
-      end
-
-      should "update all of the issue's done_ratios to match their Issue Status" do
-        IssueStatus.update_issue_done_ratios
-
-        issues = Issue.find([1,3,4,5,6,7,9,10])
-        issues.each do |issue|
-          assert_equal @issue_status, issue.status
-          assert_equal 50, issue.read_attribute(:done_ratio)
-        end
-      end
+    with_settings :issue_done_ratio => 'issue_field' do
+      IssueStatus.update_issue_done_ratios
+      assert_equal 0, Issue.count(:conditions => {:done_ratio => 50})
     end
   end
+
+  def test_update_done_ratios_with_issue_done_ratio_set_to_issue_status_should_update_issues
+    IssueStatus.find(1).update_attribute(:default_done_ratio, 50)
+
+    with_settings :issue_done_ratio => 'issue_status' do
+      IssueStatus.update_issue_done_ratios
+      issues = Issue.all(:conditions => {:status_id => 1})
+      assert_equal [50], issues.map {|issue| issue.read_attribute(:done_ratio)}.uniq
+    end
+  end
+
+  def test_sorted_scope
+    assert_equal IssueStatus.all.sort, IssueStatus.sorted.all
+  end
+
+  def test_named_scope
+    status = IssueStatus.named("resolved").first
+    assert_not_nil status
+    assert_equal "Resolved", status.name
+  end
 end