4 class TestHandler < Test::Unit::TestCase
7 # Wed Aug 16 14:00:00 UTC 2006
8 @now = Time.local(2006, 8, 16, 14, 0, 0, 0)
11 def test_handler_class_1
12 handler = Chronic::Handler.new([:repeater], :handler)
14 tokens = [Chronic::Token.new('friday')]
15 tokens[0].tag(Chronic::RepeaterDayName.new(:friday))
17 assert handler.match(tokens, Chronic.definitions)
19 tokens << Chronic::Token.new('afternoon')
20 tokens[1].tag(Chronic::RepeaterDayPortion.new(:afternoon))
22 assert !handler.match(tokens, Chronic.definitions)
25 def test_handler_class_2
26 handler = Chronic::Handler.new([:repeater, :repeater?], :handler)
28 tokens = [Chronic::Token.new('friday')]
29 tokens[0].tag(Chronic::RepeaterDayName.new(:friday))
31 assert handler.match(tokens, Chronic.definitions)
33 tokens << Chronic::Token.new('afternoon')
34 tokens[1].tag(Chronic::RepeaterDayPortion.new(:afternoon))
36 assert handler.match(tokens, Chronic.definitions)
38 tokens << Chronic::Token.new('afternoon')
39 tokens[2].tag(Chronic::RepeaterDayPortion.new(:afternoon))
41 assert !handler.match(tokens, Chronic.definitions)
44 def test_handler_class_3
45 handler = Chronic::Handler.new([:repeater, 'time?'], :handler)
47 tokens = [Chronic::Token.new('friday')]
48 tokens[0].tag(Chronic::RepeaterDayName.new(:friday))
50 assert handler.match(tokens, Chronic.definitions)
52 tokens << Chronic::Token.new('afternoon')
53 tokens[1].tag(Chronic::RepeaterDayPortion.new(:afternoon))
55 assert !handler.match(tokens, Chronic.definitions)
58 def test_handler_class_4
59 handler = Chronic::Handler.new([:repeater_month_name, :scalar_day, 'time?'], :handler)
61 tokens = [Chronic::Token.new('may')]
62 tokens[0].tag(Chronic::RepeaterMonthName.new(:may))
64 assert !handler.match(tokens, Chronic.definitions)
66 tokens << Chronic::Token.new('27')
67 tokens[1].tag(Chronic::ScalarDay.new(27))
69 assert handler.match(tokens, Chronic.definitions)
72 def test_handler_class_5
73 handler = Chronic::Handler.new([:repeater, 'time?'], :handler)
75 tokens = [Chronic::Token.new('friday')]
76 tokens[0].tag(Chronic::RepeaterDayName.new(:friday))
78 assert handler.match(tokens, Chronic.definitions)
80 tokens << Chronic::Token.new('5:00')
81 tokens[1].tag(Chronic::RepeaterTime.new('5:00'))
83 assert handler.match(tokens, Chronic.definitions)
85 tokens << Chronic::Token.new('pm')
86 tokens[2].tag(Chronic::RepeaterDayPortion.new(:pm))
88 assert handler.match(tokens, Chronic.definitions)
91 def test_handler_class_6
92 handler = Chronic::Handler.new([:scalar, :repeater, :pointer], :handler)
94 tokens = [Chronic::Token.new('3'),
95 Chronic::Token.new('years'),
96 Chronic::Token.new('past')]
98 tokens[0].tag(Chronic::Scalar.new(3))
99 tokens[1].tag(Chronic::RepeaterYear.new(:year))
100 tokens[2].tag(Chronic::Pointer.new(:past))
102 assert handler.match(tokens, Chronic.definitions)
106 handler = Chronic::Handler.new([], :handler)
107 assert_equal Chronic::RepeaterTime, handler.constantize(:repeater_time)