diff --git app/models/time_entry.rb app/models/time_entry.rb index 431c1a5..78c0b86 100644 --- app/models/time_entry.rb +++ app/models/time_entry.rb @@ -113,7 +113,7 @@ class TimeEntry < ActiveRecord::Base end def validate_time_entry - errors.add :hours, :invalid if hours && (hours < 0 || hours >= 1000) + errors.add :hours, :invalid if hours && (hours < 0 || hours > 24) || hours == 0 errors.add :project_id, :invalid if project.nil? errors.add :issue_id, :invalid if (issue_id && !issue) || (issue && project!=issue.project) || @invalid_issue_id errors.add :activity_id, :inclusion if activity_id_changed? && project && !project.activities.include?(activity) diff --git test/unit/time_entry_test.rb test/unit/time_entry_test.rb index b86b1c5..7cc518d 100644 --- test/unit/time_entry_test.rb +++ test/unit/time_entry_test.rb @@ -133,6 +133,23 @@ class TimeEntryTest < ActiveSupport::TestCase :description => 'IssueTest#test_create', :estimated_hours => '1:30') assert issue.save activity = TimeEntryActivity.find_by_name('Design') + + te = TimeEntry.create(:spent_on => '2010-01-01', + :hours => 1, + :issue => issue, + :project => project, + :user => anon, + :activity => activity) + assert_equal 0, te.errors.count + + te = TimeEntry.create(:spent_on => '2010-01-01', + :hours => 24, + :issue => issue, + :project => project, + :user => anon, + :activity => activity) + assert_equal 0, te.errors.count + te = TimeEntry.create(:spent_on => '2010-01-01', :hours => 100000, :issue => issue, @@ -140,6 +157,22 @@ class TimeEntryTest < ActiveSupport::TestCase :user => anon, :activity => activity) assert_equal 1, te.errors.count + + te = TimeEntry.create(:spent_on => '2010-01-01', + :hours => 0, + :issue => issue, + :project => project, + :user => anon, + :activity => activity) + assert_equal 1, te.errors.count + + te = TimeEntry.create(:spent_on => '2010-01-01', + :hours => 25, + :issue => issue, + :project => project, + :user => anon, + :activity => activity) + assert_equal 1, te.errors.count end def test_acitivity_should_belong_to_project_activities