File: test_RepeaterWeekday.rb

package info (click to toggle)
ruby-chronic 0.6.7-2
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 384 kB
  • sloc: ruby: 3,726; makefile: 2
file content (55 lines) | stat: -rw-r--r-- 1,849 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
require 'helper'

class TestRepeaterWeekday < Test::Unit::TestCase

  def setup
    @now = Time.local(2007, 6, 11, 14, 0, 0, 0) # Mon
  end

  def test_next_future
    weekdays = Chronic::RepeaterWeekday.new(:weekday)
    weekdays.start = @now

    next1_weekday = weekdays.next(:future) # Tues
    assert_equal Time.local(2007, 6, 12), next1_weekday.begin
    assert_equal Time.local(2007, 6, 13), next1_weekday.end

    next2_weekday = weekdays.next(:future) # Wed
    assert_equal Time.local(2007, 6, 13), next2_weekday.begin
    assert_equal Time.local(2007, 6, 14), next2_weekday.end

    next3_weekday = weekdays.next(:future) # Thurs
    assert_equal Time.local(2007, 6, 14), next3_weekday.begin
    assert_equal Time.local(2007, 6, 15), next3_weekday.end

    next4_weekday = weekdays.next(:future) # Fri
    assert_equal Time.local(2007, 6, 15), next4_weekday.begin
    assert_equal Time.local(2007, 6, 16), next4_weekday.end

    next5_weekday = weekdays.next(:future) # Mon
    assert_equal Time.local(2007, 6, 18), next5_weekday.begin
    assert_equal Time.local(2007, 6, 19), next5_weekday.end
  end

  def test_next_past
    weekdays = Chronic::RepeaterWeekday.new(:weekday)
    weekdays.start = @now

    last1_weekday = weekdays.next(:past) # Fri
    assert_equal Time.local(2007, 6, 8), last1_weekday.begin
    assert_equal Time.local(2007, 6, 9), last1_weekday.end

    last2_weekday = weekdays.next(:past) # Thurs
    assert_equal Time.local(2007, 6, 7), last2_weekday.begin
    assert_equal Time.local(2007, 6, 8), last2_weekday.end
  end

  def test_offset
    span = Chronic::Span.new(@now, @now + 1)

    offset_span = Chronic::RepeaterWeekday.new(:weekday).offset(span, 5, :future)

    assert_equal Time.local(2007, 6, 18, 14), offset_span.begin
    assert_equal Time.local(2007, 6, 18, 14, 0, 1), offset_span.end
  end
end