move recurrence text helpers into patterns. move next_date calculation into

respective models
This commit is contained in:
Reinier Balt 2014-02-27 16:01:01 +01:00
parent d8507bf8b7
commit b84adfc172
13 changed files with 291 additions and 289 deletions

View file

@ -25,13 +25,6 @@ class RecurringTodoTest < ActiveSupport::TestCase
@thursday = Time.zone.local(2008,6,12)
end
def test_pattern_text
assert_equal "every day", @every_day.recurrence_pattern
assert_equal "on work days", @every_workday.recurrence_pattern
assert_equal "every last friday of every 2 months", @monthly_every_last_friday.recurrence_pattern
assert_equal "every year on June 08", @yearly.recurrence_pattern
end
def test_daily_every_day
# every_day should return todays date if there was no previous date
due_date = @every_day.get_due_date(nil)
@ -96,29 +89,6 @@ class RecurringTodoTest < ActiveSupport::TestCase
assert_equal false, @every_day.continues_recurring?(@in_four_days)
end
def test_weekly_every_day_setters
@weekly_every_day.every_day = ' '
@weekly_every_day.weekly_return_sunday=('s')
assert_equal 's ', @weekly_every_day.every_day
@weekly_every_day.weekly_return_monday=('m')
assert_equal 'sm ', @weekly_every_day.every_day
@weekly_every_day.weekly_return_tuesday=('t')
assert_equal 'smt ', @weekly_every_day.every_day
@weekly_every_day.weekly_return_wednesday=('w')
assert_equal 'smtw ', @weekly_every_day.every_day
@weekly_every_day.weekly_return_thursday=('t')
assert_equal 'smtwt ', @weekly_every_day.every_day
@weekly_every_day.weekly_return_friday=('f')
assert_equal 'smtwtf ', @weekly_every_day.every_day
@weekly_every_day.weekly_return_saturday=('s')
assert_equal 'smtwtfs', @weekly_every_day.every_day
# test remove
@weekly_every_day.weekly_return_wednesday=(' ')
assert_equal 'smt tfs', @weekly_every_day.every_day
end
def test_weekly_pattern
assert_equal true, @weekly_every_day.continues_recurring?(nil)
@ -132,9 +102,7 @@ class RecurringTodoTest < ActiveSupport::TestCase
assert_equal @sunday + 2.weeks, due_date
# remove tuesday and wednesday
@weekly_every_day.weekly_return_tuesday=(' ')
@weekly_every_day.weekly_return_wednesday=(' ')
assert_equal 'sm tfs', @weekly_every_day.every_day
@weekly_every_day.every_day = 'sm tfs'
due_date = @weekly_every_day.get_due_date(@monday)
assert_equal @thursday, due_date

View file

@ -32,6 +32,17 @@ module RecurringTodos
assert rt.valid?, "should be valid again"
end
def test_pattern_text
@every_day = recurring_todos(:call_bill_gates_every_day)
@every_workday = recurring_todos(:call_bill_gates_every_workday)
assert_equal "every day", @every_day.recurrence_pattern
assert_equal "on work days", @every_workday.recurrence_pattern
@every_day.every_other1 = 2
assert_equal "every 2 days", @every_day.recurrence_pattern
end
end
end

View file

@ -98,6 +98,20 @@ module RecurringTodos
assert !rt.valid?, "should not be valid since day_of_week is empty"
end
def test_pattern_text
rt = recurring_todos(:check_with_bill_every_last_friday_of_month)
assert_equal "every last friday of every 2 months", rt.recurrence_pattern
rt.every_other2 = 1
assert_equal "every last friday of every month", rt.recurrence_pattern
rt.recurrence_selector = 0
assert_equal "every 5 months on day 1", rt.recurrence_pattern
rt.every_other3 = 1
assert_equal "every month on day 1", rt.recurrence_pattern
end
end
end

View file

@ -40,6 +40,14 @@ module RecurringTodos
assert !rt.valid?, "missing selected days in every_day"
end
def test_pattern_text
rt = @admin.recurring_todos.where(recurring_period: 'weekly').first
assert_equal "every 2 weeks", rt.recurrence_pattern
rt.every_other1 = 1
assert_equal "weekly", rt.recurrence_pattern
end
end
end

View file

@ -64,6 +64,16 @@ module RecurringTodos
assert !rt.valid?, "should not be valid since day_of_week is empty"
end
def test_pattern_text
rt = recurring_todos(:birthday_reinier)
assert_equal "every year on June 08", rt.recurrence_pattern
rt.recurrence_selector = 1
rt.every_count = 3
rt.every_other3 = 3
assert_equal "every year on the third wednesday of June", rt.recurrence_pattern
end
end
end