summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/models/issue_priority.rb8
-rw-r--r--test/unit/issue_priority_test.rb37
2 files changed, 45 insertions, 0 deletions
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)