diff --git a/app/models/enumeration.rb b/app/models/enumeration.rb index b72972218..d4564a036 100644 --- a/app/models/enumeration.rb +++ b/app/models/enumeration.rb @@ -35,19 +35,19 @@ class Enumeration < ActiveRecord::Base validates_uniqueness_of :name, :scope => [:type, :project_id] validates_length_of :name, :maximum => 30 - scope :shared, :conditions => { :project_id => nil } - scope :active, :conditions => { :active => true } - scope :named, lambda {|arg| { :conditions => ["LOWER(#{table_name}.name) = LOWER(?)", arg.to_s.strip]}} + scope :shared, where(:project_id => nil) + scope :active, where(:active => true) + scope :named, lambda {|arg| where("LOWER(#{table_name}.name) = LOWER(?)", arg.to_s.strip)} def self.default # Creates a fake default scope so Enumeration.default will check # it's type. STI subclasses will automatically add their own # types to the finder. if self.descends_from_active_record? - find(:first, :conditions => { :is_default => true, :type => 'Enumeration' }) + where(:is_default => true, :type => 'Enumeration').first else # STI classes are - find(:first, :conditions => { :is_default => true }) + where(:is_default => true).first end end @@ -58,7 +58,7 @@ class Enumeration < ActiveRecord::Base def check_default if is_default? && is_default_changed? - Enumeration.update_all("is_default = #{connection.quoted_false}", {:type => type}) + Enumeration.update_all({:is_default => false}, {:type => type}) end end diff --git a/test/unit/issue_priority_test.rb b/test/unit/issue_priority_test.rb index 6faf46afa..349cc2e4b 100644 --- a/test/unit/issue_priority_test.rb +++ b/test/unit/issue_priority_test.rb @@ -20,6 +20,19 @@ require File.expand_path('../../test_helper', __FILE__) class IssuePriorityTest < ActiveSupport::TestCase fixtures :enumerations, :issues + def test_named_scope + assert_equal Enumeration.find_by_name('Normal'), Enumeration.named('normal').first + end + + def test_default_should_return_the_default_priority + assert_equal Enumeration.find_by_name('Normal'), IssuePriority.default + end + + def test_default_should_return_nil_when_no_default_priority + IssuePriority.update_all :is_default => false + assert_nil IssuePriority.default + end + def test_should_be_an_enumeration assert IssuePriority.ancestors.include?(Enumeration) end