Merge branch 'gem'
[fuzed.git] / helloworld / vendor / gems / chronic-0.2.2 / test / test_Handler.rb
blob4e36dfe2570dc0b0a099000eed69d8fc3f38235e
1 require 'chronic'
2 require 'test/unit'
4 class TestHandler < Test::Unit::TestCase
5   
6   def setup
7     # Wed Aug 16 14:00:00 UTC 2006
8     @now = Time.local(2006, 8, 16, 14, 0, 0, 0)
9   end
11   def test_handler_class_1
12     handler = Chronic::Handler.new([:repeater], :handler)
13     
14     tokens = [Chronic::Token.new('friday')]
15     tokens[0].tag(Chronic::RepeaterDayName.new(:friday))
16     
17     assert handler.match(tokens, Chronic.definitions)
18     
19     tokens << Chronic::Token.new('afternoon')
20     tokens[1].tag(Chronic::RepeaterDayPortion.new(:afternoon))
21     
22     assert !handler.match(tokens, Chronic.definitions)
23   end
24   
25   def test_handler_class_2
26     handler = Chronic::Handler.new([:repeater, :repeater?], :handler)
27     
28     tokens = [Chronic::Token.new('friday')]
29     tokens[0].tag(Chronic::RepeaterDayName.new(:friday))
30     
31     assert handler.match(tokens, Chronic.definitions)
32     
33     tokens << Chronic::Token.new('afternoon')
34     tokens[1].tag(Chronic::RepeaterDayPortion.new(:afternoon))
35     
36     assert handler.match(tokens, Chronic.definitions)
37     
38     tokens << Chronic::Token.new('afternoon')
39     tokens[2].tag(Chronic::RepeaterDayPortion.new(:afternoon))
40     
41     assert !handler.match(tokens, Chronic.definitions)
42   end
43   
44   def test_handler_class_3
45     handler = Chronic::Handler.new([:repeater, 'time?'], :handler)
46     
47     tokens = [Chronic::Token.new('friday')]
48     tokens[0].tag(Chronic::RepeaterDayName.new(:friday))
49     
50     assert handler.match(tokens, Chronic.definitions)
51     
52     tokens << Chronic::Token.new('afternoon')
53     tokens[1].tag(Chronic::RepeaterDayPortion.new(:afternoon))
54     
55     assert !handler.match(tokens, Chronic.definitions)
56   end
57   
58   def test_handler_class_4
59     handler = Chronic::Handler.new([:repeater_month_name, :scalar_day, 'time?'], :handler)
60     
61     tokens = [Chronic::Token.new('may')]
62     tokens[0].tag(Chronic::RepeaterMonthName.new(:may))
63     
64     assert !handler.match(tokens, Chronic.definitions)
65     
66     tokens << Chronic::Token.new('27')
67     tokens[1].tag(Chronic::ScalarDay.new(27))
68     
69     assert handler.match(tokens, Chronic.definitions)
70   end
71   
72   def test_handler_class_5
73     handler = Chronic::Handler.new([:repeater, 'time?'], :handler)
74     
75     tokens = [Chronic::Token.new('friday')]
76     tokens[0].tag(Chronic::RepeaterDayName.new(:friday))
77     
78     assert handler.match(tokens, Chronic.definitions)
79     
80     tokens << Chronic::Token.new('5:00')
81     tokens[1].tag(Chronic::RepeaterTime.new('5:00'))
82     
83     assert handler.match(tokens, Chronic.definitions)
84     
85     tokens << Chronic::Token.new('pm')
86     tokens[2].tag(Chronic::RepeaterDayPortion.new(:pm))
87     
88     assert handler.match(tokens, Chronic.definitions)
89   end
90   
91   def test_handler_class_6
92     handler = Chronic::Handler.new([:scalar, :repeater, :pointer], :handler)
93     
94     tokens = [Chronic::Token.new('3'),
95               Chronic::Token.new('years'),
96               Chronic::Token.new('past')]
97               
98     tokens[0].tag(Chronic::Scalar.new(3))
99     tokens[1].tag(Chronic::RepeaterYear.new(:year))
100     tokens[2].tag(Chronic::Pointer.new(:past))
101     
102     assert handler.match(tokens, Chronic.definitions)
103   end
104   
105   def test_constantize
106     handler = Chronic::Handler.new([], :handler)
107     assert_equal Chronic::RepeaterTime, handler.constantize(:repeater_time)
108   end
109