From d438c89b1a986176bf9fa6e5bb4dab6a1f4ee8e1 Mon Sep 17 00:00:00 2001 From: Go MAEDA Date: Tue, 21 Jan 2020 04:10:11 +0000 Subject: Add IssuePriority#high? and #low? helpers (#32628). Patch by Jan Schulz-Hofen. git-svn-id: http://svn.redmine.org/redmine/trunk@19448 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/models/issue_priority.rb | 8 ++++++++ test/unit/issue_priority_test.rb | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/app/models/issue_priority.rb b/app/models/issue_priority.rb index 8326b8ffa..aa4c5265d 100644 --- a/app/models/issue_priority.rb +++ b/app/models/issue_priority.rb @@ -54,6 +54,14 @@ class IssuePriority < Enumeration end end + def high? + position > self.class.default_or_middle.position + end + + def low? + position < self.class.default_or_middle.position + end + # Updates position_name for active priorities # Called from migration 20121026003537_populate_enumerations_position_name def self.compute_position_names diff --git a/test/unit/issue_priority_test.rb b/test/unit/issue_priority_test.rb index 2fb863ace..592d18f04 100644 --- a/test/unit/issue_priority_test.rb +++ b/test/unit/issue_priority_test.rb @@ -90,6 +90,43 @@ class IssuePriorityTest < ActiveSupport::TestCase assert_equal %w(lowest low2 default high2 highest), IssuePriority.active.to_a.sort.map(&:position_name) end + def test_low_high_helpers + IssuePriority.delete_all + + priorities = [1, 2, 3, 4, 5, 6].map {|i| IssuePriority.create!(:name => "P#{i}")} + + middle = IssuePriority.find_by_position(3) + + [1, 2].each do |p| + assert IssuePriority.find_by_position(p).low? + assert !IssuePriority.find_by_position(p).high? + end + + assert !middle.high? + assert !middle.low? + + [4, 5, 6].each do |p| + assert IssuePriority.find_by_position(p).high? + assert !IssuePriority.find_by_position(p).low? + end + + default = IssuePriority.find_by_position(5) + default.update_attributes is_default: true + + [1, 2, 3, 4].each do |p| + assert IssuePriority.find_by_position(p).low? + assert !IssuePriority.find_by_position(p).high? + end + + assert !default.high? + assert !default.low? + + [6].each do |p| + assert IssuePriority.find_by_position(p).high? + assert !IssuePriority.find_by_position(p).low? + end + end + def test_adding_a_priority_should_update_position_names priority = IssuePriority.create!(:name => 'New') assert_equal %w(lowest default high4 high3 high2 highest), IssuePriority.active.to_a.sort.map(&:position_name) -- cgit v1.2.3